Продолжим рассмотрение этапов создания игры:
6. Программирование игровой логики (бета-версия).
7. Создание и подгонка уровней для игры.
8. Оптимизация программного кода игры.
6. Программирование игровой логики (бета-версия).
Допустим у нас уже есть хотя бы один игровой уровень определенного формата (желательно формат не менять на протяжении всей разработки, а продумать его сразу). Теперь нам нужно написать само ядро игры (движок), которое будет работать обрабатывать все элементы игры: логику, прорисовку, звуки и т.д.
Сейчас я вам приведу пример структуры ядра моей игры Gravity Booster:
1) Установка параметров системы (разрешение экрана, скорость обновления игры, загрузка CPU, параметры очистки экрана, параметры связанные с качеством физики в игре).
2) Загрузка всех медиафайлов игры (картинки, музыка, звуки и возможно уровни).
Если файлов очень много, то лучше всего этот процесс автоматизировать. Вот пример кода на App Game Kit (это моя основная среда разработки):
for i=1
to 100
mediafile$=
"image/objects/"+str(i)+".png"
if GetFileExists(mediafile$)=1
LoadImage(i,mediafile$)
endif
next i
Этот код можно еще упростить, если убрать проверку на существования файла.
Вот собственно и сама среда разработки (AGK):
3) Создание основного цикла игры. Он будет выглядеть примерно так:
а) проверка на прикосновение к экрану;
б) обработка меню;
в) загрузка и выгрузка уровней;
г) сохранение настроек и игрового прогресса;
д) обработка геймплея (проверка на выигрыш и проигрыш);
Желательно писать основной цикл не сплошным кодом, а разбить его на отдельные процедуры. Пример основного цикла с Gravity Booster `a:
DO
nowtime=
GetSeconds()
TouchX=
Round(GetPointerX())
TouchY=
Round(GetPointerY())
gosub _touch // процедура проверки прикосновений к экрану
gosub _check_menu // основная процедура игры которая управляет остальными процедурами
if GetRawKeyState(27)=1
then exit
if stop_game=1
then exit
Sync()
LOOP
Хотя основной цикл игры очень маленький, но за процедурой gosub _check_menu скрываются около 1000 строк программного кода. В свою очередь эта процедура разбита еще на 10 меньших процедур.
4) Тестирование кода (бета-версии) игры. Исправление явных ошибок в коде (частые вылеты с игры, зависания). Если вы писали исходный код очень аккуратно, то вам может и не понадобится исправлять ошибки, но тестировать игру нужно по любому (чем чаще - тем лучше).