Должен ли я изучать разработку 2D-игр до 3d? [закрыто]

14

Я разработчик приложений для iPhone. Я хочу начать играть в iOS. Вопрос в том, стоит ли начинать с изучения 2D, как Cocos 2D или Corona SDK, прежде чем изучать 3D-игры, такие как Unity? Меня больше интересуют 3D-игры, но вы думаете, что знание 2D-игр является необходимым условием для изучения 3D-разработки?

Снеговик
источник
Извините, я думаю, что данный вопрос, вероятно, не является обманом того, который я связал. Хотя ответы охватывают много одного и того же основания.
bummzack

Ответы:

11

Это зависит от того, насколько вы сильны с математикой и концепциями программирования 3D-игр .

2D вы можете получить, используя только понятия x, y положений и скоростей (а также складывая и вычитая их - в основном векторы) и столкновение 2D-блоков.

В 3D вам нужно беспокоиться о математике: матрицах проекций, матрицах просмотра, frusta ..

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

Microsoft XNA имеет отличную поддержку для запуска в 2D и упрощает рендеринг с помощью SpriteBatch . Как только вы начинаете заниматься 3D, вам автоматически приходится изучать VertexBuffer или Model , а затем приходит ModelBones и все остальное, что с ним связано.

Лучше всего начинать 2D только потому, что концепции, которые вам нужно понять, меньше (2D спрайты? Легкая прогулка!). После того, как у вас есть некоторый опыт под вашим поясом, тогда вы должны хорошо делать 3D.

bobobobo
источник
9

Единственная принципиальная разница между разработкой 2D и 3D игр заключается в том, используете ли вы 3-ю ось или нет. Если вы используете такой движок, как Unity, вы можете с такой же легкостью создавать 2D-игры, как и 3D-игры, просто используя проекцию ортографической камеры и спрайты вместо моделей.

Тем не менее, если вы не используете движок, который выполняет большую часть тяжелой 3D-работы, это будет намного сложнее. См. Ответ на этот вопрос: что следует учитывать при выборе 2D против 3D для игры?

Что вы должны сделать, это решить, какую игру вы хотите создать, а искусство и дизайн скажут вам, нужно ли это 2D или 3D.

тетрада
источник
4
Я думаю, что вы упрощаете. 2D проще, потому что, отбросив эту 3-ю ось, можно гораздо меньше думать. Столкновение становится проще, обсуждение проблем на бумаге легче, а обучение программированию 2D-игры легче, чем обучение программированию 3D-игры.
бобобо
3
Это упрощение, но в основном я понял, что 1) 2D или 3D не имеют значения для большого подмножества вещей, которые вы делаете в игре (UI, механика ядра, работа в сети и т. Д.), И 2) Использование любого надежного промежуточного программного обеспечения (особенно Unity) сделает большую часть математики за вас, надеясь, что вы сможете сосредоточиться на самой игровой логике.
Тетрад
Последнее предложение прибивает это.
Тим Холт
5

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

Если вы посмотрите на большинство успешных инди-игр за последние 3 года, многие из них были 2D.

http://www.braid-game.com/
http://limbogame.org/
http://supermeatboy.com/
http://www.andyetitmoves.net/

Таким образом, компания может быть успешной, создавая только 2D-игры. Успех игр зависит от игровой механики, истории, эстетики и технологий. В противном случае известен как тетрада. Я не по теме, поэтому я отвлекся.

Джои Грин
источник
+1 за последний абзац, потому что он подчеркивает важность качества контента (такого как история) как черты успеха - некоторые разработчики игр, похоже, упускают эти другие факторы и фокусируются только на 3D аспектах, но есть Есть много поклонников, которые ценят глубину, которую хорошая история и хорошо продуманный фон могут принести на игровое поле (независимо от количества измерений).
Рэндольф Ричардсон
Хотя я согласен с большинством ваших утверждений, было несколько отличных 2D-игр, которые никогда нельзя было считать случайными, в то время как ваш средний 3d-шутер гораздо меньше вовлечен в сравнение.
Эдвин Бак
3

Имейте в виду, что вам будет проще получить на практике ресурсы для 2D-искусства. Поэтому, хотя я не думаю, что изучение разработки 2D-игр является необходимым условием для обучения разработке 3D-игр (в любом случае код игры поверх графического кода почти одинаков), я все равно рекомендую большинству начинающих начинать с 2D-игр, если вы уже иметь надежный ресурс для 3D-графики (например, вы будете учиться вместе с приятелем, который является 3D-художником).

С точки зрения кода, сложность зависит от того, что вы пытаетесь изучить, и какой движок вы будете использовать (и особенно, если вы будете писать свой собственный движок). Низкоуровневый 3D-графический код намного сложнее, чем низкоуровневый 2D-графический код, но если вы будете использовать такой движок, как Unity, вы не будете писать низкоуровневый графический код. Код для 3D-игры, встроенной в этот движок, не сложнее, чем код для 2D-игры. Действительно, это может быть значительно менее сложно, опять же, в зависимости от конкретного движка, о котором вы говорите.

jhocking
источник