views:

52

answers:

2

Architecture questions regarding game design using XNA

  1. Is game architecture game type dependent?
  2. Which are the most popular game architectures?

Part of my background is in application development, where client and server are divided in different architectural layers. A typical enterprise application has UI Layer, Business Layer, Data access layers. My question is, dose for example the concept of layers exist in game development? A multi player game may have architectural consideration regarding network communications. Common games today are Clients. What communication platform is used? How are Server side built? Does any common typical architecture exist?

+2  A: 

1) Game Architecture is to some degree game type dependent. In some cases it's very dependent on game type. A first person shooter will make heavy use of algorithms like K-d trees or BSP trees, portals perhaps. A space game will likely not require these kinds of algorithms. Open world sandbox games like Saints Row or GTA are required to be designed around streaming content engines. As a consequence the architecture required for game objects to interact with these algorithms will be required to be different.

2) It's a difficult question to answer. For a start there isn't a 100% clear catalog of architectures, secondly I'm not really sure in this context what you mean by architecture. I'll try, Scene Graphs for managing visual objects are pretty common. A lot of indie game shops are running a C or C++ core engine with much of the gameplay and level setup done in scripting languages written in LUA. Architecture can describe a variety of qualities.

I could elaborate more, but some feedback from you will guide me in the direction you're interested in.

Montdidier
Thank you for your answer! I have updated the question.Since as you pointed the architecture is based on game type this question is then to general. But does any common typical architecture exist?
Amir Rezaei
There are certainly flavours of architecture which you see again and again. You see the same kinds of problems solved in similar ways. Subsystems such as resource management, animation systems, rendering systems, networking and AI are often implemented with some kind of known or established approach, so they start to look the same at that level. Sometimes there is just a natural way to approach a problem and thus these subsystem may appear to be implemented in a similar way.
Montdidier
I don't think many games developers would break down a game architecture in the same way you would a business application. For example the MVC (Model-View-Controller) design pattern, or 3 tier model probably isn't applied liberally or as explicitly (although I'm sure parallels exist). I suppose, very broadly, games are designed around their resource management as it's often one of the first and fundamental problems to solve. Also certain important algorithms used in the implementation of a game may well have an huge impact on it's architecture.
Montdidier
I would say games are achitectured more often into subsystems rather than layers. Games servers are often built from scratch, sometimes on raw sockets, othertimes middleware is used. I'd say more often than not based on UDP. Network server architecture is getting out of my area of experience, so I shall not comment further on that.
Montdidier
A: 

What do you mean by architecture do you mean things like the languages used, or things like engine design (i.e. scene graphs, Depth of feild calcs ect)

TAkinremi
Please check updated question.
Amir Rezaei
Well in response I would stay that at a basic level games follow the 3 tier model. That being presentaion, logic and data access. You'd find that if you have a lot of patterns in your "toolbox" these types of things work their way out themselves. As with anything though theres not a right or wrong way to do things. I hope this answers.
TAkinremi