Advertisement Jump to content
  • Advertisement
  • entries
  • comments
  • views

Professional results through professionalism

Sign in to follow this  
Mike Bossy


When you're working by yourself on a project it's really easy to get into bad habits. These turn into bad results, wasted time and a lack of motivation. In the past I'm slipped into bad habits that would never cut it in a real work place. This time I tried to start off on the right foot from day one. That means:

1. Proper source control

Yes making occasional backups on a CD is fine most of the time but it doesn't give you the full stength of a proper source control system. In my current project I've needed the ability to roll back changes and do diffs more than once, and it's saved me countless hours. In this day of great open source solutions there's no reason not to be running a source control system. I run an SVN server on one of my machines and love it. I even went as far as setting up an SSH server so I could do checkins remotely from a coffee shop. So far I've had checkins while in 3 countries. One doesn't count because it was Canada where my parents still live but the other was from Spain. What else are you supposed to do on an 8 hour trans Atlantic flight besides code?

2. Library separation

In the past I've usually just included my engine source right into my game projects. Same goes for any external source I might be using. This time I have kept all non-game source separate and built into static libs. That means everything. I use TinyXML for some data parsing in my engine and I have a lib for that. My Ogg Vorbis stuff is in a separate library. This may seem like a lot of extra organization work but it makes problems so much easier to track down. Knowing that my parsing code is solid and not changing means I don't have to question that code when I see it in a call stack.

3. Real Documentation & Samples

No matter how small your engine is there are parts of it you will forget. I've coded 100% of my engine yet from time to time I find myself coming across a method that I don't remember. As the engine gets larger and needs less work this will only get worse. For this reason I set about creating real documentation for everything. While this may seem like a bunch of extra work it really isn't. Using a tool like Doxygen you can now create great looking docs from the comments in your source code. We all need good comments so why not format them in a way a tool like that can use?

Going a little further I actually coded up some basic samples on how to use the engine. I admit this might be a bit overboard :) If nothing else it was fun to treat this tiny little engine like a real product.

4. Work logging

As I've said before I try and track all work items done along with how long they took. I gives me day to day motivation and helps give me an idea of how much work is involved in such a game. It will hopefully help me to make better time estimations down the road if I should ever get to the point when someone asks me to deliver something.

5. Become legal

The final step to professionalism was forming a legal entity. A couple months ago I formed an LLC and got all the necessary business licenses. The startup costs were around $500 and the annual costs are going to be in the $150-$200 range. This might seem like a fair amount of money for a piece of paper but people who have other hobbies don't think twice about spending more than that a year. Do you know a golfer who can't spend $100 in a round of golf?

It does mean having to get serious about other things. For one there are taxes. While you don't have to pay taxes if you don't have any revenue you still have to file all the paperwork. So come next January I'm going to have some additional work to do thanks to this little move. You think I'm going to be happy if my project has dies and I'm doing it all for nothing?

Sign in to follow this  


Recommended Comments

You speak the truth. I aim to achieve all but the last item on your list (I haven't even started my taxes yet this year, last thing i need is make it more complicated).

At the moment I'm only following one of the bullet points to satisfaction (I keep a detailed log of what has been done, as well as things to do). As soon as my new PC is built, I have plans to make the old one a source control server -- still looking around for the best (free) option.

As far as documentation, I'm starting to add Natural Doc comments to my codebase (, as well as make use of Star UML (thanks to Emmanuel Deloget for pointing this software out).

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!