RSS
 

Big Boy’s Toys: Making the Unity3d build server used for Defiant’s Rocket Bunnies

23 Nov

This is the first in a series of posts about setting up “big studio” style tools & workflows to take the pain out of indie development. This first post starts with setting up a build server as I recently did this and it’s still fresh in my mind.

A “build server” you say?

Feel free to skip this section if you know what a build server is and why they’re awesome… if not, follow me!

Unity is great at doing many things, but if you’re in an indie startup… Licences per seat of the iPhone/android kit are too expensive for everyone to have one. This usually leads to a bad scenario where one person has an iPhone and/or android kit and is responsible for all QA and builds for that platform… which doesn’t always go that great.

But there’s an almost silver bullet solution to this… a continuous integration build server.

A continuous integration build server watches a source control server and automatically makes builds when a change is detected. This instantly provides iPhone/android builds to members on the team who don’t have that software kit. An artist can update an asset, check it in and have it in the next build without even opening unity (not very good practice mind you).

This sounds like a lot of work… I can do this by hand can’t I?

Why go to all this difficulty? Unless you’ve been in a big studio where a buildserver was essential to survival, you might not see the benefit of timely automatic builds. The role of the build server is twofold:

Firstly it’s there to build, and make sure that everyone has fresh builds that they can download and use right away. This means that you can have one copy of unity iPhone making builds for a team of people who have testing devices but no iPhone basic or pro license on their workstation!

Secondly, it’s the first line of QA on anything that’s checked in. If the build server “barks” an error, everyone on the team hears about it automatically and the head revision can be flagged as “bad”. You can even run a tray icon on your workstations that changes colour to say if the current build is safe or not!

Now sure, you could have someone doing this by hand… but that would be that person’s job full time. And this can run 24/7 where human build processes need sleep, go out for lunch, call in sick, etc.

Okay, let’s build this monster…

 
 

Leave a Reply

 

 
  1. Daniel Stephens

    January 24, 2011 at 1:05 pm

    Thanks for sharing. I have been thinking about setting a build server up for my own needs. I never really knew much about it beyond “It autobuilds.”

     
  2. Tom L

    April 10, 2011 at 10:17 pm

    I had good luck setting up a CI server with Jenkins(used to be Hudson). With Unity it’s actually fairly easy to set up the auto build chain. What is not so easy, however, is to do automatic testing. There is SharpUnit of course, but the project seems pretty much abandoned. My best guess is to convert the XML-reporter that comes with the SharpUnit project to produce output that looks like NUnit or even JUnit stuff. Contact me if you’d like to further this discussion.

    greetings,
    Tom

     
 
Performance Optimization WordPress Plugins by W3 EDGE