Я разработчик приложений для iPhone. Я хочу начать играть в iOS. Вопрос в том, стоит ли начинать с изучения 2D, как Cocos 2D или Corona SDK, прежде чем изучать 3D-игры, такие как Unity? Меня больше интересуют 3D-игры, но вы думаете, что знание 2D-игр является необходимым условием для изучения 3D-разработки?
14
Ответы:
Это зависит от того, насколько вы сильны с математикой и концепциями программирования 3D-игр .
2D вы можете получить, используя только понятия x, y положений и скоростей (а также складывая и вычитая их - в основном векторы) и столкновение 2D-блоков.
В 3D вам нужно беспокоиться о математике: матрицах проекций, матрицах просмотра, frusta ..
Кроме того, вам приходится взаимодействовать с гораздо более богатым набором функций из используемого вами API рисования (в силу того факта, что вы работаете в 3D, поэтому вам нужно изучить гораздо больше функций, связанных с 3D ).
Microsoft XNA имеет отличную поддержку для запуска в 2D и упрощает рендеринг с помощью SpriteBatch . Как только вы начинаете заниматься 3D, вам автоматически приходится изучать VertexBuffer или Model , а затем приходит ModelBones и все остальное, что с ним связано.
Лучше всего начинать 2D только потому, что концепции, которые вам нужно понять, меньше (2D спрайты? Легкая прогулка!). После того, как у вас есть некоторый опыт под вашим поясом, тогда вы должны хорошо делать 3D.
источник
Единственная принципиальная разница между разработкой 2D и 3D игр заключается в том, используете ли вы 3-ю ось или нет. Если вы используете такой движок, как Unity, вы можете с такой же легкостью создавать 2D-игры, как и 3D-игры, просто используя проекцию ортографической камеры и спрайты вместо моделей.
Тем не менее, если вы не используете движок, который выполняет большую часть тяжелой 3D-работы, это будет намного сложнее. См. Ответ на этот вопрос: что следует учитывать при выборе 2D против 3D для игры?
Что вы должны сделать, это решить, какую игру вы хотите создать, а искусство и дизайн скажут вам, нужно ли это 2D или 3D.
источник
Я согласен с Тетрадом, что вы должны подумать об искусстве и дизайне, и это приведет вас, если это будет 2D или 3D. Я также скажу, что может быть хорошей идеей сначала создать 2D-игру, чтобы вам не приходилось думать о более сложных вещах, которые приходят вместе с 3D-играми. Кроме того, нужно понимать, что мозг будет обрабатывать меньше информации в 2D-играх, а это то, что вам нужно для более случайного опыта.
Если вы посмотрите на большинство успешных инди-игр за последние 3 года, многие из них были 2D.
http://www.braid-game.com/
http://limbogame.org/
http://supermeatboy.com/
http://www.andyetitmoves.net/
Таким образом, компания может быть успешной, создавая только 2D-игры. Успех игр зависит от игровой механики, истории, эстетики и технологий. В противном случае известен как тетрада. Я не по теме, поэтому я отвлекся.
источник
Имейте в виду, что вам будет проще получить на практике ресурсы для 2D-искусства. Поэтому, хотя я не думаю, что изучение разработки 2D-игр является необходимым условием для обучения разработке 3D-игр (в любом случае код игры поверх графического кода почти одинаков), я все равно рекомендую большинству начинающих начинать с 2D-игр, если вы уже иметь надежный ресурс для 3D-графики (например, вы будете учиться вместе с приятелем, который является 3D-художником).
С точки зрения кода, сложность зависит от того, что вы пытаетесь изучить, и какой движок вы будете использовать (и особенно, если вы будете писать свой собственный движок). Низкоуровневый 3D-графический код намного сложнее, чем низкоуровневый 2D-графический код, но если вы будете использовать такой движок, как Unity, вы не будете писать низкоуровневый графический код. Код для 3D-игры, встроенной в этот движок, не сложнее, чем код для 2D-игры. Действительно, это может быть значительно менее сложно, опять же, в зависимости от конкретного движка, о котором вы говорите.
источник