Fell Friday #87 - Achievements, Cloud Saves
This week, we've been working on various odds and ends. We finished the Ancient Path dungeon, so our content is now finally complete for the game! We've been working on bug fixing and some small balance tweaks.
Otherwise, we've been working on Steam integration and Gog galaxy integration. We have Steam Cloud saves as well as Achievements ready and those are live right now in today's build.
We've also been working on integrating Gog Galaxy, and that should be finished as well, allowing for Gog achievements.
For anyone interested on some programming stuff: we ended up using the Steamworks free plugin for Unity, as per the recommendation of other indie devs we know. On the plus side, it's free and covers all the features of the Steam API. On the minus side, the documentation seems a little sparse and it's a little cumbersome to use, with the very poor way callbacks are implemented in it. We also add to find a way to make it work with Unity's IL2CPP, because the callback system wasn't designed to work correctly with it either. But we got it all done in about a day, so it ultimately wasn't that bad.
We also added support for Gog Galaxy, which we found was modeled after the unity Steamworks plugin (we actually started with this one, so it helped with Steamworks rather than the other way around), although with a better callback system (if still overall not exactly well designed). That also took about a day, so it wasn't that bad at all.
On a related fun note about Unity: unless I'm missing something, Unity allows one to flag specific plugins as "not part of a specific build", even with #defines support, which is nice. But while it won't "load a plugin that's not supposed to be included", it'll still include it in the final build, adding random unrelated clutter to the game. That's an interesting setup... We solved this by creating some post-build scripts that go in the build folder and erase the plugins that shouldn't have been copied in the first place because they're flagged as "not used", but I admit I feel like flagging a plugin as "not included" should probably not include it from the files, as well as "not loading it in game" or something.