Будет ли полировка моего текущего проекта лучше, чем начинать новый? [закрыто]


15

Я начал программировать много лет назад. Сейчас я пытаюсь делать игры. Я прочитал много рекомендаций, чтобы начать клонирование некоторых известных игр, таких как галага, тетрис, арканоид и т. Д. Я также прочитал, что я должен идти на всю игру (включая меню, звук, счет и т. Д.).

Вчера я закончил первую полную версию моего арканоидного клона. Но это далеко не все. Я все еще могу работать над этим в течение нескольких месяцев (в свободное время я программирую как хобби), реализуя переключатель разрешения экрана, переназначение клавиш управления, бонусы, падающие со сломанных кирпичей, огромные и т. Д.

Но я не хочу вечно учиться клонировать ОДНУ игру. У меня есть желание перейти к следующему клону, чтобы применить некоторые дизайнерские идеи, с которыми я столкнулся при разработке этого арканоидного клона (в то же время я читаю книгу GoF и много исходного кода из игрового конкурса Ludum Dare 21).

Итак, вопрос в том, стоит ли продолжать улучшать клон арканоидов, пока он не будет иметь все функции, которые были в оригинальной игре? или я должен перейти к следующему клону (есть клон почти бесконечных игр) и начать исправлять то, что я сделал неправильно с предыдущим клоном?

Это может быть очень субъективный вопрос, поэтому, пожалуйста, ограничьте ответы на наиболее эффективный способ научиться создавать свои собственные игры (не клонировать чужие идеи). Спасибо!


ПОЯСНЕНИЯ

Чтобы уточнить, что я реализовал, я делаю этот список:

Реализованные функции:

  • Прыгающие способности (мяч подпрыгивает на стенах, на кирпичах и на перекладине).
  • Звучит, когда подпрыгивает на кирпичах и в баре, и когда игрок выигрывает или проигрывает.
  • Основное меню заголовка (только новая игра и выход). Также внутриигровое меню и меню выигрыш / проигрыш.
  • Всего три уровня, но система карт настолько проста, что я не думаю, что она многому меня научит (я ошибаюсь?).

Особенности не реализованы:

  • Усиления при разрушении кирпичей.
  • Сложные кирпичи (с несколькими «хитпоинтами» и непобедимыми).
  • Лучшая графика (я не очень хорош в этом).
  • Программирование полировки (интенсивнее использовать шаблоны проектирования).

Вот ссылка на его (минимальную) веб-страницу: http://blog.acamara.es/piperine/ Мне стыдно показывать это, поэтому, пожалуйста, не бейте меня слишком сильно :-)

Мой вопрос был связан с не реализованными функциями. Я задавался вопросом, что было самым быстрым (оптимальным) путем для изучения. 1) реализовать не реализованные функции в этом проекте, который становится все более масштабным, или 2) создать новую игру, которая, вероятно, будет преподавать мне эти уроки и новые.


ОТВЕТ

Я выбираю ответ @ ashes999, потому что, в моем случае , я думаю, что я должен полировать больше и попытаться "отправить" игру. Я думаю, что все остальные ответы также важно иметь в виду, поэтому, если вы пришли сюда с тем же вопросом, прежде чем принимать поспешное решение, прочитайте все обсуждения.

Спасибо вам всем!


Извините, но говорить, что это объективный вопрос, не делает его объективным. Это будет зависеть от человека , его способностей, целей и мотивации, должны ли они менять проекты - и все это делает вопрос субъективным . На этот вопрос просто нет единственного «правильного» ответа.
Циклоп

Вы правы, я думал о «субъективном», но написал «объективный» (это также случается со мной слева и справа ...). Я изменил это.
Алехандро Камара

Вупс, жаль это слышать. Тем не менее, я не хочу говорить это, но это все еще не очень хороший вопрос для этого сайта. Целью сайтов StackExchange является создание вопросов / ответов, которые полезны для многих людей, а не вопросов, которые относятся только к одному (или нескольким) людям. Кроме того, (в идеале) должен быть один правильный ответ - но для людей в будущем, которые найдут этот пост, некоторые могут найти один ответ лучше, а другой - конфликтующий ответ лучше.
Циклоп

1
Я чувствовал, что это тоже не очень хороший вопрос. Но причина, по которой я это написал, заключается в том, что, возможно, кто-то застрял с той же дилеммой. Даже если нет «хорошего» ответа, обсуждение может привести к тому, что другие люди примут «правильный» ответ.
Алехандро Камара

1
Лично я думаю, что объем обучающего проекта должен включать в себя все игровые функции (поэтому реализуйте бонусы), но после этого вызовите проект, сделанный и продолжайте; не надо полировать графику.
Джоккинг

Ответы:


32

Я не согласен с ответом Патрика полностью. Если вы хотите преуспеть в качестве разработчика игр, навык номер один, который вам нужно освоить, - это как взять идею и выпустить законченную, отточенную игру.

Со временем вы поймете (что я понял через несколько лет), что программирование - это лишь малая часть вашей игры. Это легко, потому что это весело. Но придерживаться только программирования оставит вам множество неполных проверок концепций и демонстраций.

Вместо этого я бы настоятельно рекомендовал вам создать веб-сайт и блог (Wordpress отлично подходит для такого рода вещей), завершить свои игры (начиная с Arkanoid) и выпустить их в дикую природу.

Кроме того, важно понимать, что если вы делаете это, вы контролируете, когда игра закончится. Если вы хотите 1000 уровней с 10 основными функциями, хорошо. Если вы хотите 10 уровней с 3 основными функциями, хорошо. (На самом деле, я рекомендую небольшие проекты чаще, потому что вы учитесь больше и уделяете много внимания полировке).

Изменить: В ответ на людей, которые не согласны, я чувствую, что мне нужно уточнить. Если вы создали игру только для одной цели / эксперимента (который я делаю все время), во что бы то ни стало, урежьте сферу и отправьте ее. Никто не сказал, что Арканоид нуждается в 1000 уровнях, чтобы быть отточенной игрой; просто сделайте достаточно уровней, чтобы, по вашему мнению, было весело и двигаться дальше.

Можно потратить годы на игру и никогда не отправлять. Но я чувствую, что гораздо проще попасть в другую дыру, только навсегда создавая технические демонстрации и прототипы. Мне потребовалось 10 с лишним лет, чтобы перестать делать это самостоятельно.


3
+1 «доставка - это (обязательно?) Особенность», хотя в этом случае вы также можете увидеть клон арканоида в качестве прототипа, а прототипы должны быть выброшены, когда концепция доказана или опровергнута.
Оскар Дювеборн

2
@ Оскар сделать 1000 прототипов проще, чем одну игру. В конечном счете, доставка сделает вас успешным, в то время как прототипы просто улучшат навыки кодирования.
ashes999

2
Зачем отказываться от «просто улучшить навыки кодирования»? Он специально спрашивает об опыте обучения.
Джоккинг

@ Джокинг из-за ответа Патрика. Мой ответ заключается в том, чтобы сосредоточиться не только на навыках кодирования.
ashes999

1
@Yannbane Если люди играют в нее и думают «да, это полная игра», даже если это короткая игра, она завершена. Неполными обычно являются неработающие игры или игры с одним уровнем. Как только вы отправите его за дверь, все готово.
ashes999

8

Я хотел бы предложить обобщение двух предыдущих ответов. По сути, я согласен с тем, что чрезвычайно важно научиться брать идею и выпускать законченную, отточенную игру. Интернет полон незавершенных проектов, которые кто-то начал, а потом уже наскучил. Способность придерживаться проекта от начала и до конца, то, что я называю «завершающей способностью», является редкой и ценной, и приобретается, заставляя себя практиковать ее.

Однако вы еще не на этом этапе своего обучения; Я бы не советовал делать это с вашей самой первой игрой, а скорее сделайте несколько небольших игр, чтобы изучить их, прежде чем приступать к первому завершенному проекту.

(в сторону: я никогда не определял это раньше, но теперь, когда я думаю об этом, я думаю, что способность отделки - это главное, что я вижу, отделяя опытных разработчиков от новичков)


ДОПОЛНЕНИЕ: Я думаю, что многие разногласия между ответами сводятся к различным предположениям о том, где он находится в своем процессе. Например, когда он сказал: «Я закончил первую полную версию моего арканоидного клона», это могло означать много разных вещей. В моем случае, так как он ранее сказал: «Я также читал, что я должен идти на всю игру (включая меню, звук, счет»), тогда я предполагаю, что он на самом деле реализовал этот материал и спрашивает, должен ли он продолжать идти дальше. В этом случае я бы сказал нет, назову этот проект завершенным и перейдем к следующему.

Однако это только предположение с моей стороны; на самом деле он не сказал, что сделал это, просто что прочитал. Если бы он этого не делал, то я бы сказал, не двигайся, пока ты не сделал это.


1
+1 Обыграй меня! Звучит так, будто вы только начинаете, поэтому важнее сделать как можно больше материала и учиться, учиться, учиться. Когда вы поправитесь, вы можете сосредоточиться на блеске. В противном случае вы потратите 2 года на свою первую игру.
NoobsArePeople2

1
Не согласен. Вы можете потратить десять лет на программирование и никогда не отправлять ни одной игры. Или вы можете отправить простой арканоидный клон в первые шесть месяцев. Я чувствую, что последнее делает вас более сильным разработчиком в целом, в то время как первое только помогает вашим навыкам разработчика программного обеспечения (и не так уж и много - вы никогда не думаете об инструментах, жизненном цикле и т. Д. Только о кодировании).
ashes999

Ну, я не сказал, 10 лет сейчас я? Тем не менее, вопрос в том, лучше ли тратить один год на написание нескольких тренировочных упражнений до завершения 6-месячного завершенного проекта, чем непосредственно выполнять 6-месячный завершенный проект в качестве первого проекта. Это главный вопрос в моем учении; лучше ли студентам проводить семестр, выполняя целую кучу небольших проектов или один большой проект, занимающий весь класс? Лично я склоняюсь к «множеству маленьких проектов для старшекурсников, одного большого проекта в аспирантуре».
Джоккинг

Моя позиция заключается в том, что, как бы ни был важен весь проект, для того, чтобы этот проект был успешным, вы сначала должны были изучить основы нескольких предыдущих проектов.
Джоккинг

1
Какие 2 предыдущих ответа? На данный момент это место №2 по количеству голосов
АБР

5

Я думаю, что у вас есть правильная идея, что вы должны перейти к следующему проекту сейчас. Я думаю, что это потому, что вы уже учились у первого и хотите применить то, чему научились! Как только вы замедлите изучение основ, тогда наступит время для клонирования более глубоких функций, из которых вы можете продолжать учиться.

Помните, что вы работаете над навыками программирования, а не над дизайном игры, поэтому в итоге вы захотите программировать любой дизайн игры, когда закончите обучение.


3
Хотя я согласен с @ ashes999 и с вами в равной степени, я чувствую, что в заявленном контексте OP он экспериментирует с реализациями, учится писать разные типы игр. В этом случае я думаю, что он должен предпочесть перейти к следующему.
инженер

На самом деле он подразумевал, что хочет изучать игровой дизайн, а не только игровое программирование. В своем последнем предложении он сказал «самый эффективный способ научиться делать свои собственные игры (не клонировать чьи-то идеи)».
Джоккинг

2

Почему бы не сделать клона "твоим"? Добавьте несколько новых интересных поворотов, которые будут вас интересовать.

Есть положительный момент в том, что вы начали «свой» проект, вы чувствуете, что никогда не делали этого раньше. Реальность у кого-то, вероятно, уже есть нечто подобное. Если вы не планируете изобретать новый жанр игр, я бы предложил сделать эти «клоны» своими.

Например, мой приятель в колледже создал понг "клон". Он сделал это самостоятельно, добавил совершенно новый тип игрового процесса, в котором усиление позволяло водить сладкий танк в течение примерно 15 секунд и уничтожать как можно больше кирпичей!

Лучший способ научиться разрабатывать игры (искусство, код, дизайн) - это просто сделать это. Поначалу вы можете делать это не очень хорошо, но главное - продолжать в том же духе и писать больше кода, рисовать больше анимации и создавать больше уровней !! На мой взгляд, не имеет значения, что вы «клонируете» что-то, пока вы делаете это самостоятельно, продолжаете делать это, делаете это интересным и веселитесь!


2

Чтобы ответить на ваш вопрос, да , полировка вашего текущего проекта будет лучше, чем начинать новый.

1) Нужно привыкнуть к доработке вещей. Это само по себе является опытом обучения.

2) В задачи, которые вам «лень добавлять» (из-за отсутствия более подходящего термина), могут быть встроены тонны уроков игровой разработки, которые вы просто пропускаете.

3) Если вам надоел арканоид, вы всегда можете отложить его в сторону и пока заняться чем-то другим. Там нет ничего плохого.

1) Слишком много незаконченных вещей плохо. Вы не можете использовать свой незаконченный продукт, чтобы эффективно продемонстрировать свои навыки.

Это потому, что иметь множество незаконченных вещей - это все равно, что иметь в шкафу мусор. Некоторые из них выглядят полезными, но на самом деле все это очень бесполезно, а реальность игровой индустрии - мало кто оценит ваш «мусор» (незаконченные игры).

Незаконченные игры слишком распространены. Люди помещают их туда и говорят: «Да, эта игра была саппозой для StreetFighter… теперь вы можете двигаться вперед и назад…». Не впечатляет . Никто не может видеть в вашей голове, какой была игра «Саппоса». Они видят только то, что есть, незаконченное.

Незавершенная игра похожа на недоделанный пирог. Некоторые люди могут оценить это, но на самом деле это на вкус отвратительно, и еще 20 минут в духовке сделают то, что вы уже наполовину сделали вкусным для всех.

2) У функций, над которыми вы избегаете работать, могут быть очень ценные уроки.

Материал, который вы теряете при отделке:

Особенности не реализованы:

  • Усиления при разрушении кирпичей.
  • Сложные кирпичи (с несколькими «хитпоинтами» и непобедимыми).
  • Лучшая графика (я не очень хорош в этом).
  • Программирование полировки (интенсивнее использовать шаблоны проектирования).

Некоторые из этих вещей вы можете пропустить. Например, «Используйте более интенсивно шаблоны проектирования». Рефакторинг, подобный этому, - пустая трата времени для любимого проекта, чтобы применить это, вы просто должны начать новый проект.

Некоторые из них просты. Например, сложный кирпич. Некоторые из них на самом деле много работы . Усиления не так просты, они требуют от вас создания таких вещей, как оружие, пули, требуют добавления кода пересечения лучей.

Я думаю, что вы видите, что «установка лесов была на месте так легко ... и посмотрите, что это почти сделано. Отделка была бы такой большой работой, может также остановиться сейчас». Да, возведение деревянного каркаса для дома тоже «легко», и это может быть половиной работы. Гипсокартон, электричество, сантехника, все это «детали». Но если не закончить дом, никто не будет «покупать», как хорош был бы дом , если бы вы только закончили его.

3) Если вам надоело то, над чем вы работаете, нет ничего плохого в том, чтобы начать что-то еще.

Это не означает, что вы работаете над мусором, но нет ничего плохого в том, чтобы потратить месяц или два на размышления о других вещах или начать новую игру. Вы можете вернуться в Арканоид с новой точки зрения.

Также последний момент. Помимо строительства всех ожидаемых черт арканоида, это еще более интересно поставить свой поворот на нем. Таким образом, вместо того, чтобы остановиться на своем клоне, вы должны сделать еще один шаг вперед и внедрить инновации в оригинальную игру.


1

Правильный ответ действительно зависит от того, что вы хотите сделать дальше. Если вы переходите к чему-то новому, вы можете рискнуть снова и снова решать одни и те же старые проблемы и не расширять свои навыки, но вы действительно можете перейти к чему-то новому. Если вы продолжите оттачивать, есть полезные вещи, которые вы можете извлечь из краткого списка, который вы дали, и они помогут вам в будущем, но вы все еще работаете над той же старой базой кода.

Что я бы порекомендовал, и это сугубо личное мнение, так это перейти к чему-то новому и сохранить для этого средство. В то же время постарайтесь растянуть себя этим чем-то новым. Так что, если вы в настоящее время не используете 3D API, изучите его и используйте его. Если вы используете один, изучите другой и используйте его. Или перейдите на более продвинутый уровень на тот, который вы используете. Включите лучший звук, физику или двигатель ввода с самого начала. Независимо от того, что я считаю важным, немного переместиться за пределы вашей нынешней зоны комфорта и получить больше навыков и знаний, получая при этом удовольствие.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.