Государственное управление в приключенческих играх - PullRequest
3 голосов
/ 27 декабря 2010

Я думал о создании приключенческой игры point'n'click. Проблема, с которой я столкнулся, заключается в представлении логики и состояния игры в общем (и не безобразном) виде.

Состояние игры:
Вы взяли предмет из комнаты, он больше не должен быть там (это можно сделать легко) Вы говорили с персонажем, который делал что-то, что влияет на другую комнату / экран, как сохранить в каком состоянии комната и персонаж

Логика игры:
Вы разговариваете с персонажем, он делает некоторую анимацию и меняет некоторые вещи в состоянии мира, как бы вы это установили, не запрограммировав их в игре?

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

Ответы [ 2 ]

4 голосов
/ 27 декабря 2010

Один из более привлекательных вариантов - использовать язык сценариев, например Lua . Вы жестко вводите в игру только те свойства, которыми может обладать данная комната, предмет или персонаж , как они могут связаны друг с другом (например, предмет находится в комнате), и все реальные вещи будут выполнены скриптом. Это дает преимущество в более простой отладке, если вы все делаете правильно (вам не нужно перекомпилировать свою игру, фактически, все сделано правильно, вам даже не нужно будет перезапускать ее), но недостатком является добавление некоторой сложности.

Также вы можете рассмотреть возможность использования некоторых из уже доступных игровых движков для приключений с точками и щелчками, например AGS или Wintermute . Если вы хотите сделать игру , вам нужно как можно больше избегать программирования, чтобы сразу перейти к игровому дизайну. Я знаю, что это может быть трудно принять для программиста:)

3 голосов
/ 27 декабря 2010

Если ваш игровой движок не содержит какой-либо язык сценариев, вам придется жестко кодировать что-то .Устранение жесткого кодирования приводит к тому, что ответственность за определение действий передается во время выполнения, и среде выполнения потребуется определенный способ определения этих действий.Если у вас его еще нет, посмотрите на встраиваемый язык, такой как Lua или Python, или, возможно, даже Javascript.

...