Что выбрать: 2D или 3D для Java-игры - PullRequest
6 голосов
/ 28 декабря 2008

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

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

Например, я узнал, что некоторые анимации невозможны в 2D, такие как вращение и т. Д. Мне бы хотелось, чтобы персонаж игрока мог превращаться в животных, и должна быть возможность стрелять в монстров, (например, стреляя из стрелы и видя, как она пролетает и бьет другого человека). Возможны ли эти вещи в 2D?

В будущем, если бы мы захотели перейти от 3D к 2D, было бы возможно без полного переписывания игры?

Ответы [ 6 ]

9 голосов
/ 28 декабря 2008

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

Однако главной проблемой при выборе 2D или 3D должен быть игровой процесс. Есть игры, которые абсолютно нуждаются в 3D (шутеры, симуляторы), в то время как другие обходятся совершенно без (приключения, головоломки, ...). Таким образом, вам на самом деле не нужно решать, а выбирать более подходящее для вашей игровой идеи.

Лично я бы не стал использовать 3D в первой попытке игры, если это возможно, чтобы устранить все ограничения и неприятности, которые с ним связаны.

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

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

5 голосов
/ 28 декабря 2008

Вы должны пойти 2D. Вы указали несколько причин для такого подхода:

  • Вы небольшая команда, и 3D занимает больше работы.
  • Это ваша первая игра, так что Вы должны держать это так просто, как возможно, или проект может потерпеть неудачу (вы подвержены большому риску!)
  • Художник 3D должен переучить поделки!
  • У вас есть (казалось бы, добровольно) крайний срок.
  • 1012 * Etc. *

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

Не бойтесь принять ограничения: хотя 3D может дать вам много возможностей, 2D может привести к более творческой работе!

3 голосов
/ 29 декабря 2008

Я бы рассмотрел пару факторов:

  1. Это мобильная или апплетная игра? Если так, я бы пошел на 2D-версию. В таких условиях очень трудно получить 3D-изображение.
  2. Чем ваш дизайнер более комфортен? Может ли он быстрее моделировать, текстурировать и анимировать персонажа, а не создавать все спрайты, необходимые для 2D персонажа?
  3. Поддержка инструмента. Какие выходные форматы может создать ваш дизайнер в 2D и 3D? Какие форматы промежуточного программного обеспечения, которое вы собираетесь использовать, способны обрабатывать? Может ли ваш 3D-движок загрузить или, по крайней мере, преобразовать файлы .obj (только в качестве примера, можно было бы использовать любой другой формат модели.)?

Даже если вы хотите пойти в 3D, вы все равно можете сделать 2D-игру (иногда называемую 2.5D или псевдо 3D). Также есть несколько хороших сторонних фреймворков для 2D и 3D вещей на Java. Вам не нужно использовать java2D / java3D.

2 голосов
/ 28 декабря 2008

Я бы тоже порекомендовал 2D. 3D-игра будет более требовательной к графическим изображениям на компьютере пользователя, а многие вещи, такие как обнаружение столкновений, значительно упрощаются в 2D. Вы даже можете сделать свои модели персонажей в 3D, а затем спроецировать их в 2D, чтобы создать спрайты для реальной игры. Puzzle Pirates (http://www.puzzlepirates.com/) использует этот подход и работает очень хорошо с точки зрения постоянного освещения и т. Д.

2 голосов
/ 28 декабря 2008

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

В зависимости от того, что вы концептуализируете, повороты и морфинг должны быть вполне возможными в 2D Вы могли бы даже рассмотреть псевдо-3d подход аля Paper Mario ..

Переход с 2D на 3D не должен быть серьезной проблемой, если вы разрабатываете структуру кода с учетом этого. ..

1 голос
/ 28 декабря 2008

Я думаю, что для написания 2D или полноценной 3D-игры нужен совершенно другой подход к дизайну, который нельзя изменить позже: SUN предоставляет Java 2D API и Java 3D API два решения по развитию. За первую игру в сжатые сроки я бы проголосовал за 2D версию. Если игровой процесс интересный, а дизайн приятный, то 3D не является обязательным.

...