System Architecture, the strategy to complex implementations

From RogueBasin
Revision as of 21:54, 3 December 2018 by Youngblood (talk | contribs)
Jump to navigation Jump to search

Imagine you are making a game and you have an item that allows you to switch health with a monster. On level 100 you encounter the Lich King with negative health that takes damage from healing potion. What exactly is supposed to happen when you switch health with the Lich King? This is what system architecture solves or is trying to solve, a strategy to deal with complexity.

Gunshot Coding

Code by trial and error. This means coding without a plan which is good if you don't need to create a story. The game can become quite strange when coding by trial and error. Doom RL and the original Rogue are designed like this. It is recommended to avoid this style of coding if the story in the game is important as it is very difficult to predict play style and how the actual world will become.


2D Rooms

In this architecture the game consist of a number of rooms with some variables that connect each room. The binding of Isaac uses this architecture as does Elona. The architecture is heavily used by JRPGS and is probably the model that is best by test. The problem and benefit with this architecture is that interaction between rooms are limited, random generation of contents can be an issue but creation of overehad maps, special physics or combat screens is easy to create. This type of architecture is very good for creating interesting stories.


Cellular Automata

The world consists of small cells (or atoms) and the world is described through the interaction of these cells. Very much contents can be created with very little effort using this architecture. Spelunky is an example of this architecture, tough the original game of this architecture is boulder dash for 8 bit machines. The game architecture allows easy modeling of falling stones, traps, rolling boulder, flying projectiles and other physical game elements.