- Home /
What is the internal architecture of Unity Engine?
We are a group of students enrolling in a software architecture design course offered by our university. Our project is to build a game upon Unity Engine and we are being asked to design the architecture of our game. However, we are all new to Unity and all we know now is that we create GameObjects and we provide assets such as textures, audios and stuff to Unity, attach our customised scripts to the GameObjects and the Unity engine handles everything like rendering, physics, networking... in this case, our app architecture is nothing but a black box engine getting inputs from assets and scripts and outputting rendered scenes, networking packets, etc... which results in that our game has completely no so-called a software architecture design. Our professor wants us to study what the components are inside Unity and how they collaborate (like there might be a scene render, a, maybe, physics manager), but we can't find any reliable source online actually. We would greatly appreciate it if anyone can help.
Answer by tanoshimi · Mar 27, 2015 at 01:59 PM
Like most commercial software, Unity is closed source, and you won't find design documents or detailed descriptions of its internal architecture anywhere on the internet - that is their commercial IP. There are plenty of known facts though - it uses PhysX for 3D physics, and Box2D for 2D physics, Beast for lightmapping (Unity 4), and Enlighten in Unity 5, for example, but how they interface internally is for Unity to know. As a developer, you only need to know how methods are exposed via the API, and that is well-documented.
It seems very odd that your professor would set you a task that required you to understand the internal architecture of a commercial product - are you sure you've understood the task correctly?