Exposing scripting to RPG players.

Started by
10 comments, last by Dogfood 23 years, 10 months ago

Here''s what I''m doing: I''ve got a scripting language for an multiplayer RPG(hopefully massive as well). Part of its chore is server side, but part of what I want to do is expose it to players through various mechanisms.

Here''s my example: Magic. Many people have said that programming and magic share similiar properties. Not only will the built-in spells be written in this scripting language, I want to allow players to write their own spells.

MY QUESTION: How should I expose the scripting language to the user? Should I just pop up a text box and let them hack away(admittedly not user friendly, and included only as baseline idea). Graphical "connect the components" style interface? I want ideas on how to let the player CREATE scripts in a way friendly to the player.

I''m also curious about ideas for other ways to allow players to create in-game scripts. I know that there are problems: The Kill-Everyone-Now spell will inevitably be attempted. Ideas for preventing this would be welcome too.

Advertisement
Well, I would go with the connect the componets idea, if it wouldn''t be to difficult, because that would allow anybody to participate. Then you could make it an integral part of the game.

Also, i just had another idea, you could have the game assign a "power" rating to each spell that the user creates based on what componets that they use. Then you could limit how powerful the spells that the user can create (ie. a level 1 player could only create weak spells, but a level 100000 demigod would be able to create the destruction of the earth spell.)

Anyways just some thoughts. I hope this was at least some what helpful.
---Ranok---

Yeah, I''ve been leaning toward the connected components idea myself, partially because the components can implement checks and still allow the user to do anything they can think of. I was also think of using "feed forward" and "feed back" links to alter the affects of connected pieces(and allow for interesting reactions when a spell quite literally backfires).


However, I am interested in ways this can be used to enhance gameplay. I find some attraction to the way it reduces the reliance of power maxing and brings into variability and dramatic customization of characters. So first off making it accessible to the player,i.e. non programmers , and how this can be used to affect gameplay, balance, etc. in other places besides magic(Surely my barbarian had CSC 201 as well as my mage, well maybe he _DID_ cheat on the final ;>).

Another way to add interest and control powermongering would be to have spells modified by their enivronment.

For instance, spell might be especially powerful if cast near water, or at night.

"Why is he running over to the river? I''ll get him now - what''s he doing? Oh SHIT!"

Hehheh.

- gollum
What if you let them program it, but it had to be in some sort of magic language? So you''d literally be writing spells!

For instance, a player might write

(Total gibberish)?Vas an Grav Vor Aqa?Si am Aqa: Aqa plu. Si am Fir: Aqa min, Grav plu.!Ba a Tar! 


Which would mean:

Elements are Gravity, Darkness, Water.If near water: Increase water element power. If near fire, less water and more gravity.Cast to target. 


Admitadly that''s a really stupid spell which doesn''t make sense, but you get the idea .


----------------------------------------
Whenever I see an old lady slip and fall on a wet sidewalk, my first instinct is to laugh. But then I think, what if I was an ant and she fell on me? Then it wouldn't seem quite so funny.
Another interesting idea would be element combining. You could have it so that if the player uses fire and water in the spell steam would come out as the result, or how about being able to combine water with earth to be able to shape yourself a clay golem. Perhaps the smart player could use water with cold to create a sheet of ice that slowed his opponets to a crawl.

Anyways, just some more ideas I had...I have to go back to work now, bye.
---Ranok---
quote:Original post by Dogfood

~snip~
MY QUESTION: How should I expose the scripting language to the user? Should I just pop up a text box and let them hack away(admittedly not user friendly, and included only as baseline idea). Graphical "connect the components" style interface? I want ideas on how to let the player CREATE scripts in a way friendly to the player.



I think the most important thing to remember when giving players the ability to create is to keep it simple. If most users were given a scripting language they would simply be lost. If you give them a graphical interface that is familiar and simple your better off in the end.
I remember the days on the Amiga... I had a friend who couldn''t program at all, but he could use AmigaVision. If you don''t know what AmigaVision is, try to find someone that knows or do a search on the net.

Hide the scripting behind a GUI.



Dave "Dak Lozar" Loeser
Dave Dak Lozar Loeser
"Software Engineering is a race between the programmers, trying to make bigger and better fool-proof software, and the universe trying to make bigger fools. So far the Universe in winning."--anonymous
LOOM LOOM LOOM.

That''s all I can say.

Well, there''s more:

Loom, by Lucasarts (I think?) was the only game I''ve ever played that had a build-your-own-spells-because-they''re-always-different-and-follow-the-examples-around-you spell creation system.

I really liked it. I like the idea that certain combinations of things would have certain effects. Reversing the combination caused the spell to work the opposite way. This kind of logic made it intuitive to the user on how to create more spells.

I think a well crafted spell system using Runes, Physical Laws, Magical Laws and Psychic Laws could be built whereby the user, upon reading and understanding the laws, could think about this and put it all together. The spell system could be relatively open ended and evolutionary in some ways so that even the game designed wouldn''t know exactly what would happen if this, that and the other were put together..

Anyways.

Thanks for the interesting replies. I couldn''t find anything much than a paragraph description of Amiga Vision(at Google or Altavista), but it sounds like its along the lines of part of what I''m looking for. Loom sounds really cool, I just looked at it, It''s good to know that at least someone else tried something like this once .



Does anyone think this could enhance other aspects of game play? I was thinking of ways to make Magic systems more fun and evolutionary and thats how I got started on this idea, but I''m wondering what other kinds of things this could be used into. Weapon smithing? Religious orders? In my MMORPG, player characters can eventually be "translated" into deities. There are plenty of issues this brings up, but gods will have plenty of ways of having fun without molesting mortals; however they can influence the mortal plane by creating items to give(or "bind") to mortals. Maybe the deity could enhance the items by attaching a script to it? Of course I''ll have to work this into my item existance equations(some kind of component system is looking good here too). The Equation is a test which determines whether an item can exist, the simplistic expression of it is: Add all the "good" enhancements(damage, stats bonuses, etc.) and subtract all the "bad" enhancements(slow attack, stat detriments, etc.) and there are some scaling factors. Anyway, if the value exceeds a certain value, the weapon cannot be created.



I like the idea of "elemental" stuff, and runes, and some of the other things suggested. Here''s some more of my thoughts after reading some replies, was thinking(more like a programmer) of "components" which require certain things(like reagents, stats, environmental conditions, nothing). They would have inputs and outputs. You connect them to anything else. A complete spell could also be used as a component. There would be targetting components(area affect, person, location, etc.), summoning, elemental, inverter. Very "basic" sorts of things. The components individually succeed or fail, and the results feed forward(or backward) through the rest of the spell. If they all fail or feedback to the caster, sucks to be him. Perhaps there could even be components which prevent things from flowing back on the caster(at the expense of the qualities it feeds forward into the rest of the spell).

quote:Original post by Dogfood

Yeah, I''ve been leaning toward the connected components idea myself, partially because the components can implement checks and still allow the user to do anything they can think of.



Have you seen the GUI that LEGO uses to program their Mindstorm robots? It consist of some basic building block with some individual parameters (duration, force ect.) which you can fit together to form an entire program. Even small children can program a robot in that way.

Try taking a look at it (you can probaly find some screenshots or something somewhere on the web) and see if you can make something along those lines.

Regards

nicba

This topic is closed to new replies.

Advertisement