Robo Instructus devblog
Updates on the development of coding puzzler Robo Instructus
I'm a game developer currently working on robot engineering puzzle game Robo Instructus. For my previous posts look here.
Another week, another update. Today it’s beta-2.1 and hot news is Steam Achievements. 8 of them are coming to Robo Instructus and are now available for high flying beta testers to unlock. Release notes.
In getting steam achievements into the game I’ve had to integrate the Steam API libraries for the first time, not a trivial thing for a Rust game as it turned out. I’ve also created some icons and the fairly straightforward logic to activate them. But before all that, why do I even want achievements in Robo Instructus?
It’s worth noting, and indeed everything I note normally is, that I’m not too fond of how achievements are used in many games. As a player I find them mostly redundant and often just not very impressive. I really don’t like playing the tutorial or first level of a game and seeing 7 achievements spring up before I even understand what I’m playing.
However, Robo Instructus is unlike a lot of other games in that it just isn’t a very easy ride. Progressing through this game will be tough, so achievements will be well earned. Overall I’m keeping the count pretty low and want each to feel like a literal achievement.
From a dev’s point of view achievements are in theory a pretty cheap way to generate a little word of mouth as people see their friends unlocking achievements they may become a little more interested in the game too. This little one man game of mine is really going to need all the word of mouth it can get, so this is an important reason in itself.
Actually if you consider the publicity side of it you can explain quite why so many games have tons of junk achievements. I think it’s a line that can be walked, achievements don’t need to be bad right?
Let’s take a look:
Get The Gist
Complete Testing Grounds. This one is doable, Testing Grounds is the 4th level and first where you have to design a simple algorithm and use the language a little bit. No problem, I believe in you!
Into The Under
Discover the underground facility & complete act 1. This means doing every above ground level. The real game is underground so you need this achievement otherwise you can’t say you’ve really played Robo Instructus. You can do it!
The rest of them
The rest of them are hard.
Steam API integration for rust games
As you may know Robo Instructus is written in Rust. Rust is an amazing language that only really has 2 downsides; compile times and not being ancient. The latter means that support for stuff just isn’t always there. This time it’s the Steam API, a C++ library for doing steamy things like achievements & tons more.
There is a project for wrapping the steam API in a rust layer steamworks-rs. But this didn’t include the achievement bits, and didn’t compile for me. So what do you do in these situations? Submit some pull requests! I did just that and after #7 & #8 the crate compiles and provides Steam achievement functionality.
This is the first time I’ve had to deal with bindings to C/C++ and as I haven’t done projects in these languages before it’s something I generally shy away from. Thankfully I only needed to tweak the bindings generation and I found the Steam API docs to be pretty good. Hopefully my efforts will make it easier for the next rusty guy to add achievements to their game, it’s nice to feel helpful.
The Q3 release of the game is looming, which will mean the end of the beta. So beta testers; start unlocking those achievements.