Game Development Reference
Limitations. The following are some of the limitations:
The creation of duplicate or redundant data within the aspects and the
aggregate structure used to store data in the core can significantly reduce
The asynchronous nature of aspects can be dicult for programmers to
work with as cause and effect are rarely directly adjacent in the code.
Trying to maintain complete autonomy between aspects across multiple
threads of execution requires additional mechanisms to coordinate the order
There are as many ways to write an engine as there are programmers. The aspect-
based architecture is as much a concession to the individuality of developers and
the needs of their projects as it is an enginedesigninitself. Atthesametime,
while the strict rules regarding encapsulation of aspects and accessing shared
data inevitably limit optimization, they help to structure and inform the design
of functionality, making it quicker to implement what is required.
The intention is to provide developers with a simple, easy-to-follow framework
that helps accelerate engine development but leaves them with the freedom to
explore structures and techniques where desired.
The use of this engine architecture has been observed across a wide range of
projects, and it appears, on the whole, to meet these goals. There will always
be situations that stretch the abilities of an engine, but none so far have proved
insurmountable within the limits of this design.
Thanks to everyone who worked at Cohort Studios and in particular those whose
work had an impact on Praetorian and its design. Thanks to Andrew Collinson
who worked on Praetorian from the very beginning and Bruce McNeish for having
the foresight to let us start building it, despite being straight out of university.
Also, thanks to Gordon Bell for showing a lot of faith when I told him things
“should just work” and to Peter Walsh for lending his many years of experience
and a truly comprehensive range of anecdotes. Thanks to Shaun Simpson for
helping to push the engine design so much further in so many ways and to Dave
Sowerby for the scripting aspect and his tireless work in actually making a game,
which is after all the reason behind all this.