Over the last few weeks I've been busy working on the opening act of Observatorium which represents approximately one third of the game. This is now complete to a rough state with all puzzles/layouts in place using placeholder assets. In this post I discuss the game structure in more detail, outline code/prefab improvements and highlight plans for moving the rest of the game forward.
Observatorium is a game in 3 acts and each act consists of 4 chapters.
Act 1 is called 'Child of Earth' and the enclosed chapters are tentatively called:
(1) Home - Kit receives an important mission
(2) Voyage - Kit begins his journey of discovery
(3) Cave - Kit is empowered with a special ability
(4) Light - Kit masters his new found skills
Observatorium allows players to start a new game, jump to the beginning of any chapter or resume a game in progress.
While the main story thread is linear, sub-threads can be discovered by players who are keen to explore.
You can read more about the structure of the game world here: which is paramount to how we plan to reveal secondary puzzle and story segments.
One of our high level goals for Observatorium is to have no filler. This may sound like alot of work but what this means for us is:
- Each puzzle will be unique and no two solutions will be the same
- Each level will introduce something new - be it a new mechanic, pickup, star or fish type
- Each chapter will be visually and aurally distinct and explore a different theme
- Each act will have a unique tone or aim that sets it apart from the rest
These are rules we have followed for act 1 with good results so far; for instance, we introduce various kinds of starfish, stars, jellyfish and reefs : all of which exhibit positive gameplay effects and so are perfect for our opening act.
We have several means of telling the story in Observatorium:
(1) Notes - Kit will find a range of notes from letters to newspapers to postcards. These are stored in his backpack for reference.
(2) Walkie Talkie - Kit carries a walkie talkie at all times and will receive/intercept transmissions as he travels. A range of secret transmissions can also be discovered.
(3) Pickups - every item Kit collects will empower his abilities but also tie in with a key point in the story. Some items empower Kit whereas others empower his ship.
(4) Game World - the player will uncover some obvious and subtle clues in the game world regarding the story. Some aspects may not make sense until the player has pieced together various clues.
We also aim to emphasise story through the gameplay itself. So for instance in act 1 - with its various kinds of starfish, stars, jellyfish and glowing reefs - we aim to reinforce Kit's positive outlook and wondrous view of space so all of the gameplay mechanics are about empowerment and visual spectacle.
Now act 1 has been fleshed out I have a pretty good idea of where I need the tools to be to help us complete the rest of the game. I've spent the last few weeks refactoring the existing code: removing redundancy and increasing modularity where possible.
For instance, I'm using numerous trigger types to spawn gameplay as you progress: originally these were setup as individual C# classes with no shared behaviour and some repeated code between classes. Now I have them arranged into a hierarchy which better reinforces good object oriented coding practices - e.g.
ITrigger - this interface includes a specification for a Fire() method all triggers must implement
Trigger - this class implements ITrigger and lets me specify one or many target objects to trigger
TriggerOnce - this class extends Trigger class and specifies that this trigger should be destroyed when fired
My TriggerOnce prefab has the TriggerOnce script attached which allows me to use both the general behaviour found in Trigger and the specific behaviour found in TriggerOnce.
Most objects in the game world are currently setup as prefabs which I store in a single test scene. Using Unitys prefab system, I can make a single change to a commonly used object and have it propagate throughout the game.
A screenshot from our prefab test scene is shown below highlighting a handful of our game world objects:
Part of my work over the last few weeks has been removing prefabs I no longer intend to use and fixing up various issues caused by my code refactoring. Using prefabs in conjunction with easily extendable code should save alot of time when it comes to implementing the remaining chapters.
Our talented artists Apollo2D and PeterSatera have been working on some proper assets for the game. Now we have a good idea about the scale of the game world and our characters we can press ahead with improved assets.
We're building our most used/important assets - like the boat, Kit and certain types of fish - in 3D before converting them to 2D for use in Unity. This will allow us to generate new animations much faster. The GIF below shows our new 3D ship model with animated ripple effects. Soon we'll soon be turning these into 2D assets we can feed into Unity:
We're also hard at work at implementing the Kit character model and building test environments that benchmark the graphical depth we will be able to achieve. We'll share some updates ASAP.
The Shape of Things to Come
2014 was an exciting year for the Observatorium team but we're even more exited to show you what we have planned for acts 2 and 3. Let's just say things are going to get bigger and better!
Thanks for checking out this insight into recent developments.
If you have any comments or suggestions - or a specific topic you'd like me to cover - please post below and I will try and respond!
Thanks for reading!
The Man Who Flew Away