Thursday, 11 February 2016

Code Written for Star Dancer

Code Written for Star Dancer
(or how I made my fingers bleed)

When I put Star Dancer together there were a number of different disciplines and procedures that had to be completed, ranging from design to art to music and so on. The majority of the work that I produced involved coding.  I have already demonstrated the cost of development as being approximately $7000 for art assets and so on in another blog post.

However the actual amount of coding work that I did was substantial to say the least.

Every few months I would run a program that gave me some estimate of the amount of code written as part of the runtime but also as part of the development process. Since some of the game's assets were generated in external code files not included in the game itself I included much but not all of these.

The coding took place after business hours (I worked a day job) and usually averaged out to be about 20 hours per week for a 6 month period with an additional couple of months at a far reduced hourly amount per week (about 2 hrs) in the post release phase when the occasional enhancement and bug fix was released.

The total hours of coding equated to approximately 500-600 hours of code over the course of 2015 for Star Dancer.

Because I don't charge myself for coding this saved me a lot of money by doing it myself!  Had I hired myself out to a client for the same amount of time I would have expected no less than $100 per hour to work in my own time (ie in addition to my full time job for the inconvenience) and would have cost a client approximately $50k-$60k.

While lines of code is not necessarily a useful metric for measuring productivity it does tell you a little bit about just how much actual code was required to be built since the project was begun from scratch.

So here are some figures for those that enjoy numbers.

Java (Android app) - approximately 25,000 lines of code including approximately 600,000 characters typed.  (comments included)

XML (Android app) - approximately 4,000 lines of XML for approximately 100,000 characters typed.

GLSL (Android app - shader) - approximately 240 lines of GLSL with approximately 8000 characters.

PHP & SQL (Web Backend) - approximately 15,000 lines of code with approximately 350,000 characters typed.

BlitzPlus/Blitz3D (tools/image processing, prototyping ideas, tests) - approximately 25,000 lines of code written including approximately 500,000 characters typed.

The vast majority (over 95%) of this was written between early February and late June 2015.  It was a considerable amount of effort and had I been charging a client only $100 AUD per hour then I'd say they would have been getting an amazing deal in terms of output per hour.

So had I lacked programming skills my game would have been totally impossible for me to develop as a hobby as that would have been easily the greatest cost in development for a project like this.

No comments:

Post a Comment