<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Modeling spells/skills as collections of affects --> <!--X-From-R13: "Fenivf Qnfrl" <rsvaqryNvb.pbz> --> <!--X-Date: Wed, 03 Sep 1997 23:51:29 +0000 --> <!--X-Message-Id: 199709032343.TAA11616#polaris,net --> <!--X-Content-Type: text/plain --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: [MUD-Dev] Modeling spells/skills as collections of affect</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:efindel#io,com"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg01061.html">Previous</a> | <a href="msg01063.html">Next</a> ] Thread: [ <a href="msg01043.html">Previous</a> | <a href="msg01079.html">Next</a> ] Index: [ <A HREF="author.html#01062">Author</A> | <A HREF="#01062">Date</A> | <A HREF="thread.html#01062">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] Modeling spells/skills as collections of affects</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <<A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A>></LI> <LI><em>Subject</em>: Re: [MUD-Dev] Modeling spells/skills as collections of affects</LI> <LI><em>From</em>: "Travis Casey" <<A HREF="mailto:efindel#io,com">efindel#io,com</A>></LI> <LI><em>Date</em>: Mon, 1 Sep 1997 19:53:24 -0400</LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> S001GMU#nova,wright.edu wrote: > [idea of having spells be operations on the mud database -- query for informational spells, modify for spells that do things] > This would work well for simple, straight forward spells, but I can see the > query getting quite complicated for spells that are dependant on a lot of > conditions (like, the moon has to be in the first quarter, it has to be > raining and there has to be a large mouse near by)... a simple scripting > language, or possibly chaining a few simple spells together could get around > that... (IE: create a 'detect large mouse nearby' spell, which is the first > part of casting the 'summon mouse demon' spell, or something). I need to > think about how to do more complicated spells some more. Also, if you want to model the kind of magic systems that exist in fantasy literature, you need to be able to have triggers and conditionals -- for example: When a creature enters this room If that creature is an elf explode a fireball teleport remains to garden Also, modifying the database seems to lack flair... why should a mage throw a lightning bolt at someone if they can just change their damage status? For that matter, how would you model something non- permanent like a lightning bolt in this system? I've had an idea for a magic system for a long time; it goes like this: - Create a set of "magical commands" that mages can use. These are simple instructions like "create", "move", "change", etc. Some of these may have multiple uses -- for example, "change" could have many subcommands along the lines of "change shape", "change volume", etc. - Create a scripting language that mages can use to script the magical commands, including conditionals, loops, interrupts (WHEN or ON statements), etc. Mages can then improvise magical effects using the commands, if they don't know a spell that applies, and they can write spells using the scripting language. A fireball spell might look like: Fireball $target $value begin create fire at power 1 in hand named 'ball' move 'ball' to $target change 'ball' to power $value and size big destroy 'ball' end A warding spell might be: Gargoyle Ward begin loop on enter $thing if $thing is alive and not ($thing wears 'ring of dawain') make 'dawains gargoyle' attack $thing end loop end This could work in a couple of different ways... either the entire spell could be given a chance of success (based on the mage's skills), or, in what could be a more fun variation, each statement in the spell could be checked for success individually until either the spell finishes or a statement fails, which would end the spell. This allows for various types of "misfires" -- the fireball might be created, but not get moved, or it could be moved, but might not explode, etc. Another fun idea based on this is to drain magic points or whatever from the mage not when the spell is cast, but when it actually executes. Thus, a mage who leaves lots of magical traps around might find his power suddenly being used at the worst time! This could be used in combination with a concept from many paper RPGs -- that of "maintenance cost." That is, if you leave a magical effect sitting around, it continues to draw power from you. That makes the "destroy 'ball'" in the above spell a necessary part -- if the ball weren't destroyed, it would continue to exist, and to draw power from the mage! (IMHO, if using such a system, destroying one's *own* spells should be very easy to do, possibly always succeeding -- that way, only mages who forget are punished.) (This idea is drawn from a scene in John Ford's novel, _The Dragon Waiting_. A mage creates an energy barrier around himself to protect him from attacks -- but forgets to give it a point to *stop* protecting at, and is killed when the spell drains all his energy to fuel itself, spells being fueled by life energy in that world.) Also, the skill checks can be done as each part of the spell "executes" -- which allows for a ward which is placed, but fails later. -- |\ _,,,---,,_ Travis S. Casey <efindel#io,com> ZZzz /,`.-'`' -. ;-;;,_ No one agrees with me. Not even me. |,4- ) )-,_..;\ ( `'-' rec.games.design FAQ: '---''(_/--' `-'\_) <A HREF="http://www.io.com/~efindel/design.html">http://www.io.com/~efindel/design.html</A> </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <ul compact><li><strong>Follow-Ups</strong>: <ul> <li><strong><A NAME="01079" HREF="msg01079.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong> <ul compact><li><em>From:</em> Shawn Halpenny <malachai#iname,com></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg01061.html">Re: [MUD-Dev] New topic: AI and NPCs</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg01063.html">Re: [MUD-Dev] Character evolution</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg01043.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg01079.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#01062"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#01062"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>Re: [MUD-Dev] Modeling spells/skills as collections of affects</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="01042" HREF="msg01042.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Wed 03 Sep 1997, 04:22 GMT </LI> <LI><strong><A NAME="01044" HREF="msg01044.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong>, Matt Chatterley <a href="mailto:root#mpc,dyn.ml.org">root#mpc,dyn.ml.org</a>, Wed 03 Sep 1997, 10:44 GMT </LI> </ul> <LI><strong><A NAME="01025" HREF="msg01025.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Tue 02 Sep 1997, 20:23 GMT </LI> </ul> <LI><strong><A NAME="01043" HREF="msg01043.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong>, Jeff Kesselman <a href="mailto:jeffk#tenetwork,com">jeffk#tenetwork,com</a>, Wed 03 Sep 1997, 04:22 GMT </LI> <LI><strong><A NAME="01062" HREF="msg01062.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong>, Travis Casey <a href="mailto:efindel#io,com">efindel#io,com</a>, Wed 03 Sep 1997, 23:51 GMT <UL> <LI><strong><A NAME="01079" HREF="msg01079.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong>, Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Thu 04 Sep 1997, 14:35 GMT </LI> </UL> </LI> <LI><strong><A NAME="01173" HREF="msg01173.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong>, Maddy <a href="mailto:maddy#fysh,org">maddy#fysh,org</a>, Wed 10 Sep 1997, 14:15 GMT <UL> <LI><strong><A NAME="01174" HREF="msg01174.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong>, Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Wed 10 Sep 1997, 15:31 GMT <UL> <LI><strong><A NAME="01176" HREF="msg01176.html">Re: [MUD-Dev] Modeling spells/skills as collections of affects</A></strong>, Adam Wiggins <a href="mailto:nightfall#user2,inficad.com">nightfall#user2,inficad.com</a>, Thu 11 Sep 1997, 04:35 GMT </LI> </UL> </LI> </UL> </LI> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>