Я начал программировать много лет назад. Сейчас я пытаюсь делать игры. Я прочитал много рекомендаций, чтобы начать клонирование некоторых известных игр, таких как галага, тетрис, арканоид и т. Д. Я также прочитал, что я должен идти на всю игру (включая меню, звук, счет и т. Д.).
Вчера я закончил первую полную версию моего арканоидного клона. Но это далеко не все. Я все еще могу работать над этим в течение нескольких месяцев (в свободное время я программирую как хобби), реализуя переключатель разрешения экрана, переназначение клавиш управления, бонусы, падающие со сломанных кирпичей, огромные и т. Д.
Но я не хочу вечно учиться клонировать ОДНУ игру. У меня есть желание перейти к следующему клону, чтобы применить некоторые дизайнерские идеи, с которыми я столкнулся при разработке этого арканоидного клона (в то же время я читаю книгу GoF и много исходного кода из игрового конкурса Ludum Dare 21).
Итак, вопрос в том, стоит ли продолжать улучшать клон арканоидов, пока он не будет иметь все функции, которые были в оригинальной игре? или я должен перейти к следующему клону (есть клон почти бесконечных игр) и начать исправлять то, что я сделал неправильно с предыдущим клоном?
Это может быть очень субъективный вопрос, поэтому, пожалуйста, ограничьте ответы на наиболее эффективный способ научиться создавать свои собственные игры (не клонировать чужие идеи). Спасибо!
ПОЯСНЕНИЯ
Чтобы уточнить, что я реализовал, я делаю этот список:
Реализованные функции:
- Прыгающие способности (мяч подпрыгивает на стенах, на кирпичах и на перекладине).
- Звучит, когда подпрыгивает на кирпичах и в баре, и когда игрок выигрывает или проигрывает.
- Основное меню заголовка (только новая игра и выход). Также внутриигровое меню и меню выигрыш / проигрыш.
- Всего три уровня, но система карт настолько проста, что я не думаю, что она многому меня научит (я ошибаюсь?).
Особенности не реализованы:
- Усиления при разрушении кирпичей.
- Сложные кирпичи (с несколькими «хитпоинтами» и непобедимыми).
- Лучшая графика (я не очень хорош в этом).
- Программирование полировки (интенсивнее использовать шаблоны проектирования).
Вот ссылка на его (минимальную) веб-страницу: http://blog.acamara.es/piperine/ Мне стыдно показывать это, поэтому, пожалуйста, не бейте меня слишком сильно :-)
Мой вопрос был связан с не реализованными функциями. Я задавался вопросом, что было самым быстрым (оптимальным) путем для изучения. 1) реализовать не реализованные функции в этом проекте, который становится все более масштабным, или 2) создать новую игру, которая, вероятно, будет преподавать мне эти уроки и новые.
ОТВЕТ
Я выбираю ответ @ ashes999, потому что, в моем случае , я думаю, что я должен полировать больше и попытаться "отправить" игру. Я думаю, что все остальные ответы также важно иметь в виду, поэтому, если вы пришли сюда с тем же вопросом, прежде чем принимать поспешное решение, прочитайте все обсуждения.
Спасибо вам всем!
источник
Ответы:
Я не согласен с ответом Патрика полностью. Если вы хотите преуспеть в качестве разработчика игр, навык номер один, который вам нужно освоить, - это как взять идею и выпустить законченную, отточенную игру.
Со временем вы поймете (что я понял через несколько лет), что программирование - это лишь малая часть вашей игры. Это легко, потому что это весело. Но придерживаться только программирования оставит вам множество неполных проверок концепций и демонстраций.
Вместо этого я бы настоятельно рекомендовал вам создать веб-сайт и блог (Wordpress отлично подходит для такого рода вещей), завершить свои игры (начиная с Arkanoid) и выпустить их в дикую природу.
Кроме того, важно понимать, что если вы делаете это, вы контролируете, когда игра закончится. Если вы хотите 1000 уровней с 10 основными функциями, хорошо. Если вы хотите 10 уровней с 3 основными функциями, хорошо. (На самом деле, я рекомендую небольшие проекты чаще, потому что вы учитесь больше и уделяете много внимания полировке).
Изменить: В ответ на людей, которые не согласны, я чувствую, что мне нужно уточнить. Если вы создали игру только для одной цели / эксперимента (который я делаю все время), во что бы то ни стало, урежьте сферу и отправьте ее. Никто не сказал, что Арканоид нуждается в 1000 уровнях, чтобы быть отточенной игрой; просто сделайте достаточно уровней, чтобы, по вашему мнению, было весело и двигаться дальше.
Можно потратить годы на игру и никогда не отправлять. Но я чувствую, что гораздо проще попасть в другую дыру, только навсегда создавая технические демонстрации и прототипы. Мне потребовалось 10 с лишним лет, чтобы перестать делать это самостоятельно.
источник
Я хотел бы предложить обобщение двух предыдущих ответов. По сути, я согласен с тем, что чрезвычайно важно научиться брать идею и выпускать законченную, отточенную игру. Интернет полон незавершенных проектов, которые кто-то начал, а потом уже наскучил. Способность придерживаться проекта от начала и до конца, то, что я называю «завершающей способностью», является редкой и ценной, и приобретается, заставляя себя практиковать ее.
Однако вы еще не на этом этапе своего обучения; Я бы не советовал делать это с вашей самой первой игрой, а скорее сделайте несколько небольших игр, чтобы изучить их, прежде чем приступать к первому завершенному проекту.
(в сторону: я никогда не определял это раньше, но теперь, когда я думаю об этом, я думаю, что способность отделки - это главное, что я вижу, отделяя опытных разработчиков от новичков)
ДОПОЛНЕНИЕ: Я думаю, что многие разногласия между ответами сводятся к различным предположениям о том, где он находится в своем процессе. Например, когда он сказал: «Я закончил первую полную версию моего арканоидного клона», это могло означать много разных вещей. В моем случае, так как он ранее сказал: «Я также читал, что я должен идти на всю игру (включая меню, звук, счет»), тогда я предполагаю, что он на самом деле реализовал этот материал и спрашивает, должен ли он продолжать идти дальше. В этом случае я бы сказал нет, назову этот проект завершенным и перейдем к следующему.
Однако это только предположение с моей стороны; на самом деле он не сказал, что сделал это, просто что прочитал. Если бы он этого не делал, то я бы сказал, не двигайся, пока ты не сделал это.
источник
Я думаю, что у вас есть правильная идея, что вы должны перейти к следующему проекту сейчас. Я думаю, что это потому, что вы уже учились у первого и хотите применить то, чему научились! Как только вы замедлите изучение основ, тогда наступит время для клонирования более глубоких функций, из которых вы можете продолжать учиться.
Помните, что вы работаете над навыками программирования, а не над дизайном игры, поэтому в итоге вы захотите программировать любой дизайн игры, когда закончите обучение.
источник
Почему бы не сделать клона "твоим"? Добавьте несколько новых интересных поворотов, которые будут вас интересовать.
Есть положительный момент в том, что вы начали «свой» проект, вы чувствуете, что никогда не делали этого раньше. Реальность у кого-то, вероятно, уже есть нечто подобное. Если вы не планируете изобретать новый жанр игр, я бы предложил сделать эти «клоны» своими.
Например, мой приятель в колледже создал понг "клон". Он сделал это самостоятельно, добавил совершенно новый тип игрового процесса, в котором усиление позволяло водить сладкий танк в течение примерно 15 секунд и уничтожать как можно больше кирпичей!
Лучший способ научиться разрабатывать игры (искусство, код, дизайн) - это просто сделать это. Поначалу вы можете делать это не очень хорошо, но главное - продолжать в том же духе и писать больше кода, рисовать больше анимации и создавать больше уровней !! На мой взгляд, не имеет значения, что вы «клонируете» что-то, пока вы делаете это самостоятельно, продолжаете делать это, делаете это интересным и веселитесь!
источник
Чтобы ответить на ваш вопрос, да , полировка вашего текущего проекта будет лучше, чем начинать новый.
1) Нужно привыкнуть к доработке вещей. Это само по себе является опытом обучения.
2) В задачи, которые вам «лень добавлять» (из-за отсутствия более подходящего термина), могут быть встроены тонны уроков игровой разработки, которые вы просто пропускаете.
3) Если вам надоел арканоид, вы всегда можете отложить его в сторону и пока заняться чем-то другим. Там нет ничего плохого.
1) Слишком много незаконченных вещей плохо. Вы не можете использовать свой незаконченный продукт, чтобы эффективно продемонстрировать свои навыки.
Это потому, что иметь множество незаконченных вещей - это все равно, что иметь в шкафу мусор. Некоторые из них выглядят полезными, но на самом деле все это очень бесполезно, а реальность игровой индустрии - мало кто оценит ваш «мусор» (незаконченные игры).
Незаконченные игры слишком распространены. Люди помещают их туда и говорят: «Да, эта игра была саппозой для StreetFighter… теперь вы можете двигаться вперед и назад…». Не впечатляет . Никто не может видеть в вашей голове, какой была игра «Саппоса». Они видят только то, что есть, незаконченное.
Незавершенная игра похожа на недоделанный пирог. Некоторые люди могут оценить это, но на самом деле это на вкус отвратительно, и еще 20 минут в духовке сделают то, что вы уже наполовину сделали вкусным для всех.
2) У функций, над которыми вы избегаете работать, могут быть очень ценные уроки.
Материал, который вы теряете при отделке:
Особенности не реализованы:
Некоторые из этих вещей вы можете пропустить. Например, «Используйте более интенсивно шаблоны проектирования». Рефакторинг, подобный этому, - пустая трата времени для любимого проекта, чтобы применить это, вы просто должны начать новый проект.
Некоторые из них просты. Например, сложный кирпич. Некоторые из них на самом деле много работы . Усиления не так просты, они требуют от вас создания таких вещей, как оружие, пули, требуют добавления кода пересечения лучей.
Я думаю, что вы видите, что «установка лесов была на месте так легко ... и посмотрите, что это почти сделано. Отделка была бы такой большой работой, может также остановиться сейчас». Да, возведение деревянного каркаса для дома тоже «легко», и это может быть половиной работы. Гипсокартон, электричество, сантехника, все это «детали». Но если не закончить дом, никто не будет «покупать», как хорош был бы дом , если бы вы только закончили его.
3) Если вам надоело то, над чем вы работаете, нет ничего плохого в том, чтобы начать что-то еще.
Это не означает, что вы работаете над мусором, но нет ничего плохого в том, чтобы потратить месяц или два на размышления о других вещах или начать новую игру. Вы можете вернуться в Арканоид с новой точки зрения.
Также последний момент. Помимо строительства всех ожидаемых черт арканоида, это еще более интересно поставить свой поворот на нем. Таким образом, вместо того, чтобы остановиться на своем клоне, вы должны сделать еще один шаг вперед и внедрить инновации в оригинальную игру.
источник
Правильный ответ действительно зависит от того, что вы хотите сделать дальше. Если вы переходите к чему-то новому, вы можете рискнуть снова и снова решать одни и те же старые проблемы и не расширять свои навыки, но вы действительно можете перейти к чему-то новому. Если вы продолжите оттачивать, есть полезные вещи, которые вы можете извлечь из краткого списка, который вы дали, и они помогут вам в будущем, но вы все еще работаете над той же старой базой кода.
Что я бы порекомендовал, и это сугубо личное мнение, так это перейти к чему-то новому и сохранить для этого средство. В то же время постарайтесь растянуть себя этим чем-то новым. Так что, если вы в настоящее время не используете 3D API, изучите его и используйте его. Если вы используете один, изучите другой и используйте его. Или перейдите на более продвинутый уровень на тот, который вы используете. Включите лучший звук, физику или двигатель ввода с самого начала. Независимо от того, что я считаю важным, немного переместиться за пределы вашей нынешней зоны комфорта и получить больше навыков и знаний, получая при этом удовольствие.
источник