update 1.0.2 and roadmap
This update is mostly fixes but there are some changes about unlocks.
For run-based mode, unlocks can be unlocked only if there’s no run in progress. You have to either fail or finish the game or – you can end the current run from the unlocks menu. I was a bit reluctant about this change as a long time ago I specifically made unlocks available during run as the unlocks do not affect the current run. But there were side effects I found attractive – if you buy an upgrade, consecutive permanent upgrades in the game will cost less. I have no idea why I liked this idea as it encourages to exit the game, buy stuff using menu and go back to the run. Although it adds a bit of tinkering, it works strongly against the immersion.
Another change is that all EXMs that were installed during a run are available to unlock from the unlocks menu. Before it was only about the EXMs that you had on yourself in the moment of death or when finishing the game. The old approach is a bit more limiting and frustrating. And also may encourage to end run too early only to have an EXM available at EXM kiosk in consecutive runs.
There’s also a bunch of fixes related to unlocks. And while I tested them, I suspect that I could have missed something.
I base this on fact that all the features I implemented I tested once they were implemented and then while just playing the game. But not all as there are myriads of possible combinations of options. And there are still some bugs reported that I have to fix that I haven’t encountered before. Some of the problems are because of various features overlapping in an unexpected way, while some are because things have changed.
Crouching options was broken. When I implemented it, tested setting, saving, loading, generating levels. Worked fine. Then I added “no crouch” modifier, also tested it. And then I replaced “no crouch” modifier with a different one, tested the changes and it worked fine. But – I haven’t removed the code for “no crouch” and later it was triggered by some other code which resulted in “crouch” option being replaced with non-existent “no crouch” modifier.
I don’t regret adding too many options. I regret that I haven’t came up with automatic tests to cover as many combinations as possible. Especially as things get broken after a while, when other parts of the code are changed. I still have to fix centipede that with “mean machine” modifier is broken and leads to soft-lock. I remember tweaking “mean machine” modifier for centipede as I wanted this modifer to make the fight much harder.
But back to what was fixed:
- “no crouch” option
- “rotating elevators” in “breach” chapter when “no rotating elevators” option is chosen
- fix for being forced into a wall after using a turret
- creating new profile that was clearing savegames for the old one
- various crashes (with one being very very specific about loading a savegame next to the train station in “the outer rim” when there was a platform bridge close to the starting room)
- degree symbol being displayed incorrectly
Other important changes:
- changed how memory is managed for music and narrative voiceovers: music is only kept in memory for particular level, narrative voiceovers are streamed (I chose keeping unpacked samples for music to not find myself with CPU being a bit more occupied with sound decompresion). The main reason for this change were some crashes I got reported by people playing on Quest (1) but not by my crash reporting tool nor the system. I suspected out-of-memory crashes, and although the reports were showing that there is still 200MB to spare on average, that “average” bit + no reports lead me to suspect OOMs.
- added “swap joysticks” controls option to allow using right joystick for movement and left joystick for turning
- improved visibility of exits for “beneath” and “breach”. “Beneath” had only a very little red marker and “breach” didn’t have even a tiny red marker, just a distinctive structure around the exit.
I have still a few bugs to fix, mostly gameplay related but also some functional. I might be also improving some functionalities – I’d like to fix the problem of inability to read play area while using Quest via airlink. While none of the existing systems is able to provide valid play area size and orientation, Oculus API allows to read raw boundary data and I should be able to find the most suitable play area using that.
I did also some work on PICO and Vive builds. More news on that should be available in the following weeks.
That’s it for this week. It’s one more thing, the roadmap that hasn’t changed much since the last week:
- Fixing bugs. I still need to replicate some rare crashes but right now it is mostly
- Port to PICO and Vive. PICO seems to work really well using 5.6.0 update. And I’ve heard that 5.7.0 update improved the performance (before I did the recent changes). For Vive I improved dynamic scaling that it is much more responsive. Vive Focus 3 has enormous resolution and runs in 90FPS which requires some solutions that are not required on other systems (unless I would decide to run Tea For God on Quest 2 in 90FPS)
- Achievements. The list is coming together.
- Endless/tasks mode with three different maps and three types of missions. This has now a higher priority than “chapters” as it may bring more gameplay for the same amount of work as hand-made chapters. Especially that I will be reusing existing assets and adding more of actual gameplay rather than focusing on creating completely new things.
- Add chapters that were not made for 1.0.0.
- More maps and types of missions for endless mode.
- Short stories that will be unlocking new stuff for endless mode.
- Challenges with leaderboards.