Re: [Circle] Ships

From: Joel (mcq@eden.rutgers.edu)
Date: 11/11/96


On Sun, 10 Nov 1996, Nick B wrote:

> What if you wanted to make it so that the player could command the ship
> around, and different ships could fight with eachother?

I coded a ship system on my mud last year that might be similar to what
you are looking for.  I haven't gotten around to letting players fight
each other yet, but it's on my to-do list. :)

Basically, it runs like this:
Each ship is really just a mob. (I gave it a new flag that makes it
			impervious to player attacks and other
			interactions)
The mob has a special procedure that looks for certain commands...
  i.e. "board", "look", etc...
"look" shows who's on deck vis
"board" you climb aboard the ship...into a special ship zone.

The ship zone is about 7 rooms, above and below deck.  Each room here has
a special procedure also.

"disembark", "sail", "lookout", "course", "navigate", etc.
"disembark" takes the character to the room that the ship_mob is located.
"sail" moves the ship_mob in the correct direction. (a new skill)
"lookout" shows you the room the ship_mob is in.

There are many more embellishments for each command, messages sent_to_zone
for sailing, etc.  And it depends on which room you are in.  Above deck
gets different messages than below...the crow's nest (and the person
sailing) sees with the "ship_mob's eyes" as the ship moves.  (whereas
others are spared the spam unless they type lookout.)

To make this all work, however, I needed an ocean to sail in.  This also
led me to create a whole new set of areas for new continents.  And of
course, I had to have a firm grasp on where existing areas already were,
since my ocean linked all of them.

Which brought about new movement rules for oceans, so players couldn't
just walk around (well, they _could_, but at unbelievable move costs).

And then, I had to come up with a system so players wouldn't get lost in
the 3,000 or so room ocean.  I made navigation charts, added a navigate
skill, made quadrants, astrolabes.  While in the ocean, you can navigate
and it tells you your exact position...(37N x 110W).  This took some
forethought on how I numbered my ocean rooms.  Navigation charts show
coordinates for all cities.

Later on, I added a routine that allows players to simply set a course if
they are lazy (for a fee - and it only goes to the major cities, not the
exotic quest areas), and the ship sails itself.

There are boarding fees, import taxes.  To make the ocean voyage less
boring, I added special ocean mobs, rooms, and procedures.  A very nasty
Kraken that lies in the main shipping lane.  You end up fighting tentacles
on your ship, and if too many wrap you up before you kill them all, ship
explodes, and you are in the middle of the ocean fighting the kraken's
body.

Sea serpents that attack you on deck.  Sea goblins that board your ship
and attack.  Reefs, shoals, a sargasso (hmm, haven't got around to
throwing the sargasso in yet.)

Anyhow, maybe this is a little more involved than what you were first
looking for.  But in essence, the ship is a mob that is "linked" to a
zone.  The zone being the half a dozen ship rooms.  And the player can
control where the mob moves, thus where the zone moves.

I have also implemented a somewhat similar system for coaches.  You can
sit in the coach, while another player drives it (or you can hire a
coachman to take you wherever you want).  The coach is a "mob", and moves
your "room" around the mud.

Oh, and a warning.  This obviously took several months and a lot of
planning.  But I haven't seen any other system as extensive around.
(granted I really haven't looked) ;)

But I'd like to think that it went a long way toward making the mud more
"real" and conducive to role-playing.

 - Joel. (Spud, imp of The Forbidden Lands.  iswest.com 5000)


+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/18/00 PST