Dev-Diary: 93

I have been pretty heccin’ exhausted.. ><“
(which is why I didn’t update in a couple of months sorry!)

So what’s kept me busy? One of the big ones has been my continuing and fun work with Radioactive Magic on PokéStudy, which recently surpassed 500 subscribers so thank-you to anyone who has been following that along! I also had the pleasure of providing a talking-role in the most recent video with a little cut-away chat discussing some ‘Pokémon Go’ statistics! (if by now you haven’t realised, I am a massive Pokémon nerd~)

Of course I’ve also been burning hard on my own projects~ About a month ago I was finally able to work-on and publish a little side-project I’ve been considering for a while; Silver Ambience. This is a secondary YouTube channel where I’ll be uploading two types of music; random chill and relaxing tunes (provided by our amazing musician Lattitude~), and soundtracks/soundscapes to past and current projects. Ever since my time creating the Series of Colour, audio and music have always been crucial elements to my projects, even the smaller ones, and I’ve always tried to ensure extra care and consideration has gone toward it.

This new channel is essentially establishing a place where I can share this music, as well as promote genuinely interesting and atmospheric tunes. I’ll be aiming to upload to here every 2 to 3 months, so not frequently, with the goal being to slowly assemble a library of works. The channel currently features some ambient lofi-esque tracks by Lattitude, along with some anniversary tracks for NieR:Cogito (oh yeah also the 1 year anniversary of that happened! Go check out this Twitter thread for some fun facts!) You can find the channel at the end of this post~

So let’s talk about roll, the main game I’ve been working on, and the other major draw of my time and effort lately. I’m still hoping to get this project released somewhere between the end of this year (2022) and early next year (2023), and this will come down to how much more time and energy I can afford to commit to the project. This isn’t to say I dislike this project, quite the opposite actually I’ve been loving my time and experience working on roll and every month, sometimes even week, that goes by it feels more polished, more full, and just more like a game. I’m just also incredibly keen to continue working on new projects as well (I do need to get around to rebuilding the p̶r̸i̵m̵a̷r̸y̴ ̴p̷r̴o̸j̵e̵c̷t̷..).

As I like to do, let’s cover some roll developments with the ever-popular dot-points:

  • Special Areas: I’ve mentioned world management previously in a massive overhaul I did not that long ago to hugely optimise level generation. While this has worked phenomenally, part of this update also applied a number of limitations to, most notably how much content I could have stored. While tinkering with a concept about area-grouping I had thought-up a while back, I discovered a way to not only implement this new idea, but to smoothly create a work-around for my own optimisation that didn’t sacrifice the performance that the optimisation provided!

    As a quick recap, a world in roll is divided into ‘Tiles’ which are stored on a four-directional* grid *(+/+, +/-, -/+, -/-). Because this grid can only contain byte data, and that data is also used to track generation status (<127 is pending, 128> is generated), there is a hard limit to what that data can contain (if you’d like to know why, go read Post 90). Originally, this included all world data, including ‘Special Tiles/Areas’ that spawn under certain circumstances, but we ran into some issues.

    Firstly, there’s a fair few of these tiles, and for them to take away data space that could be used to expand the common world is unfair and restricting. Secondly, these tiles don’t all spawn singularly, but in groups, paths, patterns, etc. So how do we expand this?

    We take the byte grid, and allocate a single value to be a ‘look-up’ byte. During the stages of level-processing, if it encounters that ‘look-up’ byte, it knows to grab data from a separate list for these unique sections. The extra look-up is negligible, and even then only occurs in the rare moments the game needs to deal with these special areas. This allows me to expand the world content without sacrificing the optimisation I’ve already happily implemented~
  • Animals (/NPCs): The rare few of you who have seen my 2022 showreel would have caught a glimpse at the start of the roll footage showing a tiny glistening Dragonfly zipping around. It was always my intention to populate certain unique areas with living entities, and that Dragonfly was a draft example. I’ve since scrapped that script in favour of a new one that handles all idle Animal/entity behaviour! They are now carefully and smoothly spawned in, are entirely autonomous, and are even super simple to create. It’s a small addition, but one I’ve realised makes a big difference, really giving an extra layer of life to the world.
  • Planning: So what’s coming next (/what am I part-way through working on)?
    • Optimisation: This is on-going and something I’ve spoken about numerous times, but we are getting close to that sweet spot! I’ve still got some scripts to clean-up which I do passively as I go, but the next main focus will be particles and shaders. Particles in this game are tiny, even more-so because it’s on mobile, so we’ll be massively down-scaling their assets. I’ve also been testing some new particle ideas that’ll also hugely cut-down on alpha-rendering. Additionally, I’ll be doing another clean-up on the shaders as I’ve found some still have traces of past iterations lingering. I’ll be reworking them, particularly the water shaders, to run cleaner, but also to improve their flexibility, use, and hopefully their overall look~
    • World Content: I mentioned above the world is slowly getting filled with quite a bit of content. I’ve recently rebuilt a lot of the older draft areas for more seamless and enjoyable ones. My goal is to ensure the player is never ‘trapped‘ or at least aren’t forced to back-track; they always have somewhere to go and an a direction in mind, even if they need to work for it at times. I’ve got pages of drafts already drawn up so I’m excited to really populate this little universe for everyone with as much enjoyable content as possible~
    • Story Content: What, you thought a game about rolling through a maze didn’t have a massive and intricate story interwoven through it? I’ve previously spoken about working with an artist to produce some incredible works for this game, and I’ll be starting to bring those in soon! This is all part of the Story, or to be more accurate “Stories” within the game. Without going into too much spoilers detail; the player collects and uncovers dozens of tales and passages throughout the game slowly painting a lore within the world and their lives that is engulfed with calm, depth, experience, and promise. Some of the groundwork for these elements have already been written in, so we hope to bring them to life sometime soon!
    • Tutorial: I know how to play my own games (usually), and even simple games like “player roll here” usually feel straight-forward enough, but even a light word and a soft guide go a long way in the simplest of engagements. While I find myself showing the game off to more and more friends, families, co-workers, and other devs, I realised how important those first steps are. Based on what I’ve seen people do in their initial moments, I’ve drawn up some plans and ideas for a tutorial, and with the aforementioned update to special tile handling I’ll be able to set this up in the near future.

There’s a lot more still to come and even talk about, but that’ll be it for this time around! I’ll be giving myself a short break over the coming days to both mitigate burnout and prepare for PAX (a contrary sentence if ever I’ve typed..), but I look forward to regaling you all with my continued progress! Continue to support the lives of people of colour, particularly Indigenous folk, as well as all within the glorious queer-community, and till next time, all the best~!