[ANN] World's 1st Hamster-Powered Mud Server! (in Ruby)

J

Jon A. Lambert

[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.
 
N

Nick Faiz

This has to be the best software release announcement email I've ever
read! Good stuff! :)

Nick

[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.


--
ATLASSIAN - http://www.atlassian.com/

Confluence - the enterprise wiki - tried it yet?
http://www.atlassian.com/confluence/
--
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top