Open Source, Open Process, Open Heart

Screen Shot 2017-01-20 at 10.36.47

As I mentioned a couple of weeks back, I’ve been using GitHub for my latest projects. I learned the basics of version control (on and SourceTree) from my colleague Jonathan Lessard when we worked on Game Studies, but now I’m toddling around with it all on my own like a grown-up.

Other than the obvious advantages of version control like not being totally screwed when you misedit or delete or otherwise mess up a file, I’m finding using GitHub quite inspiring in terms of finally being able to live my (not very ambitious or striven-for) dream of open sourcing my work. Notably:

1/ The most obvious thing is that I can easily make my code available to anyone (read: no one) who wants access to it. It just exists as a repository, organised in the same way it is on my computer, with its various assets etc. There were times when I didn’t feel comfortable with this because I’m not really the world’s most beautiful or competent programmer and I was reluctant to let people see the ugliness that lies within. However, since I’ve been working in JavaScript for a while now, it’s not really possible to hide from anyone anyway, and if I’m not going to hide, I may as well dance around in public. This goes, too, for the idea that people will be able to “hack” or “cheat” my games because they can read access the code easily. And anyway, frankly I would love for people to do that more often.

2/ The less obvious thing that only occurred to me as I was working on SNAKISMS is that I can also open source my process documentation with minimal effort. To date I’ve been writing my process notes on games in Evernote, which I kind of hate but can’t seem to jettison from my life (I used to have this same relationship with DEVONthink). For SNAKISMS I’ve been writing all my process stuff in a couple of text files in Markdown, which allows me to get a decent amount of formatting in plain text (notably I still have access to my one true love, the strike-through – the tildes in the screenshot at the top of this post). This means I can save my process stuff for posterity really easily (can’t imagine anyone else reading it necessarily, but it’s a key part of the overall game-thing so it makes sense for it to be open source as well). Also, because Git tracks changes, it’s even possible to leaf through the history of the process as well, seeing when different to-dos or ideas entered the fray etc.

3/ Along with the text of the process, it’s now very easy to include process images along the way because I just throw screenshots into my process directory and they sync with the rest of the repository like magic. This is true also of any photos I take of my notebook doodlings (though I haven’t doodled anything for SNAKISMS weirdly, it’s been all digital). So the whole process shebang is just taken care of.

4/ Finally, because GitHub kindly includes a hosting service called GitHub Pages, I can actually just host the game on GitHub too, with the game loading directly from the files in the repository itself. This just removes some of the endless fiddling with constantly uploading and re-uploading files as I’m trying to release a game and screwing up and doing bug fixes and so on. Now I just need to make changes to my game locally and then sync it and the released version will be updated at the same time. It really is a bit like magic (to me).

So that’s my (looking at it, kind of nerdy) account of feeling good about using GitHub as a platform for game development (at least in HTML/JavaScript style development). It takes care of a bunch of niggles, consolidates my process, and allows me to share my process and code with anyone who particularly wants to peer at what I’m doing. Radical transparency/honesty etc.

Clear eyes, full hearts, can’t lose.

20 January 2017
← next words previous words →