Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When using the component-based paradigm in game development with engines like Unity, is component-based design an architectural pattern, or a design pattern?

Can I even say that component-based design is my "main" architectural pattern for my game?

I see architectural patterns as being more high-level than design pattern. The component-based design in game development's context (like with Unity engine) seems to fit as an architectural pattern to me. However, on some sites, I read that component-based design is a behavioural pattern, much like other behavioural design patterns, and not so much like an architectural pattern like MVC.

share|improve this question
If it's a way of arranging data and logic, but not enforcing a particular behaviour (i.e. not telling you what the components should do or what strategies should be used to achieve the goal), then it's gotta be an architectural pattern. – teodron Nov 18 '12 at 10:07
Could you provide sources for "some sites"? – Eric Nov 18 '12 at 13:59
up vote 1 down vote accepted

Here's a great question (and answers) on the differences between Architectural Patterns and Design Patterns:

According to this (and filtered through my understanding), the component based way of Unity is closer to a design pattern than an architectural pattern.

I believe that because as you say (and I think so too) architectural patterns are more high level than design patterns (i.e. architectural patterns are about the whole system, as viewed from a high level, while design patterns refer to more granular components). As such the architectural level of Unity deals with the fact that you have a game loop, and how that game loop is designed and acts on everything you have in there (entities, physics, collisions, etc). The design level of unity deals with a lower level and more specific part, namely how each of the elements which are just listed in the architectural design is more actually...well.. designed, entities included.

So I guess we can talk about Unity's architecture as being one "specific to"/"good for" a game engine (game loop and the classification of the elements it interacts with in various categories like game objects, physics, collisions, etc), and then we can talk about the design pattern for each of these elements (a game object supports this and that component, it can have behaviors attached to it, etc. In turn the design pattern for the behaviors is "each is an object of a certain class in a certain OO language).

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.