What are the States of Breaker Bots?
- Runtime State: Determines what screen the player is on.
- Title, As implied, displays the Title Screen
- Main Menu, displays the Main Menu of the game
- Deck Builder, Displays the deck building menu
- Game, Displays the game screen
- Runtime Substates: Determines what "State" the current Runtime State is in
- Title States:
- "Credits": shows the game credits
- "Title": shows the game Title
- Title States:
- Object States: Determines what functionality should control the game object
Actually, after developing these state machines and having all the states prepared for usage (Took a day to have the menus and game screen states laid out, which was so much easier than the complex methods I'd used before.) I found that I had much more room of creativity than before, because where before I had to worry about certain code interfering with other code, with the more specific my state machines are, the more I can keep each part separate and abstract them.
This all creates quite a lot of room for duplicate code at times, but ease of use definitely beats redundancy here. With newer systems, there's no need to worry about redundancy, so long as it's not dealing with heavy operations.
What are Timelines?
Because Timelines are included within states, and Timelines are easy to create, I can activate a Timeline for the Intro substate within the Game State which will move objects onto the screen stylistically, and with tweens and curves I can ease objects in, bounce them in, or do whatever I want to make it look as fancy as possible.
I guess, while a lot of this information might be common knowledge to most game developers, I'm just writing this dev blog piece, and probably any other post I write later, because it's one of the things that excites me about developing Breaker Bots. This simplification of development has woke a joy in development that I'd lost for some time, because of the anxiety to deliver a product without the proper ability to do so.
But here we are, in a place where; although I've been incredibly busy in my personal life (that happens not to be funded by game development, therefore allowing me little time, as a father of two, home owner, pet owner, and husband, to work on it; I've gotten quite far in a game I'm very passionate about. A game that is only a step in the direction I'm going in my game development journey.