Немного о том, как вообще работает любая игра.
Вообще, данный процесс можно описать коротким куском псевдокода:
Игра()
{
подготовитьСистему()
{
сброситьтаймеры()
сброситьстарыеданные();
проверитьфайлыигры();
подготовитьсистемуотрисовки();
подготовитьсистемузвука();
};
пока ( играпрервана != истина )
{
считатьВводПользователя();
внестиИзмененияВПеременныеИгры();
нарисоватьИзмененияПоПеременным();
проверитьпрерванали_игра();
};
убратьлишниеданные();
};
Казалось бы, ничего сложного в этом нет. Но на деле за каждой функцией() скрывается килотонна кода. Потому что надо заранее описать все данные, которые игра должна загружать, считывать от пользователя, передавать в другие функции, которые правильно обработают различные игровые объекты.
Все эти данные содержит в себе движок игры, подготовкой которого я как раз занимаюсь. Нужно описать каждый тип объектов в игре – будь то фоновая фиговина, персонаж, объект, поднимаемый или используемый предмет. После этого надо придумать, как именно происходит взаимодействие между ними, убедиться, что, например, игрок подбирает предмет, а не предмет – игрока.
Это довольно труднявая работа. Особенно если занимаешься ею всего 1-2 часа в сутки (больше реально не получается уделять, я не успеваю за учебой, работой и творчеством на фикбуке).