Dev-Diary: 101

Hello hello~! Posting a few days late as we had some public holidays here in Australia~

The past month has been non-stop with lots of work on roll, both in preparation for our showcase at SXSW Sydney and on the game itself. One cool little thing we did was print a few decks of some of the in-game collectible cards to help promote our game at the expo, so if you’re attending you can come and collect one of the ‘Stars of Life’!

As for the game itself; the vast majority of the work was getting it to the next demo stage for presentation. This meant a lot of bug-fixes and optimisations, but we also got to add some new and interesting content as well!

  • Player Physics: Over the game’s development we’ve made several tweaks and reworks to how the player handles the orb in the game, often in response to player feedback, and we’ve gone through another major update to address a few final notes. Instead of just updating the controls themselves, we’ve overhauled the orb’s physics entirely. Our hope is that the orb is now more responsive to a player’s intended input, without entirely sacrificing the movement physics of a ball rolling through a maze.
    The orb is now more responsive the more drastic of a change the player is trying to make (something we were working to previously, but went about the wrong way). This is made even sharper by altering the orb’s physical properties, making it lighter and susceptible to a change in velocity, but not so light that it doesn’t have a “weight” to it. We’ve also added a pseudo-drag to the orb that increases the longer the player has not provided input. This results in the orb carrying it’s movement for long enough to feel like a physical object, but not so long that it carries on without player intervention.
    We’re still tweaking this new update to further improve how comfortable controlling the orb feels, but this was a major step in reaching that final balance!
  • Biomes – Forest: In the last dev-diary I mentioned we added ‘Biomes’. Because I wanted to show-off more natural regions in the demo, we’ve added a new ‘Forest’ biome to the game, featuring trees, rocks, and a long winding river. It still needs some additional content to make it more interesting and rich for the final product, but for now it helps show-off the variations and capabilities of the world generation.
  • Shaders: Speaking of showing off the natural visuals of the game, we’ve finally reworked the shaders! Huge improvements were done to both optimise their performance and better their presentation! The three main custom shaders in the game are:
    • Walls: Walls are essentially any physical world object, from the lines and circles, to the buildings and the rocks. These are everywhere, meaning their shader becomes the most commonly used in the game’s world, so having it work at peak-performance is top-priority! We’ve cut-down on the number of variables and calculations by having their UV properties derive directly from their world-space, and also removed performance-intensive math functions (notable anything using sine).
    • Water: The Water shader is used on all the… well water! Previously, we used a noise function called Vonorbi Noise to make this beautiful and gentle water-ripple effect, but we’ve replaced that with two manually generated noise-textures calculated together in an attempt to improve performance. While the overlaid textures create a slightly less “serene” look, the water visuals are still fantastic and demand notably less resources!
    • Plant: The Plant shader is used on all the sparkly-green visuals that show-off flora such as trees and bushes. We had previously overlaid a simple leaf-pattern texture with a noise texture to create a rippling sparkle, with movement applied. We’ve replaced the two textures with a single (very technical) texture of a leaf-pattern with carefully set Black to White values of 0.0 to 1.0. This texture is iterated through in a way that the ‘White’ of the texture shifts through the values to highlight different leaves, creating a sort-of random ripple effect (a trick I figured out while working on NieR:Cogito) which is rendered as a bright emission. This texture is then overlaid through a modified static version of itself (to save requiring multiple textures per shader) to further randomise the emission. Additionally, the movement in the shader has also been optimised by removing performance-intensive math-functions, replacing ‘sine’ with ‘sawtooth’.
  • Music: The new Music Generation functions I mentioned last post are now utilised by the Rain weather event, creating a delicate and beautiful sound when it starts to rain in-game. Musical triggers have also been added to various in-game actions and events, resulting in the music dancing along to the player’s interaction with the world. As mentioned before, the goal is to have a reactively musical world that is created along with the player’s actions, and it is coming along wonderfully.
  • Discovery Menu: One thing I didn’t like in the demo, and that was corroborated by some testers, is the frequency of text-boxes popping-up to force-teach the player how to play. This info-dump interrupted gameplay and provided too much detail, and would also often ‘over-teach’ the player while it tried to explain even the smallest things. I’ve since removed ~95% of the sudden text-boxes, and begun replacing the important ones with in-game animations (similar to the one at the start of the tutorial showing how to move the orb), however I still needed a way to explain the importance of the collectibles.
    I came-up with the ‘Discovery Menu’, a simple pop-up menu telling the player that they had found a new collectible, along with the name and image of the associated Star Card. This way, the players would know they had done something important without having to directly explain that they had. It would also hopefully instill curiosity to learn more about this item they had just discovered, prompting them to read-up about it in the ‘Star Menu’.
  • Other Updates:
    • Tutorial: The Tutorial also had many other small updates, such as adding a ‘barrier’ to the starting area to better guide the player, reworking the visuals of the title-area to better match the aesthetics of the game, and overhauling many of the particle effects with improved performance and to better achieve the desired effect.
    • Story: The stories in the ‘Stars Menu’ have been updated with more recent versions of the story texts, as well as updating many of the missing artworks.
    • Zen Mode: This alternate game-mode which allows for free-roaming without time constraints has been added at it’s barest form, but currently only as a proof-of-concept and not as a full game-mode.
    • UI: Many small UI updates to improve readability and function.
    • Particle Systems: I have previously mentioned that we were reworking many of the particle systems to reduce their resource demand, and as that has proven to successfully improve performance that work has continued, with many more of the game’s particle systems now utilising much smaller textures and performing less complex actions.

That’s it from me today! This coming month will be mostly focused on getting ready for the expo, so I predict less game updates to discuss next time. Regardless, I’m excited to present this project to the public, and look forward to continuing to expand and work on it!

I hope everyone has been going fantastically! Continue to be wonderful and kind to one-another, and till next time, all the best~!