The case for self-hosting VCS For game development, I like hosting my own source code repositories. The reason? They get big really fast. We’re hardly making AAA assets but even so, things adds up very quickly unless you’re doing something low-fi. Big files mean increased storage costs, and slower network transfer speeds if you use remote hosted solutions. If you self-host, storage is much cheaper to add compared to, for example, $5/month per 50GB on GitHub, and you can locate your server closer to your work machines to speed up data transfers.
A Problem of Determinism I had a particular problem to solve for our next (so far unannounced) game. I needed deterministic physics. That is, given a certain starting state, I needed to know that if I applied the same forces to that simulation, the same results would always occur. Now, this is extremely hard to do universally, especially across platforms, and even between different binaries on the same platform. So, I limited my definition a little: that given an identical build, on the same platform, the results were deterministic.
Almost 4 years ago now I blogged about my decision to use Unity for our new game development adventures, and in that time we’ve shipped one game (Washed Up!), stealth-shipped one polished prototype (only to our bestest fans 😏), participated in 4 game jams, and noodled with another 2 prototypes that never saw the light of day. All of those have used Unity, and generally speaking we’ve been quite happy with it.
The case for self-hosting One of my favourite things about Git is how easy it is to turn any old server into a remote for collaboration & backup. Sure there are fully-fledged Git web services that manage projects, user access, pull requests etc, and these are a must for larger teams. But if you have a super-simple team like I do now (2 people, both co-located), there is beauty in simplicity.
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.
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.
How about that 2016 eh? I mean, leaving aside that a couple of mature western democracies deciding that it was well past time they got a little ker-azy and lit themselves on fire in case it might distract from other problems. Ignoring the 2016 “Cirque de Caca” thing, it’s been an interesting year for me. I decided to try being a game developer about 3 months ago, and that’s been a fun learning experience so far.