42
README.md
Normal file
42
README.md
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# AGES - Adventure Game Engine, Stupid
|
||||||
|
|
||||||
|
This is a dumb little text adventure game engine I'm working on.
|
||||||
|
|
||||||
|
You can try out the example game by running:
|
||||||
|
|
||||||
|
`python -m agame examplegame`
|
||||||
|
|
||||||
|
I believe this requires only Python 3.6, but was written in Python 3.9. Tread
|
||||||
|
with some caution.
|
||||||
|
|
||||||
|
# Concepts
|
||||||
|
|
||||||
|
**Actions** are at the heart of the engine. These display things (such as the
|
||||||
|
`PrintAction`), as well as change the state of the game (such as
|
||||||
|
`TeleportAction` and `RevealItemAction`). They are invoked by triggers,
|
||||||
|
described below.
|
||||||
|
|
||||||
|
**Triggers** are what drive the game, and turn human input into actions that are
|
||||||
|
executed. They are responsible for parsing input, and executing actions based on
|
||||||
|
input and game state. Items in a game have a mapping of the triggers that can
|
||||||
|
activate a list of actions.
|
||||||
|
|
||||||
|
**Items** are what carry the behavior of actions, and what triggers look for to
|
||||||
|
activate themselves. Items have descriptions for how they should be announced in
|
||||||
|
the room, plus the actions for appropriate actions. Triggers will also use the
|
||||||
|
list of synonyms provided by items to identify them.
|
||||||
|
|
||||||
|
**ItemInsts** are instances of items. Usually when you're dealing with items,
|
||||||
|
you're actually dealing with an `ItemInst`. An `Item`is stored in the game
|
||||||
|
database, while an `ItemInst` is used in rooms and the player's inventory.
|
||||||
|
|
||||||
|
**Rooms** hold sets of items. The player is present in only one room at a time;
|
||||||
|
this is mostly an organizational tool for locations in a game.
|
||||||
|
|
||||||
|
**Variables** are a simple string->value mapping held in the game's database.
|
||||||
|
|
||||||
|
The **database** is a single source of information for the game to use. The
|
||||||
|
database contains all items, triggers, rooms, and variables that are used in the
|
||||||
|
game. The database is *not* immutable; the rooms and variables in the database
|
||||||
|
are expected to be altered at runtime. (Maybe this should change, although I
|
||||||
|
don't feel like doing so right now.)
|
||||||
Reference in New Issue
Block a user