Tales from the code mines: No. 1

Kwalee programmer, James Munro, tells us about the game production process and some of the tools used to track development data.

Hello! This is James here, one of the programmers from Kwalee’s app development team. Unfortunately, there’s not much I can share with you regarding our current project, codenamed Vegemite. So, instead I wanted to share some statistics generated from our internal source control repository to try and give you an insight into some of the work we’ve been doing. Our repository is a central hub from which our all our developers coordinate their work. We are currently using Subversion (SVN), a well-known revision control server, to achieve this. It has subsequently been hooked into a Jenkins continuous integration server (but that is a separate post entirely!). I have used the free open-source tool StatSVN to produce the charts and statistics.

Since Kwalee was founded, the programmers have been very busy building up our internal tools and technology that will form the backbone of our apps and games. Rather than reinventing the wheel, we are focusing on reusing and integrating as many tried and tested off the shelf components as possible. This will help to reduce the amount of time spent developing technology, whilst increasing the amount of time we have to develop apps. There is a balance to be found as it is not always possible to utilise an existing component to do exactly what we need, so we also develop our own libraries to fill these gaps.

Lines of code

File count

In the above charts we can see the total lines of source-code and files generated over time. This shows the amount of code in the repository as it evolves. The chart is generated from the root folder of the repository – branches are a fundamental aspect of our development methodology and so there is a level of duplication on the total amount of code. You can actually see the point at which we integrate, remove and renew branches, seen as the dips (as Nick pointed out, “it looks like its bleeding!”). You can also see the number of files in the project increasing over time, which gives us a really high-level metric of the complexity of the project. Notice the quiet period over Christmas 2011.

In the chart below you can see the amount of code contributed by each developer. Naturally, the talented artists in our team have not checked-in any code to the project – and this is most likely a good thing (no offence, Jay and Alexei)! The total lines of code is exaggerated by the creation/integration of branches. Unfortunately StatSVN is not currently able to filter this out. Also Nick has been represented by a barely visible yellow colour – sorry about that Nick! Its worth pointing out that quantity does not necessarily represent quality, it is just an interesting statistic to view.

Contributed lines of code

In the chart seen below, it seems evident that Tuesdays and Thursdays are our most productive day in terms of the number of commits to the repository (also including artists). Understandably, Wednesdays are one of the least productive days on the main project – this is a result of the recent introduction of Creative Wednesdays. We would not expect people to be committing their work into the repository unless it becomes a formalised project. Friday is easily explained – most of our developers prefer to do the majority of their hours at the start of the week, and by the end of the week we full of donuts and eager to get home for the weekend!

Activity per day

So there you have a tiny glimpse into the development work that has been going on at Kwalee. We are working really hard on some really cool stuff! There are many more topics we could cover and I will aim to cover these at some point in the future. I am particularly fond of our automated build process which keeps everybody up-to-date with the latest deployments, so perhaps I will cover that next time.

Read part 2 here.