Difference between revisions of "System Architecture, the strategy to complex implementations"

From RogueBasin
Jump to navigation Jump to search
Line 26: Line 26:
== No Architecture ==
== No Architecture ==
This what you do if you go to a conference and implement the system architecture ideas you hear about. The problem is that many of these conferences discuss low level system architecture that you don't need to care about when making a Rogue game using languages like Python, (Javascript and other) solve those issues. This is worse than gunshot architecture as you believe that you have an architecture while in reality you don't have an architecture that is sufficient to make a rogue game.
This what you do if you go to a conference and implement the system architecture ideas you hear about. The problem is that many of these conferences discuss low level system architecture that you don't need to care about when making a Rogue game using languages like Python, (Javascript and other) solve those issues. This is worse than gunshot architecture as you believe that you have an architecture while in reality you don't have an architecture that is sufficient to make a rogue game.
It is a problem more found with professional coders and less with amateurs (probably). Avoid getting lost in coding details when thinking system architecture.   
It is a problem with professional coders with bad habits and less with amateurs (probably). Avoid getting lost in coding details when thinking system architecture.   




Line 32: Line 32:
----
----
Below are some more unusual architecture that could be used but are not recommended unless you are making a very unique rogue game.
Below are some more unusual architecture that could be used but are not recommended unless you are making a very unique rogue game.


== Vector Room ==
== Vector Room ==

Revision as of 22:30, 3 December 2018

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? Will the player die?, will the Lich Kind die? or will the Lich King suddenly become a King and the Hero will become the undead Lich Hero with negative health? This is what system architecture solves or is trying to solve, a strategy to deal with complexity. If you don't have any system architecture you will end up building the next NetHack that has required 20+ year of development to fix every possible odd quirky use of every item and spell.

Gunshot Coding

Code by trial and error (or slugger coding). This means coding without a plan which is good if you don't need to create a story. you write some code test it bug fix, write a bit more and so on. 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.


Woke Architecture

There is a modern saying go woke go broke. Don't use politics as your system architecture, your game will fail badly and nothing will be created and the horror you make will be avoided by all human beings. The only game which was 'woke' and actually successful is the board game monopoly that was created to critique capitalism. Don't expect to make the next monopoly unless you actually do some research of actual social subject. If you do the research there is still nothing that ensures that the research will define a well behaving system that can be used to create a rogue game. Avoid this architecture unless you have some real reason to make a "woke" game.


Object Oriented Architecture

Not to be confused with Object oriented programing or what is called object oriented system architecture. Object architecture architecture is only sometimes object oriented architecture, things are a bit confused in the professional world of computing. In this context an Object Oriented Architecture is copying your Live Action Role-Playing Game, or copying reality for short. The point is that if you copy your LARP or RPG sessions you will, with some computing skills, have ability to implement exactly that LARP or RPG session.


No Architecture

This what you do if you go to a conference and implement the system architecture ideas you hear about. The problem is that many of these conferences discuss low level system architecture that you don't need to care about when making a Rogue game using languages like Python, (Javascript and other) solve those issues. This is worse than gunshot architecture as you believe that you have an architecture while in reality you don't have an architecture that is sufficient to make a rogue game. It is a problem with professional coders with bad habits and less with amateurs (probably). Avoid getting lost in coding details when thinking system architecture.




Below are some more unusual architecture that could be used but are not recommended unless you are making a very unique rogue game.

Vector Room

There was a game called Harpoon using vector maps with variable clock times. This game was very realistic warfare simulator. While no roguelites exist using vector based maps with variable clock times there certainly is a few rogulites focusing on warfare that could benefit from this architecture.


Code Generation

In the future people don't code machines, machines code humans. At the very least there is research in generating code by automatic means and this could allow generating your roguelite using an advanced code tool. This one is more for researchers than game makers.

Visual Novel

You create a visual novel and then add roguelike elements to your visual novel. There are a number of roguelikes of this genre but as a system architecture it is incomplete as it cannot describe how to create the roguelike parts. Probably a game like Omega Labyrinth Z should be included in this category. It is recommended to include visual novel elements into your game instead of the other way around.