Recently I changed my development IDE from Project Studio IDE to BLIde. I’m sad to let PSI go, but as development of that IDE has stopped and I experienced weird beta behavior a change was needed. Thanks Matt for your fine IDE; it was awesome while it lasted.
So now I am exploring the world of managed code, which is rather nice. It takes away the burden of imports, includes and file management in general.
Converting my game framework to managed code is underway, and made me realize that my ‘framework’ is not really a framework, but a collection of independent systems. There is nothing wrong with that, but I want to move to a solution which will provide the basis, ready to be extended for each game I am going to make.
So, my various systems are to be converted to Services. Converting the game engine to services is a tip I took from the Retro Remakes Framework. That framework looks really nice (although in some weird way I was already doing a lot of things in a similar manner), and I wanted to start using it but as I want to remain free of where I am going with this game (distribution wise) I do not want to use their code, which is free and meant for freeware remakes. So I took that concept, and shape it to fit how I create games.
The services are implemented as singletons. This is a nice concept which also has the advantage of getting rid of a lot of Global variables and fields in game types. A singleton is a type of which only one instance can be created, and just lives ‘out there’, ready to be used by whatever piece of code.
My game needs total control over what is updated and rendered in every single state, so the concept of services updating and rendering all the time is not used. It is now possible to determine this by game state which is cool. I for instance may not want to update the particle engine when the game is in Attract state or, say, Game Over state. Also, each game state must be able to move through steps in each state. Think of the Play state going through various enter, play, die, play, die steps.
Lots of work to do, but it’s fun even though finishing the game (ah, keep dreaming) will take some more time.
Recent Comments