Я вот подумал начало проги должно быть простым, немного абстрактным, но в то же время интуитивно понятым. Думаю все будет примерно так:
SuperStrict
Include "_EngineXXX.bmx"
_Engine.Init("settings.ini")
_Engine.add_state( New _GameRoutineState.Create("game_routine") )
_Engine.add_state( New _OptionsState.Create("options") )
_Engine.change_state("game_routine")
_Engine.Run()
_Engine.DeInit()
End
Чтоб выйти на некий уровень абстрактности, и попытаться объять необъятное, надо постараться сделать как можно более простые и доступные для понимания типы, которые будут юзаться как привычные Бмаксовские. Так например чтоб не держать компоненты цветов по отдельности можно их объединить в тип _Color. И тому подобные упрощения могут привести, как к простоте программирования, так и читабельности кода. Но естественно надо избежать четкой привязки к какой-то одной идее или методу программирования. Если есть варианты или у вас есть уже какие-нибудь полезные наработки таких типов, пишите...