2012-02-12 5 views
0

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

Например, я думал о создании класса меню, содержащего массив объектов для кнопок в меню, а затем каждое обновление цикла цикла() в меню, которое, в свою очередь, вызывает update() на всех кнопок, передавая пользовательский ввод и так далее. Это хороший способ сделать это?

Я пытаюсь найти структурные приемы за игровым циклом, любые советы будут оценены. Благодаря!

(BTW Я использую C++)

ответ

0

Этот вопрос не так тривиально, но позвольте мне попытаться дать вам очень простой ответ. Вам нужна как минимум архитектура ядра, где вы можете зарегистрировать несколько движков. Взгляните на государственные машины и несколько программных паттернов. Там были действительно богатые книги, посвященные игре, такие как Gaming Game Programming. Начните читать старую книгу Андре ЛаМоте. Прочитайте исходный код, т.е. от Half Life 2, которые можно загрузить в некоторых местах.

Он уверен, что это зависит от среды, C++ лучше всего и может быть самым быстрым способом писать игры, но вы бы хотели использовать DirectX или OpenGL, вам нужен звук и расширенный ввод? Вы хотите начать с более старой версии WinApi? Тем не менее он всегда начинается в одной точке, основной петле. Там должен быть инициализирован ваш государственный автомат, и все менеджеры ресурсов должны быть настроены. Для графических объектов вам нужно подумать о низком уровне цикла init, update, draw, release и destroy. Пользовательский интерфейс встроен в графику, вход и другие компоненты. Не начинайте писать свой собственный пользовательский интерфейс, или вам нужно провести следующие 2 года с ним. Вам нужна реляционная игровая модель, которая описывает мир, который вы хотите создать.

Чтобы быть честным, читайте много о шаблонах (например, mvc), государственных машинах, трубопроводах gpu и каркасном дизайне. Прочитайте много кода от очень талантливых людей, которые открывают его для нас :)

Кстати, что такое пошаговая игра?

+0

Спасибо за советы. Я не знал, что HL2 был с открытым исходным кодом. Поэтапно я имел в виду вручную писать код и редактировать игровой цикл, чтобы что-то случилось, в отличие от создания нового класса с единственным зарегистрированным вызовом, который перехватывает его в остальную часть кода. – Cole

+0

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