AU: Abandon is a game about vast procedurally generated star systems, a desperate search for the resources needed to stay alive and the peace and solitude of space.
There are two key game dynamics in AU: Abandon. The first is how to traverse the star system and also manage fuel levels. Obtaining fuel (in the form of bright and glowing crystals) also consumes fuel. The player must quickly understand the balance and control required to conserve energy in space.
The second game dynamic involves an ominous threat. Somewhere in space, unknown to the player, lie creatures waiting to hunt down and consume the player’s ship. They are hidden and will either silently follow the player, remaining out of sight unless the player is observant, or emerge as the player searches for the ever more valuable fuel crystals.



Procedural Generation
AU: Abandon’s star system map is generated using procedural algorithms so that each time the player experiences the game, it is slightly different. Each detail of the scene is computed from a selection of simple formulas and is used to define many game parameters, from the shape of the planets and the dimensions of the asteroid belt to the colours of rocks and stars.
While the procedural generation in AU: Abandon is fairly simple, it does help to maintain the feeling of insecurity when the player is navigating the star system, as they cannot predict the locations of resources and monsters.





Tool Set
Most of the development for AU: Abandon used Unity3D and Visual Studio 2012. I programmed the game logic and procedural generation in C#. The game is built upon my own set of Unity3D framework classes that provide a powerful event-based architecture, a hierarchical state machine class for complex state interactions, finer control over physics for game characters and many other useful features. I also employed my own Unity3D-focused unit testing library to help test the procedural generation algorithms.
Learnings & Improvements
The focus of this project was to utilise my skills in procedural generation and physics for a game experience. A lot of my time was invested in the technical side of the game, which I believe shines through. However, I also appreciate that there are many areas where the design of the game could be improved.
If I had continued to work on this project, I would have focused on developing a core objective for the player beyond survival and added more to the world and the gameplay to drive the joy of discovery. I would have also made the onboarding curve of the experience more lenient, as the difficulty can feel quite high for players until they have grasped the fundamentals of 0G movement and fuel management. I would have also explored what music and sound effects I could have added to bring the appropriate atmosphere to the game, as well as continuing to iterate on the art and aesthetics to make it even more appealing.
A key aspect of game development that I learnt about during this project was optimisation. Procedural games can be very taxing for low-end systems, especially when new procedural elements are being generated. This was the first personal project that I worked on where I had to implement a loading screen to cover the heavy work of generating the entire star system, and I often spent time optimising the particle dust clouds to avoid severe hits to frame rate.


