Переход от 2D к 3D позже в разработке игр - PullRequest
1 голос
/ 30 марта 2010

Я бы хотел поработать над игрой, но для быстрого создания прототипа я хотел бы сделать ее максимально простой, поэтому я бы все делал в 2D сверху вниз в GDI + и WinForms (эй, я как они!), поэтому я могу сосредоточиться на логике и архитектуре самой игры.

Я думал о том, чтобы иметь всю игровую логику (сервер) в одной сборке, где приложение WinForms было бы клиентом для этой игры, и если / когда настало время, я бы написал 3D-клиент.

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

Другая идея - просто преодолеть это и изучить XNA / Unity / SDL / что-то хотя бы до этого уровня, чтобы я мог сделать ту же 2D версию, что и в GDI +, и мне не придется беспокоиться о переключении фреймворков. больше.

Скажем так, в игре вы наблюдаете за чуваком сзади, бегаете по игровому миру и взаимодействуете с объектами. Таким образом, перспектива с высоты птичьего полета может быть выполнимой на данный момент.

Спасибо.

Ответы [ 3 ]

4 голосов
/ 30 марта 2010

Вам действительно нужно просто прикусить пулю и взглянуть на одну из упомянутых вами фреймворков.

SDL довольно хорош, но, честно говоря, если вы хотите просто приступить к написанию своей игры, XNA невероятна.

Если вы уже имеете опыт работы с C #, вы можете следовать интерактивным учебным пособиям, но для того, чтобы действительно начать работу, достаточно взять всего одну книгу по XNA.

3 голосов
/ 31 марта 2010

Это слишком долго для комментария, но ... Ваш игровой физический мир должен быть в значительной степени независимым от типа представления, которое вы используете для его просмотра. Например, RTS (как, скажем, Warcraft III) нередко предлагает как 3D-вид, так и «мини-карту». Если вы думаете об этом, Warcraft 1, который был 2D, не сильно отличается от Warcraft 3 (который является поддельным 3D, но представлен в реальном 3D).

Другой пример, вы говорите о наблюдении за ходом какого-то персонажа: это не то же самое, что CounterStrike (ну, в CS вы чувак, но в любом случае), где у вас есть как 3D-вид , так и также миникарта. И, кроме игрового процесса, я уверен, что могу обойти «Пыль» (одну из самых известных карт CS), используя только мою миникарту: мне не нужен трехмерный вид, чтобы ходить (теперь, конечно, чтобы прицелиться, я не могу использовать миникарту ).

Во многих играх "мир физики" отличается от "мира 3D": иначе люди с разными конфигами не смогут играть в сетевую игру.

Другой пример CounterStrike: у меня был действительно старый дерьмовый Celeron с дрянной графической картой, которой едва хватило для запуска игры, поэтому я модифицировал игру так, чтобы использовать для персонажей модели с «низкими полигонами» (это значительно повысило скорость рендеринга) и, следовательно, сделал игру очень играбельной на моем дрянном конфиге). И я все еще мог играть по сети. Зачем? Потому что изменение мировоззрения не меняет физический мир .

Так что «представление» действительно не должно сильно влиять на вашу модель, потому что представление - это деталь. Теперь, конечно, вам нужно как-то решить, что вы хотите: но если за «чуваком», которого вы упомянули, можно следовать, используя 2D-вид сверху вниз, а также изометрический вид и «FPS-подобный» 3D-вид, тогда Конечно, смоделируйте свою «физику» так, чтобы она не имела отношения к представлению. Таким образом, вы сможете начать с чего-то простого: 2D-вид с использованием пикселей (например, CounterStrike или мини-карта Warcraft 3). А позже вы можете начать добавлять 3D вид.

Теперь тип мира, который вам нужно использовать, зависит от того, что вы хотите: черт, есть и «2D-физика / 3D-игры», «3D-физика / 2D-игры», «2D-физика / 2.5D-игры». (GIYF, если вы не знаете термин «2.5D» в разработке видеоигр) и т. Д.

Моя точка зрения такова: вид не связан с моделью / физикой (опять же, иначе люди не могли бы играть в сетевую игру CounterStrike или Warcraft).

1 голос
/ 30 марта 2010

Я не программист, но я знаю, что разница между задачами моделирования физики в 2D и 3D огромна.

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

...