Aztez – A Game of Conquest and Brutality
17Sep/1310

Behind the Scenes: Aztez Development Environment

Who The?!

Hey everyone!  I'm Matthew, the technical half of Team Colorblind.  Most of my posts on the blog will be technical things--behind the scenes work on the game, including implementation details on how we're accomplishing Aztez's beat-em-up gameplay in Unity.  To start things off, I thought I'd do an overview of our entire setup:

The Office

Ben and I worked together when I ran Flashbang Studios (most of our output is still online at Blurst.com, if you're curious).  There are a lot of virtual indie teams out there--and more power to them for making it work!--but Ben and I work best in person.  We've tried the coffee shop thing, the work-from-home thing, and co-working spaces.  For us, paying to have our own private space is absolutely worth it.  Rent is pretty cheap in Phoenix; we pay under $400 for a private office with power/Internet included, a shared conference room, and a shared break room with fridge.  Our office neighbors are mostly 1-to-2 person shops like accountants, lawyers, etc.

We're pretty well tucked away from the world in here!  Security is a nice side benefit, too:  The outer doors are passcoded, and we hold the keys to our inner door.

We're actually in the same building that Flashbang used to be in, which is awesome (shout outs to Solo Cafe)!

IMGP9847

office

 

Matthew's Setup

I run OS X on a recent-ish 27" iMac, with a virtualized Windows 7 install for Visual Studio 2012 + ReSharper.  The standing desk is something I've been trying out for the last few months.  I like it a lot,  primarily because it feels so different from my home setup.

IMGP9854

One of the huge benefits of an office environment is the mental association of being in a separate space.  We're careful to avoid the distractions of the Internet in the office.  Simply put, it's a place where shit gets done.  I was very careful to protect and cultivate this sort of work environment at Flashbang  (which was a 6+ person environment, which made endless chatting easy to do). Protecting the office for work makes it easy to come in and automatically start work on the game.  The standing desk really helps my various computer environments feel more distinct from each other.

Ben's Setup

Ben runs Windows 7 on a mid-range laptop, which he hauls in and out of the office daily.  Most of the other hardware stays here in the office (extra monitor, speakers, controller, etc).  In addition to the obvious Mac/Windows platform differences, I also play Aztez with only the keyboard, to ensure the keyboard controls stay at least somewhat sane throughout development.

By the way, our "whiteboards" are $14, 8' x 8' showerboards cut in half.  Just head to your hardware store and ask for "showerboard" or "tileboard".

IMGP9859

Office Server

Our local server is a Mac Mini running OS X.  Minis are great because they tuck away nicely with their low power draw/heat output.  It's super easy to upgrade memory on today's Mac Mini design, too (although significantly more painful to add a second hard drive, which we did for SSD+HD setup).

A few-years-old Mini sits next to our server, booted in Target Disk mode.  The server clones itself to this second machine nightly.  It's literally one reboot away from replacing the primary server in case of catastrophic hardware failure.

IMGP9864

Our  source control system is Unity's own Asset Server, which we've been using since it was first introduced.  It has a mixed reputation, but for our needs it's pretty close to perfect.  We have custom tooling on top of the Asset Server to provide things like real-time IM notifications of check-ins and better browsing.  The Asset Server database for Aztez is backed up nightly into our Dropbox.

The server also maintains a virtualized Windows 7 install, which will be used more heavily for build automation down the road.

Project Management and Ambient Information Display

We have a cheap TV mounted above our wall-of-whiteboards to show ongoing stats.  It shows a mix of web analytics, project analytics, and various dates and deadlines.  The office server powers this display.  It usually shows our Geckoboard (a mix of off-the-shelf widgets and some custom scripts).  Note that Geckoboard is retarded expensive now; we have a grandfathered account with their early pricing.

Screenshot 2013-09-04 14.01.19

For task tracking, we use Pivotal Tracker.  It works super well for us, primarily because Aztez development stays fairly linear with just two people on the project.  If you have a larger team, with multiple ongoing features, or like to organize more loosely, you might want to see if Trello is a better fit.

Off-Site Server

For Aztez, the public server isn't doing anything much yet--basically just serves the website and this blog.  In the next few weeks we'll have a build system set up to push regular builds to friends and family for testing, plus journalist types for early access.  Flashbang stills run a dedicated server, which hosts quite a few indie things (TIGSource, Spelunky, IGF backend, etc).  I keep a pretty close eye on the server performance:

stats

The entire Aztez  account from the off-site server is backed up into our Dropbox every night.  Daily backups, people!  Our stat board even includes a backup status widget--green is newer than 24 hours, and I take immediate action if something breaks in our setup.  Backups aren't worth a lot if they silently break and nobody notices!

Questions, Curiosities?

Feel free to ask any questions in the comments!  And I'm totally open to suggestions for future behind-the-scenes posts, too.  I'll definitely be talking about Aztez-specific Unity implementations, but I'm more than happy to focus on topics if people want to know more about something in particular...

 

  • Adam Mechtley

    Question 1: I’m using a mini as my server. After upgrading to Mountain Lion, I had to disable energy saving because the machine would no longer wake from sleep when accessing svn, asset server, git, etc. Have you had any issues like this?

    • Matthew__W

      Huh, dunno! I actually don’t sleep any of my minis (either at home or at the new Aztez office). They idle pretty low, at 11W, so even with a little bit of work they aren’t pulling that much juice. I have them do a fair amount of regular work, too, so even if they did sleep it wouldn’t be for very long…

  • Randall Coston

    Hi Matthew, nice post! I love seeing developer set-ups and yours seems very efficient. Since Geckoboard is now a bit expensive, what might you use if you were setting up visualization for your analytics today?

    • Matthew__W

      Hey Randall! Good to see you around.

      I’d probably:

      – Roll my own, with the aid of some framework like Dashing from Shopify (there are some others too): http://shopify.github.io/dashing/

      – Use something simpler, like Status Board from Panic ($10 iPad app intended for TV out):
      http://panic.com/statusboard/

      • Randall Coston

        Great, thanks for the suggestions. Panic are located here in Portland where I ended up, but I didn’t think of Status Board at all. I was looking at the big “solutions”. For a small studio tracking a single game, keeping it simple makes a lot of sense.

  • Secret Library

    That’s intense! It looks like the room in Minority Report where they made videogames.

  • Joseph Kariuki

    Hey,quick question. My team and I work from home. But we usually meet on the weekends to discuss an ongoing project and also set what is needed to be done in the coming week. We are hooing to get an office soon but for now we just have to make due with working at home. Is there any advice you can give to help improve our efficiency? Thanks in advance!

    • Matthew__W

      Working from home is tricky! There was a good ~2 year gap between the Flashbang office and the Aztez office. Couple random tips:

      – Separate physical spaces work best. My most productive times at home were when I set up an extra iMac as my work machine. I didn’t let myself fuck around on it (if I wanted to check on a Facebook thread or whatever I literally stood up and walked back to my main desk).

      – If you have other people living with you, make sure they know when your work hours are, so they don’t wander into your office chatting about the latest episode of your favorite TV show.

      – Stream yourself working every now and then. Knowing that people are watching will keep you in line.

      – Hit the ground running first thing in the morning. I get a lot more done if I started the day at a good pace (versus realizing it’s already 2pm and I haven’t done anything yet).

      Hope these help!

      • Joseph Kariuki

        They sure will. Thanks.

  • Oscar Ramirez

    Hello Matthew,

    There is any book or website that you recommend about the best practices while programming with unity?

    thanks in advance for your help.