Clicking ‘New Project’ is always a great feeling – the start of something fresh and exciting, after working on such a dark game previously; SokoFarm was certainly that. Most projects usually start with getting the player character on-screen, NPC and various game-objects moving around and everything reacting to a test environment. It’s quite rare that this isn’t the case actually, but we knew what we were making so… SokoFarm took a slightly different approach – we made the frontend and framework first; literally building the game from the outside in.
Once we got past the usual project setup tasks, building the directory structure, importing the engine and required libraries, etc. the first few of days of actual development were spent on menu systems, interfaces, state management objects and helper systems. Work was also done on updates to some of the engine modules, building in additional input concepts and coding new toys, including a suite of mathematical easing functions and increasing the functionality of the font rendering systems to allow for not only non-Latin languages to be displayed, but for graphics to be woven into the text as well wherever required, so the feel of the front end was there, even if the graphics weren’t.
Not the most exciting stuff, but a great way to end up with a very clean codebase at the end of the project. Very quickly the entire flow was built, all the menus, game states, the level selection map screen, and the level and game completion logic latches were all in, working and full tested along with all the required interfaces, all using placeholder graphics.
We also wanted the game to have the ability for the player to customise their character, swapping between either a boy or a girl; while also being able to change aspects of the characters appearance. This needed a special interface to enable the player to change all the specific attributes; again, all of this went in first. Even the save packet was constructed and wired up to all of the required systems allowing for saving and loading from the games different profiles even though the game itself wasn’t there yet.
There was just the slightly niggling issue of a missing few bits and pieces in the middle of the game state object labelled ‘Game stuff goes here’.