Обычно, когда я хочу начать игру, я думаю, что у меня будет хорошая базовая архитектура для рендеринга и лучший игровой цикл с нуля. Я обычно не хочу использовать существующие движки. Причина в том, что я хочу реализовать это самостоятельно, чтобы научиться чему-то.
Но многие блоги и разработчики говорят, что это не хороший вариант для изобретения колеса.
Я что-то пропустил?
architecture
Ayyappa
источник
источник
Ответы:
Нет, это совсем не плохо. Обучение и способность учиться абсолютно необходимы для того, чтобы быть хорошим программистом.
НО
Важная вещь при создании чего-то с нуля - это завершить его до конца. Неважно, насколько он хакерский и неоптимизированный, если вы его завершите, вы почувствуете удовлетворение, как никто другой. Все это даст вам ценный опыт, и вы всегда сможете сделать код более элегантным или лучше работать, когда у вас есть что-то функциональное. В конце концов, единственные вещи, которые отличают классных программистов от посредственных, - это опыт и практика.
Конечно, когда вы что-то сделали и хотите создавать новые игры, нет причин повторно использовать старую кодовую базу.
Если вы хотите начать карьеру в разработке игр или в какой-либо другой форме на самом деле, опыт унесет вас очень, очень далеко. Но если вы хотите быстро и легко производить игры (относительно легко, по сравнению с написанием собственных вещей), используйте существующий движок.
Если честно, комбинация опыта использования собственного кода и использования различных библиотек и механизмов сделает вас гораздо лучшим программистом.
источник
Это, наверное, самая важная вещь. Если ваша цель состоит в том, чтобы учиться, то писать собственные движки рендеринга и игровых циклов с нуля - это хорошо, и это очень хороший опыт обучения. Если ваша цель состоит в том, чтобы быстро и легко сделать готовую игру, используйте существующую платформу.
источник
Изобретая колесо, вы узнаете, как работают колеса.
источник
Зависит от того, что вы после. Если вы хотите учиться, изобретите столько колес, сколько захотите. Я знаю людей, которые написали свои собственные JVM или загрузчики PNG.
Большинство блогов, вероятно, дают советы о том, как быстро получить деньги, но я не знаю, хорошая ли это долгосрочная стратегия. Если вы не знаете, с чем играете, как узнать, хороший ли это выбор? Что вы будете делать, когда будете сталкиваться с проблемами, скулить на форумах или сами сможете разобраться?
источник
Эта фраза вызывает большое разочарование в общем сообществе программистов, но я думаю, что все мы знаем, что многие из нас любят не что иное, как изобретать колесо и находить способ сделать его немного лучше, быстрее и холоднее.
Все время появляются новые технологии, которые нужны людям, чтобы изобретать велосипед. OpenCL и другие языки вычислений на GPU являются хорошим примером.
Вы могли бы использовать среду, которая включала в себя новые возможности этого года, но сделать это самостоятельно, если вы действительно проводите исследования и вносите улучшения в то, что уже есть ... вы действительно можете по-новому взглянуть на производительность и полезность.
После того, как вы изобрели несколько колес, чтобы вы катились, вы хорошо знаете свои вещи в качестве сильного бонуса!
Плюс это чертовски весело.
источник
И есть те, кто утверждает, что они более продуктивны именно потому, что они заново изобретают колесо.
Показательный пример: Эскил Стинберг, создатель World of Love (отличное видео, где он рассказывает о своей игре, своем движке и потрясающих инструментах, а также своей философии: http://vimeo.com/18423305 )
источник
Если это ваш первый раз, даже если это просто для обучения, все же лучше использовать какой-то движок, потому что вы узнаете, что этот движок может предоставить вам.
«Колесо», используемое в метафоре, является концепцией, а не реализацией. Даже если вы не будете заново изобретать колесо, вам все равно придется выбирать, купите ли вы его или сделаете его самостоятельно. Следовательно, создание собственного двигателя - это даже не переизобретение колеса, а просто создание собственного колеса для какой-то цели, которая может быть полезной для обучения, с низкими затратами, для небольшого размера или для любого конкретного использования или требований.
источник
Дело в том, что на создание игры уходит много времени, это фактическое создание контента и ресурсов и тестирование, а не написание кода. Вероятно, поэтому эту часть легко пропустить и использовать существующий движок, чтобы тратить больше времени на контент, игровой дизайн и ошибки более высокого уровня.
Я думаю, что делать что-то с нуля, чтобы учиться, создаст хорошее представление о работе, стоящей за существующими движками, и улучшит возможность выбрать один позже, если это необходимо.
Для удовольствия и для обучения, делайте все, что вам нравится. Если бы мне пришлось писать классы конвейера контента с нуля, обрабатывая все досадные детали и крайние случаи файловой системы и загрузчиков ресурсов, я бы сошел с ума - до тех пор, пока я достаточно выучил, чтобы действительно хорошо понять, как это сделать, Я стараюсь избегать этого, если кто-то уже сделал это хорошо (хотя это правда, многие фреймворки и движки не вписываются в мою собственную идею «хорошего», что может привести к переписыванию чего-либо). Если я не знаю, как это сделать, мне действительно нравится делать это до конца хотя бы один раз, просто чтобы понять более мелкие детали того, что это такое - как уже сказал Рэй Дей.
источник
Это только ошибка, если у вас нет времени учиться. Если у вас есть время, дерзайте. Если нет, то не делай этого.
источник