Unity Architectures

Unity is a powerful suite of tools (Project IDE, Code IDE, run-time) for game development.

I have explored many architectural approaches to game projects. Architecture is a hot topic in Unity — especially related to scaling up to larger Unity game projects.

My architectural background includes many frameworks. Highlights include heavy usage of Robotlegs (I event contributed to the project and drew the official diagram), PureMVC (I was the technical editor for the O’Reilly book on it), and PushButton (I published related articles for Adobe). I also presented and taught about the three at conferences and weekend workshops. Of these, only PushButton is a game-specific architecture, but all can be applied to games.

Overview

What are the qualities of a good gaming architecture? Solutions which are flexible, readable, D.R.Y.testableorthogonal, and “refactorable” (at an acceptable cost). I will discuss the philosophy of design in a future post, but for now, I simply list the major pros and cons of each approach.

To explore architectural options, I created many versions of the same, simple “Bowling” game. All games play identically, but each version is an isolated example of one particular architectural approach.

Details

In the following article, I review some common approaches and a few novel ones. For each, there are images, details, and an example with full source-code.

For more info, see my full article of Unity Game Architectures …