Dev-Diary: 100

o-o”
100 Dev-Diary Posts!

So this has been wild! Just over 7 years of posting here and we finally hit 100 entries! I originally started posting about my game-dev work back on Newgrounds & DeviantArt when I was much younger, and I migrated over to my own website to start this Dev-Diary back in August of 2016. The idea was always, “If I talk about my work publicly, I’ll be holding myself to a standard that others are expecting me to do my best, even if no-one is actually watching.” and, to be honest, it’s helped quite a fair bit. There have been plenty of ups and downs through this journey, times where I dreaded having to type a near-empty post, and times where I have had to stop myself from typing an essay-length entry. Along the way I started posting bi-monthly, even tri-monthly at times, to spread them out and give me a better chance to talk at-length about certain updates. I’ve tried various experiments, worked with numerous different people and groups, learnt an incredible amount, and of course, released a game or two. So let’s do a little re-cap on what’s happened over the years!

Looking Back:

Flash-Era (2016 to 2017)

I first started this dev-diary here on this website just over 7 years ago. Back then Adobe Flash was still active, though beginning to fade into the sunset as newer software was becoming more readily accessible to indie-devs. I was working on a little experimental project called the ‘Monochrome Engine’; a full 2D platformer engine built within Flash. It had everything from physics, NPCs, dialogue systems, quests systems, and even time-trial functions. I had even managed to create particle systems and world-space audio!

Overall, I was incredibly proud of how much I had been able to build myself, which is why I was so devastated when Adobe announced Flash was no-longer going to be supported in mid-2017. Admittedly, it wasn’t the best call to have bet so much on a platform I knew was on it’s last legs, but I was young and singularly-drive. Fortunately, from this came a major turning-point as I was able to take all I had learnt to a new platform.

Early Experiments and T.H.E. Project (2017-2019)

Around late-ish 2017, I began learning Unity and C#. While there was a lot for me to figure-out and I encountered plenty of struggles along the way, my time working in Flash, particularly on the Monochrome Engine, really helped me pick it all up and experiment far-quicker than I expected. I also started learning 3D modelling to broaden my creative palette as well as help me better understand Unity3D.

Of course, I wanted to work on a game, that is what I do after-all, and so was born THE Project. It was here that I learnt all the basics of working with Unity, and professional game-engines in general. As I did with the Monochrome Engine, I started creating my own systems to handle mechanics. This project grew, and grew, and grew, until it reached a point where I realised I did not yet have the skills to truly do this project, and all it contained, the justice it deserved. I wish I could talk more about THE Project, but, I can not. Not yet. Instead, they sit in storage, waiting patiently for us. However, if you would like to help THE Project, you may participate in the secondary project core_ailtt.exe. Regardless, as the 50th Dev-Diary entry passes and we enter 2019, a new turn appeared.

Management IN SPACE! and Extra Work (2019-2021)

Towards the end of 2018, I participated in a game-jam and built a bare-bones concept game about resource-management in space displayed as old DOS-style tech (image that tech-aesthetic from the Alien films). When 2019 rolled around, I decided I wanted to work-on and release that little prototype as a small game, so I shelved THE Project till I could come back and to it and started work on this new concept called Management IN SPACE!. I won’t go into too much detail about MIS! as you can read all about [here], but, just as projects before it had grown beyond their small origins, it too grew from a little concept about trying to mine and sell ore as quickly as possible to a massive space-sim with an in-depth lore and overlapping mechanics. The game had countless artworks, a full soundtrack, and I would often take the it to dev-meets to have it play-tested. However in the August of 2021, I made the choice to indefinitely shelve the project.

While my original postmortem goes into detail on why I put the project away, the summary is that it had become a game held together by duct-tape. Work on the project had been going for about 2 years, and across all that time it kept expanding and changing, with new mechanics being added, stories taking huge twists and turns, and everything just getting added into the code wherever it seemed to work best. While I learnt so much from this project, and it is one I will always be proud of, it was also an incredibly difficult lesson on why a thought-out and extensive pre-production is so important, not to also mention the importance of various coding practices to reduce dependency and ensure seamless stability and adaptability (as opposed to far-too-frequently hard-coding).

During this time I had also started picking-up extra creative work, from various commissions (mostly modelling and world-building for VRChat) to doing the OPOS project across 2020 where I aimed to release a One-Page-One-Shot pen-and-paper game every month for the year. Notably I also did some video editing for Lab Muffin Beauty Science. All of this eventually led me to the opportunities that were to come.

NieR:Cogito, Inflorescent Games, & PokéStudy (2021 – 2023)

Whoa, let’s take a little step back! Towards the end of 2020, I was invited to join an indie-dev co-op called Inflorescent Games Co-op, though I didn’t start work proper until part-way into 2021. This was a small group of Aussie devs and creatives who wanted to work together to make cool little games, and we did!, releasing the palindrome puzzler UFOTOFU:HEX on the 22/1/22! It was towards the end of 2022 that we at Inflo voted to close the group due to lack of funding. My time spent with Inflo was invaluable; it was my first time working consistently with a team of devs and creatives, and I would not be able to fully detail how much I learnt from them. Greater understandings of technical art, managing a business, administration, and coding have all helped me become the better dev that I am today.

While at Inflo, in July of 2021, another small company called Square Enix was preparing to release a new mobile game as part of their NieR series. The dev company working on that game ran an art competition to promote this release, asking creatives to produce something cool within 1 month related to NieR. Now, my first thought was “I’m not an artist, I just make games. Plus, 1 month is not enough time to make a good game…” So then I immediately decided to dedicate every waking minute of that month making a game, and from my blood, sweat, and tears was born NieR:Cogito.

Cogito is a short-ish interactive narrative game where you play as a machine intelligence responding to moral dilemmas with Yes or No. It definitely doesn’t require any previous NieR knowledge, but it does help you understand the nuances and references, as well as why there as so many different endings hahaha~ (Fun-Fact! As far as I am aware, no-one has found the secret ending! Or at least, no-one has told me they’ve found it~) This game went on to win the competition, but unfortunately was immediately hit with an incredible legal whiplash. I spent a day or so communicating with Square Enix‘s lawyers in Japan, rapidly working to adhere to their demands about making changes to the game, but ultimately a stale-mate was reached where; the game would be allowed to stay live, but they would not mention or talk about it publicly (admittedly, a very kind outcome that was wonderfully fortunate for me). Of course, the press decided to talk about it for them. To this day, Cogito still receives a steady traffic of viewers, and has over 11.5k plays/downloads. You can read more about the Cogito story [here].

Game-dev wasn’t the only thing keeping me busy during these years. In fact there were many months where my video work demanded most of my time. I was fortunate enough to meet the wonderful Radioactive Magic who was looking for a video editor to help out with their new series PokéStudy. I started working on this series in early 2021, and for the next two and a half years our team produced 19 videos (plus a few extras!) for the series. Across that time I became more involved in the production side including providing input to the script, directing visual presentation, and working on art-assets. I love Pokémon, and working with Radioactive Magic was a wonderful way to use my skills to show my love for the franchise (and my ridiculous Pokémon knowledge also came in handy a few times during production hahaha~). Just as with my other projects, I learnt an incredible amount from my time working on the series and can clearly see how my skills as a video editor, animator, and producer have expanded across the years. Fortunately for me, it hasn’t just been the thousands of viewers or subs that have enjoyed the series, as Radioactive Magic is keen to continue to work together on more videos in the future~!

‘roll’ (2021 – Present)

During my hectic times bouncing between Inflo, PokéStudy, and everything else, I began working on-and-off on a little project called ‘roll’. The idea was, after I had shelved MIS!, I wanted something to casually work on in my spare time to continue to improve as a dev as well as eventually have something else to pop into my portfolio. The initial idea behind ‘roll’ came from a train of thought I had which went something like, “I just need to work on a simple game like… ball roll… ya’know what yes I’ll do that!” which to this day I still find hilarious.

As with most of my projects, ‘roll’ started simple and soon grew to become quite large. New mechanics were added and somehow a story was established in a game that is still really just about rolling through a maze. This project did catch me off-guard in terms of difficulty however as it is a mobile game, and with that comes a much stricter field of optimisation. Suddenly simple ideas such as procedural generation and fancy lighting became mountains to scale. But I did scale them! You can go back and read the vast essays of text I have written about the technical advancements and strange methods I’ve created to get the game working well on mobile phones, so I won’t go into the nitty-gritty here. Needless to say though, my time working on ‘roll’ has, and continues to be, another major learning stage of my journey as a developer (and I’ll be covering the recent updates down below~). I am so looking forward to releasing this game soon, and seeing what comes next. ^,,^

Dev-Diary:

Wow! That was quite the look-back! I really had to go digging through some older posts to remember some things and get some dates. Let’s also pour one out for the experiments that didn’t quite take-off over the years, such as my desire to get into streaming and speedrunning, and my Choose Your Own Adventure series. I’d also like to shout-out my Silver Ambience project that is still very much a thing I am working on with my musician Duncan Latto, but has had to take a back-seat while PokéStudy wrapped and ‘roll’ suddenly had an increased demand.

Actually, let’s go back to ‘roll’ and talk about why it’s priority has recently shot right up. Very fortunately for myself and the project, ‘roll’ was accepted to showcase at South By South-West Sydney 2023!! This is an incredible opportunity and so I’ve been burning the midnight oil the ensure I get the game up to the next stage of the demo so it is fit for presentation! So, what changes have been made recently?

  • Random Events: We’ve introduced a special new feature called ‘Random Events’ which loads in predetermined events while generating the world. If you’ve been following along, the world is made-up of tiles (something that was necessary for this project for the procedural generation), but after a while you start to recognise the same tiles. Random Events gives us the capacity to set different possible outcomes to each tile that adds or changes certain elements. For the most part these are adding Animals or Items in new areas to give the world a sense of life, but other alterations are possible as well. These events are given a weight on likelihood to occur and are determined by the custom Seed system I’ve written for the game.
  • Quadratic Tiles: Talking about mixing up the tiles a bit, we’ve also introduced a new feature I’ve dubbed ‘Quadratic Tiles’. These are special tiles that are divided into their 4 equal quads and have the contents of these quads randomised (as always, based upon the Seed system). In-action, these special tiles further the sense of randomness within the world by both breaking-up the pattern of tiles, as well as the norm of tile sizes and expectations.
  • Biomes: On tile patterns and expectations, we’ve also added a ‘Biome’ feature to the game! This allows the generation of inter-linked tiles to spawn in randomised patterns. These tiles are often themed, and have unique connection patterns that encourage a new way to move through the maze-like world. ‘Biomes’ are formed in a similar way to how a wave-function-collapse works; an initial tile is placed, and then the surrounding area is expanded on based on the tile’s connection data. This process continues, expanding the area with specially connected themed tiles until the requested density is met, and then this pattern of tiles is applied to the world during generation. Ultimately, this allows for interesting new areas to be discovered across the world, breaking up the standard maze-navigation gameplay and giving players one more thing to explore for!
  • Procedural Audio: Okay, so I’ve actually had procedural audio in the game for a while, but it wasn’t quite working the way I wanted it to. To clarify; the procedural audio is a system that uses music theory to connect various audio notes in order to form randomly generated melodies. The original system wasn’t well optimised however as it depended upon carefully constructed arrays and had a weird time juggling audio sources. This concept has been completely rewritten from the ground up, now having the audio notes constructed with easily modifiable and connectable scriptable objects. The functions themselves have also been overhauled to cater for many more uses, allowing different ways to utilise the procedural audio.
    The most important addition to this is what I’ve called “Sequenced Audio”, an automation of the procedural audio that plays in sequences. The music these sequences produce has a combination of paused beats and held notes to add a sense of realism and variety to the melody. The automation aspect allows this music to be called at varying intervals, as well as on it’s own, in response to the state of the world and the player’s actions.
    Many aspects of the game now use the new procedural audio features and it sounds SO much better! Player movement, item and world interaction, and ambience all use the new system, with more elements still to come. Overall, the soundscape of this game is coming together so wonderfully and close to what I envisioned; a reactive world that together forms a calming and unique melody for the player.
  • Optimisation: Wouldn’t be a Dev-Diary if I didn’t mention optimisation would it! However the sheer quantity of optimisations that I’ve made are enormous, so I’ll keep it concise!
    • Tiles: Many of the world tiles have been fully reworked for better gameplay as well as performance (and several new tiles have been added!). The tile loading system that renders the world around the player has been updated as well, though still needs a bit of work.
    • Particles/Textures: Many of the particle systems in the game have been updated for better performance, namely through a change to more performance-friendly textures. In addition, many other textures have also been updated as well in a similar fashion. This fix has seen a massive performance boost in the game, and is continuing to be implemented into other aspects of the game to further push compatibility.
    • UI: With the migration to the new Unity version to help fix certain hardware issues on some devices, the project suffered significant UI issues, mostly surrounding resizing and ratio-handling. These issues have been mostly resolved, save for a rare issue with specific ratio-handling which is to be addressed down the line when optimising for a wider range of devices.
    • Player: A somewhat common tester feedback has been that controlling the player entity didn’t feel as responsive as it should. We’ve reworked the player control to be more immediate, particularly when taking off, changing direction, and stopping. In the process we also managed to optimise the player script as well by simplifying the calculations necessary for handling the physics.
    • Code: Various scripts have been overhauled for better performance, including reducing calculations, number of variables, and most notably better utilising and controlling coroutines.

Okay that’s it from me. Pretty dang sure this is the longest entry I’ve ever done hahaha! I want to thank everyone who has been a part of my journey thus-far, especially those that support and encourage me! This path I’m on is wild, unpredictable at times, and can even be rather trying. But this is my passion, and I hope to do my best to see where this leads me, and to what I can offer the world.

Till next time, all the best~
^,,^