v0.3 Release


Alright, v0.3 is uploaded and available.

This post will be broken down into a few sections that stack up in order of increasing technicality. If you want to go in completely blind, you’ve already read enough.

If you’re only interested in gameplay, I’ve written up a hint that will likely become an in-game tutorial somewhere along the way. If you have completed the Prologue, it will not spoil anything for you (and even if you haven’t, it doesn’t really reveal anything).

The second section is the patch notes of this release, which give a high overview of what I’ve added/fixed in v0.3.

Lastly, there is a section of developer comments on things that came up during development. In this devlog, the comments address the technical details behind some of the bugs in v0.2; it’s primarily intended for other developers who might be struggling with the same issues.

Otherwise, that’s it from me. Thanks so much to everyone who played the last build, especially those who gave it a rating and left comments. Not sure I’ll be doing this for every build, but I added people who made comments to the Credits as a very small thank you for taking the time to do so (I would have done it for ratings too, but that felt a bit petty). Your feedback gives me a lot of motivation to keep building on this, and I appreciate it a great deal.

Gameplay Hint

Writing about the new content and mechanics is a bit of a balancing act, because the two main selling points of the game are (1) the story, and (2) the unfolding mechanics. I believe these both tend to be more impactful if you discover them for yourself.

Despite those feelings, I do want to give a UI hint for people if they are getting stuck. If you are struggling with an encounter and it seems like your party is doing no damage, make sure to check the opponent’s icons.

First, the opponent’s type will now show up after a certain point in the story. Maybe you’re all kitted out for combat, but your opponent is a task or some other flavor of challenge.

Image of encounter with a Log Task type
Hovering over the icon will provide a tooltip as to what type of encounter you are dealing with.

Second, a new mechanic has been added to encounters that change how attacks against them scale. Usually, your Hands scale with Strength (i.e. higher Strength means your hands do more damage). Now, however, certain encounters will change that. This will also show up as an icon during the encounter.

Image of encounter with a Goat that requires Dexterity to catch
Strength alone won't chase down this goat.

Patch Notes

Content:

  • Beginning of the Grenn Chapter 1 story.
  • A single encounter hook to the Intelligence stat.
  • A few Chapter 1 home interactions.

New Features:

  • Added a light-mode, selectable in the Settings. 

Bug Fixes:

  • Fixed the disappearing Import/Export Save String input box (WebGL Build).
  • Addressed error message when trying to use mouse wheel in Import/Export Save String input box (WebGL Build).
  • Modified save system so itch.io updates to the web build should not result in saves getting lost (WebGL Build).
  • Note: The v0.2 and v0.2.1 browser saves will still be lost, but hopefully this will not be the case going forward.

Developer Commentaries

There were a few technical hurdles that came up with the v0.2 release that took some research/trial and error to figure out. I took some notes on the problems while I was figuring them out, and have decided to post them with the release in case it helps someone who runs into the same challenges I did.

Saves Disappearing with WebGL Build Updates

The biggest technical issues coming out of v0.2(.1) were related to the WebGL saves. The first, and probably most pressing in a story-based progression game, is that updating the WebGL build "wipes out" the saves from the previous version. Digging into it a bit, it looks like Unity's persistent data moves around on itch.io when you upload a new build. So technically, the saves are likely still in your browser's data; the new version of the game simply does not know where to find them.

The workaround I'm trying here is rather than using Unity's persistentDataPath (or PlayerPrefs), I'm using a fixed path into /idbfs. That way, even if persistentDataPath moves, the game can still find the save games. I’ve tried it out in an itch.io test bed project and it has worked there, but it's hard to say for sure with such a limited environment.

Furthermore, even with this change, your player-specific settings still get wiped out, as those are stored in PlayerPrefs. This means that when you start a new update, you will drop in at the title screen. But going forward you should be able to go to the Settings screen, click the Load button, and see your old campaign. Hopefully that is a workable solution.

There is some further discussion of the problem and the solution I'm trying out here.

While testing this, I also saw some issues where the saves did not seem to be appearing in the browser's storage immediately. Poking around online, it appears the WebGL filesystem does not immediately flush its save data to the browser storage. Importing the JS_FileSystem_Sync and calling it after saves in the WebGL build seem to fix that. See https://forum.unity.com/threads/how-does-saving-work-in-webgl.390385/ for more details.

Disappearing InputField with Long Import/Export Save Strings

Early browser players will also have likely run into an issue I had with InputFields disappearing in the WebGL build. After the first release, I implemented a feature that let users export (and import) their save games as strings. While the feature seemed to work, in the WebGL build it annoyingly causes the game UI to disappear when the save game string was selected.

Behind the scenes, this was implemented using an InputField placed inside a ScrollView object, with the InputField's size changing based on its contents. To be honest, I still don't know why it breaks in the WebGL build. My testing suggests it's blasting the game UI off the top of the screen. If you scroll to the bottom of the text before selecting it all, the UI does not disappear. And if you scroll slightly up from the bottom, the UI shifts slightly upwards instead of instantly disappearing.

My fix was to remove the ScrollView, instead making use of the TextMeshPro InputField support for ScrollBars. My particular InputField prefab comes from a Unity asset pack and needed a few more adjustments: the Text needed it's Overflow set to Overflow and the Text Area parent of Text needed a Rect Mask 2D so that the long string did not cover the entire screen. These changes seem to have fixed the problem, with an added benefit of also cleaning up how the Mouse Wheel works on the screen in question.

Files

Roll For the Gods (WebGL) Play in browser
Version 0.3 Sep 28, 2023
Roll For the Gods (x86) 24 MB
Version 0.3 Sep 28, 2023

Get Roll for the Gods

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.