Requirements To run YAMA you need either 1) BSD Unix 2) ATT SYSV.2 Unix (in theory SysIII and pre SYSV.2 should work) 3) SunOS 4) Xenix 386 5) An IBM PC YAMA needs about 2-3Mb of disk space minimum for sensible operation. When running it takes about 500K of memory. Introduction YAMA is a multi-user game writing system designed for speed and power rather than to explore the latest 'object oriented' game writing craze. It provides the speed by using a simple precompiled interpreter language based upon tables rather than any complex syntactic and lexical structures. The YAMA World Model YAMA uses a model based upon three simple item types: Objects, Rooms, and Players, these are used to build up a game world controlled by the game tables. For speed reasons some of the game system is still controlled very much by hard-coded logic. These being aspects of the model like darkness, invisibility sizes and weight. The world model, combined with a set of variables is used by the tables as a database to query and modify. The table language is simple, but powerful and includes simple loop constructs (a GOTO and GOSUB!), as well as actions, and conditions. Using this the rules for the game can be phrased and defined. An example section from a table might look like this ;examining the bed examine $ANY $ANY EQ IFIRST BIGBED MSGCR {A really nice soft bed.} DONE ;general cases of examine, for nothing specials examine $ANY $ANY EQ IFIRST NOITEM MSGCR {You see nothing special.} DONE examine $ANY $ANY MSG {You see nothing special about } PNAME !IFIRST MSGCR {.} DONE Although very fast and powerful, the system has been found to have a few problems. It is very easy for code to become messy and hard to handle, as objects etc are embedded in the general cases. Communications And Portability Currently YAMA runs on both BSD, and SYSV unix systems, as well as Xenix and DOS. It is designed so that the communications, which are very non-portable are isolated from the main game system, which expects its own 'virtual' communications interface. The telnet, shared memory, and RMOL chat drivers then sit upon this interface. Currently only one of the three drivers may be running in the system. It is hoped to extend the system so that RMOL and telnet may be running at once, and to extend telnet to allow communication with more users than the maximum number of file descriptors permits, by using seperate programs (possibly remotely even) to combine user data. Hopefully an AMIGA port will follow soon, and possibly ports for other operating systems, if people are willing to do them.