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

I've heard that UML is a great modelling language for software design. However, for software, such as game, that will certainly encounter major changes during the development, I doubt that UML will work effectively.

What are the common ways or models that the game programmers used? and is there any recommended tools for game designing process?

share|improve this question
This isn't game-design, but I can't think what to tag it as. – The Communist Duck Jun 11 '11 at 10:32
I would say more architecture, even if it doesn't exactly fit the bill. Or create a new 'software-design' tag :p – Jonathan Connell Jun 14 '11 at 8:06
@3nixios It's not architecture, and I don't think software-design is a needed tag. (Since it's pretty much architecture) – The Communist Duck Jun 14 '11 at 9:09
Well it definately isn't game-design... – Jonathan Connell Jun 14 '11 at 9:18

My most recommended tools are Trial and Error (Iterative Development) and Communication/Documantation, and the experience coming out of it.

Whether you accomplish that by using good old pen and paper or sophisticated collaborative software tools doesn't matter much.

share|improve this answer

Real software (inc. games) changes a lot during development. UML is a very practical way to visualize and think of your design. Just use a tool that saves your UML in a textual format and save your UML, all your documentation, and your game code in a version control system. That way you can see the changes that happened to your design.

I would also like to mention rapid prototyping, as a development method to test if your design works.

share|improve this answer

As long as you are not afraid to modify your UML diagrams and make new ones, UML will be a very powerful tool for designing and engineering any piece of software regardless of the frequency at which it changes.

Iterative Development was mentionned in another answer and makes heavy use of UML diagrams to express the software small parts at a time. You basically give your team an objective for a small (2-3 weeks) iteration, make a bunch of UML to conceptualize the goals and model of your iteration then code after that. Iterative Development strongly encourages you to modify existing artifacts such as UML diagrams.

The thing to keep in mind here is that UML is not limiting because your software changes a lot during development, but it might become limiting if you make one batch of diagrams and never change them or make new ones to better reflect your ever-changing piece of software.

share|improve this answer

Rapid Prototyping is a great way to develop new ideas and test which ones are actually fun. It's often used in the early stages of design and is relatively inexpensive compared to implementing a large part of a game and realizing it's no good.

Many smaller teams also use Agile Development Methods such as SCRUM

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.