Вопрос

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

При этом я хотел бы разработать игру таким образом, чтобы, если придет время, мы могли как можно проще перенести ее в 3D.Я знаю игры, в которых приходилось переписывать всё с нуля.Мне бы не хотелось этого делать, поэтому я хотел бы использовать некоторые советы/рекомендации при программировании игры, чтобы при переходе к 3D было так же просто изменить код 1-5 классов рендеринга графики (или close) и 3D-графика заработает.

P.S. Это многопользовательская ролевая игра(Нет MMORPG, гораздо меньшая по размеру на данный момент)

Это было полезно?

Решение

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

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

Просто подумайте о (несколько устаревшей) Diablo II, которая не является 3D, но все же имеет красивую и красивую графику.

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

Другие советы

Самый простой способ добиться этого — написать игру в 3D и визуализировать виды, используя проекцию 3D на 2D, напримерв плане или фасаде.Если внутренняя механика игры двухмерная, и вы пытаетесь перейти к настоящему трехмерному кадру, вам, вероятно, лучше переписать ее.Это также в некоторой степени зависит от того, что вы подразумеваете под 3D и есть ли у вас эффективный вариант картографирования.Например, Age of Empires от Microsoft визуализируется в 3D, но отлично работает и в 2D-плане.С другой стороны, шутер от первого лица, такой как Half Life или Quake, не подойдет.

Вы можете использовать ортофотоплан GL.Это позволит вам рисовать на экране, используя только 2D-координаты. Если позже вы захотите 3D, переключитесь с орто-вида на перспективу, и у вас будет 3D, однако я не думаю, что это поможет вам повторно использовать код, поскольку орто-2D-вид обычно выполняется с помощью текстур, и вы не можете преобразовать текстуру в 3D-сетку.

Возможно, лучший подход — сделать все в 3D и настроить камеру так, чтобы она смотрела сверху. Если вы сделаете это позже, вы сможете переключиться на 3D, просто переместив камеру и создав более качественные модели и текстуры.Этот вариант звучит приятнее, но дает вам больше возможностей для компромиссной переносимости 2D в 3D без изменений кода.

Ан MVC шаблон должен помочь.

И я думаю, вы уже в курсе, но смотрели ли вы Java3D?Возможно, наличие заменяемого представления 3D-рендеринга, основанного на этом (но которое не обязательно отшлифовано и готово к производству), поможет вам быть честным и не оказаться каким-то ужасным образом привязанным к 2D.Это может быть так же просто, как рендеринг вашего 2D-материала с добавлением некоторого позиционирования по оси Z.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top