The Adventure Game Machine stories are room-based, although a room can be a field, the top of a tower, a river bed, etc., and not just an actual room.
Here are the data needed for a specific room (note – the name shown is what will be used in the database as the field name):
roomid – This is an autoincremented integer.
name – Mainly for the authoring tool, this is what you call the room. Examples: Kitchen Pantry, Left Side of Grand Hallway
sdesc – The short description is shown at the top of the playing window, often this will be the same as the name field.
ldesc – The long description is shown inside the text area of the player.
lit – A boolean value that shows whether the room is naturally lit or not. If not, the player needs to have some sort of light source with them.
north, south, east, west, up, down – The roomid of the location in that direction. So each room “knows” where the possible exits lead. A blank value in a field means there is no exit in that direction.
entryevent – The ID of an event record that triggers when the player enters this room.
exitevent – The ID of an event record that triggers when the user exits this room.
audio – The ID of an audio record (more about that later). If this room was an outdoors location you could have bird sounds, wind, etc., or pots and pans for a kitchen.
picture – The ID of a picture record (more about that later). If you want more than text you can include a picture of the room.
That should be enough to get going. It’s quite possible I forgot something major, or will come up with a need for another parameter, but we’ll deal with that if/when it comes up.
[Edit: March 6, 2012]
Here’s the SQL needed to create the room table in SQLite:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
CREATE TABLE rooms (roomid INTEGER AUTO_INCREMENT, name VARCHAR(50), sdesc VARCHAR(255), ldesc TEXT, lit INTEGER DEFAULT 1, north INTEGER DEFAULT 0, south INTEGER DEFAULT 0, east INTEGER DEFAULT 0, west INTEGER DEFAULT 0, up INTEGER DEFAULT 0, down INTEGER DEFAULT 0, preenter INTEGER DEFAULT 0, postenter INTEGER DEFAULT 0, preexit INTEGER DEFAULT 0, postexit INTEGER DEFAULT 0, audio INTEGER DEFAULT 0, visual INTEGER DEFAULT 0, UNIQUE (roomid)) |