Hey all! It’s been a very exciting month for us, so let’s get to it. Here’s what Duet looked like last update:
And here’s what it looks like now:
Now you may be saying, “That looks almost exactly the same.” Well, let’s back up a moment.
Where we were
Auditorium Duet was originally built on a prototyping codebase. The idea is that you are able to very quickly see what works and doesn’t; in practice the code got so jumbled so quickly that it became a nightmare to maintain. Each new feature we want to add turns into a week of work, with no way to easily keep experiments from breaking things elsewhere in the game.
We’ve known for a long time that our codebase was unmanageable. But the solution was a complete refactor — essentially, we would have to start from scratch, rewrite the entire engine, and slowly bring back features into this more stable base. Additionally, switching from Unity’s Asset Server to a more modern version control system like Git would give us more flexibility to experiment without bringing the house down.
At every step along the way, we have looked at a feature and said, “It will take less time to implement this feature than to rearchitect the entire game.” And while that has been true each time, the combined effect is that we simply haven’t been able to be as creative and productive as we need to be to deliver.
So finally, we took a step outside of the project. We tried a few new things with our game jam game, “Monster Want Burger!”, and quickly realized how much power we would get by refactoring. And this past month, we did just that.
What does it mean to refactor? It means we started from scratch — an empty project — and slowly, thoughtfully, rebuilt every single subsystem in the game from the ground up. We threw away what didn’t work, polished what did, and structured everything in a way that not only makes sense, but works with far less overhead and cruft.
So where does that leave us? We have a pristine new codebase that accomplishes everything the previous one did in *one-third* the code:
It’s easily understandable; it’s easily maintainable. It’s actually a joy to work with. And switching to Git has given us the freedom to experiment and add new features, so that Duet can be so much more than just a prettier Auditorium.
Still, it will be prettier. Upgrading to Unity 5 has given us access to newer rendering pipelines and features we would have had to write on our own otherwise.
We can say with certainty: we have never been more excited to work on Duet than we are today.
So what does all this mean?
Duet is going to be wonderful. We’re at a place where our original ideas are coming to light. Controller support is more stable than its ever been, and thanks to the refactor we'll have consistent performance across platforms.
The game is a pleasure to work on and development is happening at a rapid pace. It’s an exciting time and we’re very happy to be sharing it with you!
Will and Dain
P.S. So our game jam game, “Monster Want Burger!”? For a lark, we submitted it to the App Store a few months ago. Now, four days of off-hours work have turned into a new product. It goes live tomorrow for $0.99, and it’s kid-tested, family-approved fun. Anything you can do to spread the word — tweeting, sharing, posting, etc. — would be greatly appreciated.
P.P.S. Thank you for sticking with us and thank you so much for your support — we’ll talk to you soon!
Hello Gals and Pals!
Happy Holidays and Happy New Years to all our friends out there! This month, we'd like to show you a little bit of what's happening behind the scenes with our tools. Over the course of this project, Unity has pushed quite a few cool new updates that have prompted us to rework a lot of how we do things. One of those things is the new UI system.
In the past few years, doing any kind of font rendering in Unity has been absolute hell. With the new Unity UI tools Font rendering can now be pixel-perfect out-of-the-box without a lot of hassle. We've lost 100's of hours just tweaking fonts over these past few years. This is just one of many problems that have been improved for us since the UI change.
For about 3 projects now, we've have a pretty amazing thing called Settings. Settings allows a designer to tweak variables throughout an entire project in just one window. The designer doesn't need to know how code works or where to find a particular variable. All they need to do is sit there and tweak until fun happens. This is very powerful and helps a lot when your team is larger than 1 person. We've expanded on this concept of settings with a ton of different tools. One of those tools is our Application Flow package.
Our Application Flow package can handle the entire flow for any project. This is important when you want any kind of dynamic menu or just see what's happening under the hood. We use the Application Flow package to change things on the fly when people are testing and a whole host of other things.
Here's a screenshot of what that looks like from the backend. This is the actual Application Flow for Auditorium Duet.
This whole system is drag-n-drop and allows us to create a flow, complete with menus, in just a few minutes. We can test how the menus are going to feel almost immediately. We know this sounds a little ridiculous, but we've spent wayyyyy too much time over the years just handling special cases in menus. We want to make less menu and more game.
We would really like to start opening our tools to the public. So, if you're a Unity Dev and would like to try this out send us an email at team [at] cipherprime [dot] com.
Will and Dain