Sunday, February 4, 2007

Respharing game engines with design patterns - Prelude

Back in the days of naitivity and plenty of freetime I wrote an article on how to build a framework for a game engine based on well known design patterns. The article centers around a few basic design patterns and some very fundamental C++ code. Some years have gone by (read: 6) and many-many lessons learned has made me re-evaluate the whole concept. I will in the following update the basic concepts and modernise it all by showing code samples in C#.

In order to read the articles it is advised to have basic knowledge of C#, design patterns and general theoretical knowledge of abstract data types.

Design patterns are well known patterns that may help the programmer in the initial phase of a
programming project. They can be used as a guideline on how to fragment and divide the functions of a program into smaller fragments. I will discuss my point of view on how to
structure a game engine, using available design patterns. My knowledge mainly comes from
personal experiences and from my study at the computer science department of Aarhus University. There are many different design patterns and they all have different purposes and useability.

Looking at a game engine there are a multitude of aspects to take in consideration. A major factor is performance and efficiency of the code, another important factor is maintainability and knowledge sharing. The latter is especially important when working in a team. My approach is centered around a handful of essential design patterns that all shine at whatever abstraction level they are reflected at.

No comments: