From: Nick Faiz Date: 2005-09-15T17:32:00+09:00 Subject: Re: [ANN] World's 1st Hamster-Powered Mud Server! (in Ruby) This has to be the best software release announcement email I've ever read! Good stuff! :) Nick Jon A. Lambert wrote: > [ANN] World's 1st Hamster-Powered Mud Server! (in Ruby) > > *** TeensyMud 2.3.0 released - Smoking HOT T&A action! *** > > TeensyMud now implements a pure event model based on TITS (Tyche's > Immediate Temporality System). If you haven't heard me rave about TITS in > the past, well now you can get your hands on a real TITS > implementation. Don't be fooled by other so-called event systems that > presume that events can be scheduled in the future. Get with TITS, it's > easy to grasp. > TITS is based on the following principles: > 1) Events occur immediately and in temporal order (the limitations of > software notwithstanding) 2) Events are atomic > 3) Events are guaranteed to complete > > Instead of communicating directly with another game object, a NIPPLE (or > Non-Interruptable Prettily Packaged Light Event) is pushed on TITS. In > the code I call them Events, as Nipple is harder for me to type for > some reason. > TITS is just the front end. ASS (or A Simple event handling System) is > the back end. Every first class game object has an method that > implements ASS. Every TITS pops a NIPPLE, the ASS responds. But unlike my > earlier C++ mud, TychoMud which sported a dual TITTED system (one for > messages and one for events), TeensyMud has a single TITS queue. ASS > makes this possible. > > Currently every game class has but one ASS. So how do you get to the point > where you can define event handlers on individual instances? You can't yet > until FARTS are in place, obviously the next logical step from ASS is > FARTS. FARTS will be in the next release, and I explain then. I think > you'll really enjoy the power FARTS will give you. > But wait this just in.... > > *** TeensyMud 2.4.0 released - Hamster Power and FARTS *** > > --- Hamster Power --- > > Using the latest in cutting edge technology I've managed to connect a > hamster to TeensyMud. After many trials with rats, mice, guinea pigs > and even a siamese cat, I found the perfect creature that runs at constant > speed, requires very little maintenance and has incredible endurance. > > The Hamster is loaded onto the wheel at server boot and begins running > concurrently with normal mud server operation. Using patented electro- > servo nano-technology I've connected the wheel to a device which slaps a > NIPPLE on the TITS queue at measurable rotations of the wheel. > Because of the extreme danger involved in synchronizing this, I had to > develop a mechanism to protect the TITS which I call BRA (or Binary > Restricted Access). A system that needs access to TITS simply attempts > to unhook the secure BRA, do its work and then snaps it back in place. > The overhead is minimal, although I found myself fumbling with it the > first couple of times before I got the hang of it. > > The server can support multiple Hamsters chained together in a cluster. > This would be useful if you find Hamsters that run at different speeds. > One might try hooking a Mouse up to get a random timing effect. > > Please note that this mechanism is quite different from LPMuds which > among other difference require an actual human heart to operate. No > creatures are known to have ever been harmed by a TeensyMud server...yet. > WARNING! - Do not attempt to interface the Hamster directly to the ASS > event processor. I simply will not support such a configuration. > --- FARTS --- > > TeensyMud now has FARTS (Functional Automated Response Triggers System). > FARTS is a stackless interpreter designed to run short scripts based on > triggers called from the ASS event processor. The language is quite > simple right now and has the base functionality of MercMud's MobProgs or > Easyacts. In other words, FARTS stink right now. And FARTS is almost > but not quite secure. FARTS can be attached to any first class game > object including Players. > > There is a tiny bit of documentation on FARTS inside the distro and I > popped off a few myself which you can sample by running the server against > the new testworld database included. > Get it now at http://sourcery.dyndns.org/wiki.cgi?TeensyMud > > ===== Abbreviated Changelog last two releases ===== > Created Hamster class for issuing timer events. > Modified @set command to allow registering objects with Hamster. > Players are automatically registered. > Added ticktock program to illustrate hamster in action. > Updated documentation. > Created a testworld.yaml database to illustrate triggers. > Added arrival trigger. > Updated all events to call triggers and documentation. > Functional Automated Response Triggers System modules added and hooked up. > Added @fart command, grammar description and updated documentation. > New directory for farts programs. > Added parse routine to Obj, new commands table for Objs, and logic to > manage it. > Added echoat command. > Changed parameter to all commands to expect a single parameter. > Added stats report to Database for @stats command. > TernaryTrie#find now returns empty array instead of nil for not found > conditions. > Made Command#initialize to allow creating commands on the fly. > Added emote and stats commands. > Made help display show regular columns. > Added shorcuts ! and " for emote and say respectively. > Fancier formatting for exits. > Added go cmd and changed Player#parse to use it when just typing the > exit name. > Player#parse now uses grep to search for exits and concats to list of > commands. > Protected startup code in tmud.rb so we can require the file elsewhere. > Factored out database routines into their own class. > Added contents attribute to objects and logic to maintain it. > Changed database queries to use contents. > Changed database to be hash table instead of array. YAML still loads > and dumps database as an array though. > Added TITS event system and updated commands to use it. > Added command line parsing, can specify port on command line now. > Added who and examine commands. > New connected_players routine along with TITS replaces global_message > and global_message_others routines. Added ass methods to Room, Player > and Obj to respond to events. > =========== > > Enjoy, but don't hurt yourself. > > -- > J Lambert > -- ATLASSIAN - http://www.atlassian.com/ Confluence - the enterprise wiki - tried it yet? http://www.atlassian.com/confluence/ --