]>
Design Interfaces Page Map TCL API TCL API Each TCL API item should include inputs, outputs, and a comment block describing any non-obvious internal issues. SQL API None yet. Internal Design Data Model Permissions Permissions Table (OO spreadsheet) Notes on an object-oriented simulated space An OpenACS simulation is a collection of interactive objects, plus a set of roles and tasks. In the first part, it is conceptually similar to a MOO (Multiple-User Dungeon, Object-Oriented). This is a technology dating to 1990, in which a database of interactive objects is presented to users through a text interface. MOOs, in turn, are based on MUDs (Multiple-User Dungeons), which are many years older. More recently, MOOs have been supplanted by multi-million dollar commercial MMORPGs (Massively Multiplayer Online Roleplaying Games), which are essentially MOOs with graphical instead of textual interfaces. Given their lineage and success, it makes sense to draw on MOO technology when designing our simulation object model. Objects Basic MOO objects Root Class Room Thing Note sittable object furniture Event-dispatching object Containing Object Player Builder programmer wizard Guest Exit Container Openable Container Object Attributes (From the LambdaMOO Programmer's Manual There are three fundamental attributes to every object: 1. A flag (either true or false) specifying whether or not the object represents a player, 2. The object that is its parent, and 3. A list of the objects that are its children; that is, those objects for which this object is their parent. "Every object has eight built-in properties whose values are constrained to be of particular types. " name a string, the usual name for this object owner an object, the player who controls access to it location an object, where the object is in virtual reality contents a list of objects, the inverse of `location' programmer a bit, does the object have programmer rights? wizard a bit, does the object have wizard rights? r a bit, is the object publicly readable? w a bit, is the object publicly writable? f a bit, is the object fertile? Verbs Minimal MOO verbs: put take get drop Lifecycle of a Simulation Template Not ready (<emphasis role="bold">dev_template</emphasis>) ready_p not true. Only shows up in SimBuild lists. Template Ready (<emphasis role="bold">ready_template</emphasis>) Ready_p is true. Shows up in list of available templates in SimBuild. Simulation in Development (<emphasis role="bold">dev_sim</emphasis>) Owned by a single party. Shows up only in their Siminst page. between zero and all of the roles are mapped to characters. Between zero and all of the tasks are developed (description added, attachment slots linked to sim objects). Simulation in Casting (<emphasis role="bold">casting_sim</emphasis>) Several paths depending on enrollment and casting type. Casting Paths Closed Enrollment/Automatic Casting Open Enrollment/Automatic Casting Open Enrollment/Group Casting Open Enrollment/Open Casting set start/end date set start/end date, enrollment dates For each role, choose which user groups can be cast Select user group(s) to enroll optionally restrict enrollment to selected groups. optionally restrict enrollment to selected groups. Set expected number of users. Users can go enroll themselves in simulations Automatic casting creates cases and assigns users to groups in roles in cases Users see a list of groups, and choose which group to join. After enrollment period is over, automatic casting creates cases and assigns groups to roles in cases Users see a list of cases, roles in each case, and users in groups for each role. Users can choose any available slot. Admin can add new, empty cases. Any empty slots remaining are assigned to the professor
Live Simulation (<emphasis role="bold">live_sim</emphasis>) start date < now < end date. Shows up in list of sims in Simplay for admin. Finished Simulation (<emphasis role="bold">live_sim</emphasis>) now > end date. Shows up in special list in simplay.