Document Corral

Document Corral Home

admin/

new_cambot

no-mutual-consent

Administrator

Administrator Home

New Characters

New Realms

Password Files

Document Corral

Builder Stuff

Procedures

To Do

Reality Fault

Home

Player

Character

Referee

Programmer

Administrator

Operations


Search RealityFault:

General Info

Glossary

Realms

Events

Credits

Help Files

Help Files (old)


Reality Fault

New Cambot Code

On Reality Fault there are a set of tools that allow GMs and players to record the "in character" conversations, views, and descriptions in a log file suitable for posting on the web. The current code that makes this possible is difficult to manage, debug, and is not documented in any meaningful way. Creating new "cambots" and screening rooms is problematic.

I propose that we rewrite this functionality so that it is easier to maintain, documented, and easy to work with. In addition we should be able to put most (if not all) of the functionality in a library other programs can use when they need to interact with the cambots or screening rooms.

As a first step, we should specify the kinds of things that we want the cambot programs to do.

Manipulating the Cambot

A cambot is an object that controls the recording and editing of game logs. Players and GMs should be able to:
  • determine which cambots exist
  • determine which cambots are in use
  • "summon" a specific cambot to their location
  • "return" a cambot to its home

Other functions:

  • When the last Player leaves the room or the last active connection to a Player in the Room is dropped any open log should be closed. (Should the cambot "return" to its home as well? What happens when someone picks up the cambot and it's on?)
  • As part of the general functionality of the library, programs should be able to get a list of DBREFs of:
    • existing cambots
    • existing screening rooms
    • cambots currently recording logs (active cambots)
    • rooms where there are currently active cambots

Manipulating Log Files

Once a cambot is in the room with a Player, they should be able to manipulate the settings on the cambot. They should be able to:
  • determine what logs (if any) a cambot contains
  • specify a name for a logs
  • turn broadcasting (to a screen) on or off
  • turn the "OOC filter" on or off
  • turn line numbering when the log is viewed on or off
  • turn editing of a specific log on or off (read-only)
  • turn recording of a log on or off
  • view the partial or complete contents of a log

    Editing:

  • add the description of a Room, Player, or Thing to the log
  • clear the entire contents of a log
  • delete specific lines of the log
  • change a specific line of the log
  • swap two lines of the log
  • do simple "search and replace" on a range of lines of the log

Screening Room Functions

A screening room (screen) is a room where Players can monitor a game session currently being recorded by a cambot. Spectators should be able to:
  • specify a cambot to receive broadcasts from. (This also "turns on" the screen.)
  • turn off the screen. (By setting the cambot to off?)
  • view the partial or complete contents of a log on the "current" cambot

Note that the ability to determine which cambots are in use is already specified under Manipulating the Cambot.

Other functions:

  • When the last Player leaves the Screening Room or the last active connection to a Player in the Room is dropped the screen should be turned off.

Command List

cambot

This would be a global action available throughout the server, both IC and OOC. Executed without arguments, it would cough up a usage list, perhaps something like this:

(OOC) Usage: cambot [options]
(OOC)
(OOC)    cambot #help
(OOC)       Prints the help document you are currently reading.
(OOC)
(OOC)   cambot #list
(OOC)       Prints a list of existing cambots and their status
(OOC)
(OOC)   cambot #get [name]
(OOC)       If the named cambot is not in use, the cambot is
(OOC)       moved to the Players current location
(OOC)
(OOC)   cambot #put [name]
(OOC)       Moves the named cambot to its home. Any active log
(OOC)       is closed.
(OOC)
(OOC) If a cambot is in a Player's inventory, the #get option
(OOC) will fail.
(OOC)

For some reason the Sinai cambots may not be "summoned" to one of the Screening Rooms with the callcambot command. I'm not sure why... infinite looping, perhaps? This means that you couldn't sit in a Screening Room and watch game "A" while recording the conversation in the Screening Room. Is this an acceptible solution, or is there a better answer?

cambot #list

This function would produce something very much like the current command: callcambot.


(OOC) Cambot Status:
(OOC)   cambot1: Available
(OOC)     Logs: default
(OOC)   cambot2: In Use: Guardians Soundstage
(OOC)     Logs: "default" by GuardiansGM
(OOC)         on Tue, 2001-Nov-13 10:36 AM
(OOC)   cambot3: Available
(OOC)   cambot4: Available
(OOC)   cambot5: Available
(OOC)   cambot6: Checked out to IndigoGM.

cambotname

Each cambot object would be referred to by name. Much of the functionality of the cambot system is accessed by using this object.

All of these functions would be actions (or one multiply-aliased action) on each cambotname object. Should all these functions go in the "cambot" library, or be broken out into a separate program?

Executed without arguments, it would cough up a usage list, perhaps something like this:


(OOC) Usage: cambotname [options]
(OOC)
(OOC)Settings:
(OOC)
(OOC) cambotname #broadcast [on|off]
(OOC)   Turn broadcasting on or off
(OOC)       When broadcasting is on, currently active logs
(OOC)       may be viewed in a screening room.
(OOC)
(OOC) cambotname #oocfilter [on|off]
(OOC)   Turn the "OOC filter" on or off
(OOC)
(OOC) cambotname #linenumber [on|off]
(OOC)   Turn line numbering when the log is viewed on or off
(OOC)
(OOC) cambotname #editing [on|off]
(OOC)   Turn editing of a specific log on or off (read-only)
(OOC)
(OOC)Logs:
(OOC)
(OOC) cambotname #log [list]
(OOC)   Determine what logs (if any) a cambot contains
(OOC)
(OOC) cambotname #log name oldname newname
(OOC)   Specify a name for a log
(OOC)
(OOC) cambotname #log start [logname]
(OOC)   Start recording a log
(OOC)       If the cambot is currently recording, this function
(OOC)       fails and reports and error.
(OOC)       If the logname is not specified, it defaults to a
(OOC)       serial number
(OOC)
(OOC) cambotname #log stop
(OOC)   Surn recording of a log on or off
(OOC)       If not specified, logname defaults to a
(OOC)       serial number
(OOC)
(OOC) cambotname #log view [line_start[-line_end]]
(OOC)   View the partial or complete contents of a log
(OOC)
(OOC)       cambotname #log view
(OOC)           Displays the entire log
(OOC)
(OOC)       cambotname #log view line_start
(OOC)           Displays the log from the line specified by
(OOC)           line_start through the end of the log
(OOC)
(OOC)       cambotname #log view line_start-line_end
(OOC)           Displays the log from the line specified by
(OOC)           line_start through line specified by line_end
(OOC)
(OOC) cambotname #log last [lines]
(OOC)   View a number of lines of the log, starting at the end
(OOC)
(OOC)       cambotname #log last
(OOC)           Displays the last line of the log
(OOC)
(OOC)       cambotname #log lines
(OOC)           Displays the last lines of the log
(OOC)
(OOC)Editing:
(OOC)
(OOC) cambotname
(OOC)   add the description of a Room, Player, or Thing to the log
(OOC)
(OOC) cambotname
(OOC)   clear the entire contents of a log
(OOC)
(OOC) cambotname
(OOC)   delete specific lines of the log
(OOC)
(OOC) cambotname
(OOC)   change a specific line of the log
(OOC)
(OOC) cambotname
(OOC)   swap two lines of the log
(OOC)
(OOC) cambotname
(OOC)   do simple "search and replace" on a range of lines of the log




Last modified: 2001-Nov-20 20:12:04

All material on this site is
Copyright © 2022 Reality Fault
unless specifically indicated on each document.
All Rights Reserved.
Administrated by Reality Fault Webmaster