This is the third instalment of a blog series I’m writing about Nakama, which I’ve been using for leaderboards in our first game Washed Up!. Part 1 covers what Nakama is, and why I chose it over other options Part 2 ran you through setting up a basic service you can use for development & testing The configuration at the end of Part 2 is not ideal; it works, but the database is running in ‘insecure mode’ and there’s no SSL between clients and the server, which could leave it vulnerable to interception attacks.
Part 1 of this blog series talked about what Nakama is, and why I chose it over other options for running leaderboards in our very first game, Washed Up!. Now, let’s get down to the nitty gritty of actually setting it up. A caveat The service you’ll have at the end of following this post is only really suitable for testing. There are some additional steps required to make the service more secure & resilient, that you’ll absolutely want to do before going to production.
I recently needed to set up a leaderboard service for our first game, Washed Up! (coming soon, join our mailing list to stay informed). I ended up deploying the open source server Nakama on Google Compute Engine, and I learned a bunch of things along the way, which I figured could well be helpful for others. This is going to be a short series of posts since there’s quite a lot to cover.
If you asked me my opinion of Dark Souls two weeks ago, I would have said, diplomatically, that it was a much loved game which was just not for me. In truth though, I hated Dark Souls. My experience with it had been universally bad. I originally tried to play it back on the Xbox 360, a few months after it came out. I lasted about 3 hours, spread over a few days - a series of mini-rage quits terminated each individual session after about an hour, leading to a final catastrophic rage quit when I was killed by an invader just as I had struggled to a point I hadn’t been able to get to before.
This is a bit of an aside for this blog, hope you like it! I’ve been making my own bread for almost 3 years now; it was something I wanted to try as soon as we got back into our newly renovated house after it being a building site for a year. Marie tried to keep my expectations realistic; our perception was that making bread is quite difficult and previous attempts with a bread maker had been pretty uninspiring.
This week, I officially cut the corporate umbilical and am out on my own again. I’m grateful for my time with Atlassian, which is a great company filled with truly excellent people who I’m going to miss. The fact that I stayed for 6 years when my pitch to myself at acquisition time was ‘stick with it for 12 months and then see how you feel’ is indicative of that.
This week I wanted a toon-style non-photorealistic render, which is something I’ve done before but not for a while, and never in Unity. I’d been playing with the Standard Shader, the physically based pipeline which has support for quite a lot of good stuff like normal / specular / occlusion maps, and kinda just wanted that plus a toon ramp. I figured I’d check out what Unity already had first.
I’ve waxed lyrical before about how much I like Hugo for blogging; the ability to just use a static site with no need to worry about security patches, database connections etc, but still with the convenience of a simple blogging platform, is very attractive. However, it does mean you can’t easily write or tweak content from simpler environments like your phone if you notice a typo, since you need a full Hugo build environment to change content.
My primary development machine has been a series of nicely specced MacBook Pros for about 7 years. Over that time I’ve grown to love these shiny boxes of aspiration. My current machine dropped out of AppleCare in 2016 though, so it was time to start thinking about a replacement for my main work machine - as usual the previous model would be downgraded to our casual machine and would stick around for a good few years afterwards (or so I thought).
Recently I found myself wanting to expose a bunch of game parameters for our latest game project to my wife so she could easily edit them, to play with the difficulty and feel of it. I didn’t want her to have to use Unity, I just wanted her to be able to edit a simple file (while the game is running in this case). Bring on the text Although Unity’s own JsonUtility is a very useful tool for text exchange, JSON isn’t very approachable for a non-developer, given its very strict syntactic requirements.