Create a CMake function to configure it. Entrypoint should manage all engine startup/shutdown steps in proper order. Can use Peoplemon-3 main() as a reference.
Look at Peoplemon entrypoints to determine what should go in main. Use latest BLIB version and update usage. Setup current best practices for properties, constants, etc. Could consider bringing down more structure from peoplemon as well, such as systems, the core/editor/game split, and anything else.
Bring down the concept of saving properties to disk. Bring down the window size persistence as a setting.
Create new namespace bl::game with declarations of functions end users should provide:
void performGameStartup(char** argv, int argc)
bl::engine::State::Ptr createInitialState(char** argv, int argc)
void performGameShutdown()
Update the template project. Should have an init section where BLIB engine properties (spritesheet location, overlay size, etc) are set. Serves as documentation for what options exist.
A feature for arbitrary code locations to register init callbacks would be nice as well. Could have several stages of initialization or just run all init immediately prior to entering main game loop. Would be useful for creating pipelines.
Task list:
[x] Update template project to latest BLIB version for development
[x] Consider making a built-in game data folder in engine under the user data folder.
[x] Bring down Peoplemon Properties & file loading/saving. Have default save location be above game folder
[x] Create new Constants from fixed items in Properties
[x] Put main() in BLIB and use cmake for exe params (name, location, icon, etc)
[x] Setup fixed init functions:
[x] Initial startup
[x] Config loading. Add current fixed properties like overlay space and spritesheet location
[x] Engine initial state creation
[x] Controls setup (and general post state create?)
[x] Shutdown
[x] Consider adding the Systems structure/concept from Peoplemon
[x] Bring down input system setup
[x] Game window size persistence
[x] Create an init helper that arbitrary code locations can use to register additional callbacks for the above startup stages (think pipeline creation)
Create a CMake function to configure it. Entrypoint should manage all engine startup/shutdown steps in proper order. Can use Peoplemon-3
main()
as a reference.Look at Peoplemon entrypoints to determine what should go in main. Use latest BLIB version and update usage. Setup current best practices for properties, constants, etc. Could consider bringing down more structure from peoplemon as well, such as systems, the core/editor/game split, and anything else.
Bring down the concept of saving properties to disk. Bring down the window size persistence as a setting.
Create new namespace
bl::game
with declarations of functions end users should provide:void performGameStartup(char** argv, int argc)
bl::engine::State::Ptr createInitialState(char** argv, int argc)
void performGameShutdown()
Update the template project. Should have an init section where BLIB engine properties (spritesheet location, overlay size, etc) are set. Serves as documentation for what options exist.
A feature for arbitrary code locations to register init callbacks would be nice as well. Could have several stages of initialization or just run all init immediately prior to entering main game loop. Would be useful for creating pipelines.
Task list:
Properties
& file loading/saving. Have default save location be above game folderConstants
from fixed items inProperties
Systems
structure/concept from Peoplemon