Dev-Diary: 105

Heya folks!

So this past month has pretty-much been non-stop work on roll. Before we jump into the dev updates, let’s talk about the project itself. But before that, I also wanted to quickly mention that I’ve pushed the recent updates to itch.io where you can try them out for yourself!

Progress of ‘roll’

I’ve been working on this project for… a few years now? I’d wager around 3 years starting sometime in 2021. The first half of development was on/off part-time while the recent half has basically been full-time (including non-dev work like the business side of things). The project itself has changed a lot over that time, maybe not the core idea of it, but many structural elements have adapted and updated. This was often in-part to having to optimise to suit the platform, finding a better way to do something, or simply just thinking-up a good idea. This culminated to a generally finished idea (on paper) by the end of 2022, and since then I’ve been working on two goals; develop the game to fulfill this idea, and find a way to fund the project.

In an effort to tackle these goals, I had to make compromises on both ends; I couldn’t dedicate all my capacity to development if I also had to juggle it with building a business and searching for funding, nor could I properly source income for the business without a more stable and presentable project. As such, 2023 ended up becoming a year of learning so much about business management and the games industry, while also focusing whatever energy I could on just getting roll finished. I burnt out along the way, multiple times, which wasn’t super fun but sadly also felt necessary to meet the goals that had been set. Now we sit in the early months of 2024 and I’ve had to review the progress towards these goals. Unfortunately, the outcome is not a failure, but also not what we were hoping for.

I’d spoken previously about the diverging pathways of this project’s timeline, and that can be divided into two main branches; the ‘Minimum Viable’ and the ‘Full Release’. Minimum is essentially a completed game, but sticking predominantly to the original content intended for the game, with many of the ideas that really expand the experience and story having to be cut. Full on the other hand is the completed game but with all the content and ideas that had been hoped for the game to be included, allowing us to fully present a far richer world, while also providing on-going support and additional content for it. On my end, the difference between these two pathways is a full-time wage for at least another half-year, ideally with back-pay on the unpaid work on I’ve done on roll since the last financial year.

I’ve been incredibly privileged to have been in a situation where could pursue this project (and game-dev as a whole), and the work I was able to do with Radioactive Magic really helped me along the way. After our series PokéStudy concluded, I’ve been working non-stop to achieve the two goals I mentioned above. Sadly, one of the goals could not reached, and we’ve been unable to source funding for the project. To be honest, this project never actually had funding outside of my own personal investment of time and passion, but the realities of our world mean that I can not realistically aim for the Full game any-longer. There are one or two more opportunities left that we will be trying, but for now we have accepted that we only have the capacity to strive for the Minimum release.

There are upsides however. The first is that I have also been working incredibly hard to reach this release goal, even with all the content that will be cut, I am very happy to say that we are well on our way to being able to properly release the Minimum build of roll in about a month. I’ll ramble on what has been accomplished below, but if you’ve been following along at all you’ll be able to see how much this game has grown in such a short time. The second positive outcome from all this is the experience. This is not to advocate the concept of unpaid experience by any means hahaha, however it can not go without saying how much I have learnt in the past year alone. I feel ten-fold more confident in project-management, technical understanding, financial and business planning, and just the industry as a whole. Regardless of what comes next, I know this experience will be able to carry me to stronger successes in the future~

Development of ‘roll’

Now that’s out of the way, let’s have a run-down of major changes to the game over the past month!

  • Seed Generation: Okay, so this isn’t a “change” but I thought I’d start with something kind-of interesting. Fun-fact; I made the Seed generation mechanics myself from scratch in roll! This was very early on and I wanted to build an RNG system that I both had a full understanding of, and also had total control over. As we near the end-game of development and I’ve been reviewing code and functions, it occurred to me that I needed to check the success-rate of this seed generation.
    For producing seeds (and in my opinion), success-rate can be measured in how evenly distributed it’s random values are. If your system produces a number between 0 and 9 but you rarely, or even never, get numbers below 2, then your system isn’t successful. So I recently brute-forced the seed generation in roll and produced thousands of seeds and compared their produced values. I won’t go into the exact statistics, but overall there was less than a 2% margin of variance on the values produced! This is to say, while all the seeds and values produces were totally different, there was no single outlying value favoured, no seed or pattern that kept popping up. Everything was always, very evenly, random!
    Why is this good? Well, on the one hand it means that generating worlds/weather/secrets/music will always be totally random; there won’t be a consistently favoured outcome. You won’t see the same region in the same style in the same spot constantly, nor will certain secrets always be in the same place. On the other hand, it also means that all of the secrets are capable of being generated, that all the available regions are able to spawn in all the places. Essentially, I am happy to report that statistically, all the random-generation is totally functional to suit all the needs~!
  • End-Game & Temples: In the Full branch, there were to be multiple different types of discoverable areas and collectibles, each with their own little goals. But since the very beginning, collecting in-game cards called Stars has always been a core concept, and one of the end-game goals of these Stars has always been to unlock Temples. These are special secret areas that spawn much deeper in the worlds, and can only be unlocked after all the relevant collectibles have been found. These places are grand, taking up a huge space in the world for such a singular purpose, and filled with copious amounts of visuals and effects. While roll has always been a chill casual game, I have always worked to support that simple gameplay with an incredible depth, and Temples are one of the last additions to this game to help build that.
    Temples needed a lot of work. A handful of tweaks and improvements had to be made to various World Generation functions, overhauls to the special effects that guide the player, a lot of additions to Story functions, and plenty of special Triggers Events had to be created. The addition of Temples also saw updates to the handling of some other tiles, most notably the Rituals and how they are named and spawned. Ultimately though, while they need some audio updates and maybe a couple of Random Events, they are fully integrated and look amazing! ^^
  • Menus & the Options Menu: I’ve done a bunch of Menu fixes and tweaks, and added the final major menu screen, the Options menu. From here you can change the game’s quality, effects, volumes, controls, and also reset the game data. Nothing that’s really fancy to talk about (although it does have its own fancy background!), but finally getting this added feels like a major tick on the “This is a proper game!” list! It’s also a huge bonus with how much the graphical options can be adjusted; hopefully this will help people playing on low-end devices, while allowing people to turn down/off the glowing Bloom effect if they wish. In addition to the Options Menu, I’ve also fixed a bunch of rare issues with other menus, and added a ‘Replay Tutorial’ option to the Main Menu.
    (it may not look like much in this example image, but I assure you those Quality options make a big difference~)
Animated image showing the 'Options' menu of the game 'roll'.
  • Post-Processing & ‘The End’: In case you haven’t been able to tell, the game has long had some Post-Processing in the form of Bloom, which is the effect that creates the soft-glow. With the addition of the Options menu, I’ve overhauled the Post-Processing and its handling. I’ve also added an additional effects to ‘The End’, which is that shadowy entity that pursues the player character. In rare cases, the player can actually travel behind ‘The End’, which now no-longer ends the run but instead results in colour shifts to help provide the player visual queues that they have traveled past a dangerous point. This is accompanied by some visual updates to ‘The End’ as well that help its presentation and reduce visual clutter.
  • Optimisations & Others: Lots of smaller updates still worthy of note!
    • Player: Okay don’t worry I didn’t make any changes to the player character! Last time was the last time, like I promised hahaha! Just some value tweaks to reduce pseudo-drag (a function that manually slows the player to help maintain control) to improve the “physics” feel, and some minor adjustments to swipe values to improve their handling.
    • Shaders & Materials: A while back I had done a major overhaul to the water and flora shaders to massively boost their performance. More recently I made some final updates to the flora shaders to further push their performance and add world-space as I had previously done with water. I then proceeded to do the long and arduous task of manually replaced dozens of materials with single generic ones. The depreciated shaders required a unique material for each unique texture, but now the special-effect shaders can all run from a single material each!
    • Pop-Texts: These are various text objects that pop-up across gameplay, from the player character’s small dialogue texts to the headings when entering a new region. These now have backgrounds to massively help readability, and have had a handful of other updates to improve when they pop-up, and to what texts they display (especially for Temples and Rituals~).
    • Tutorial: Still a bit more to go here, but mostly just a bunch of minor updates and fixes, as well as the aforementioned “Replay Tutorial” button.
    • Data: Some minor tweaks to the Data Manager, the thing that saves your progress. I’ve now removed the ‘Automatic Data Reset’ every time the game is launched, which was initially introduced for both demo purposes and also to prevent cross-version data corruption, and have added simple Version control. This honestly shouldn’t be an issue for… anyone? But it’s another step towards completion!

I’ve got a super busy month lined-up ahead of me now while I try to get this game over the line. I’m gonna do my absolute best to do this project justice with the capacity I have remaining! Till next time though, all the best~!
^,,^