Is This Possible? (RPG Support)
|
|
Alexander Basiat
Aetherial Sail Pilot
Join date: 23 May 2006
Posts: 13
|
06-29-2006 21:26
I am just beginning learning scripting, and I've poked around the dataserver commands, especially some of the lovely things that Miss Malaprop is doing with the interaction of SL objects and PHP / MySQL, but I'm still not convinced the project I am envisioning is possible.
I would very much appreciate any commentary as to the feasibility of the idea, and gentle nudges in the right direction would be appreciated, but certainly not expected.
I want to create a system where two residents use a HUD object that stores values which are character traits, with a third object mediating between the two people and comparing these traits to each other, without revealing the resident's values to either player.
What this would accomplish is that it would allow each player in a RPG to compare character traits in a potential conflict, let's say my Intelligence versus your Charisma, and receive a helpful reply from a third party object that explained the amount of difference, positive or negative, between the two traits.
So, if my Intelligence was rated much higher than your Charisma, I might see right through your wily ways. Whereas if your Charisma greatly overmatches my Intelligence, I would learn that fact. Or if there is an even match, I would learn that as well.
This would be to assist consensual roleplaying conflict navigation. It is important that a third party be keeping these two people honest, because I'm concerned about "hacking" the system.
So, to belabor the point (but perhaps explain it fully), it would look something like this:
Alex wants to challenge Shawna to see who can snatch the coin out of the air first when the Kung Fu Master throws it.
He would first announce the challenge in Chat and then trigger the conflict navigation system, which would then check the traits of Alex and Shawna both.
Alex's Dexterity is 20, Shawna's Dexterity is 15. When Alex challenges Shawna, he stipulates that the challenge can only be answered by Dexterity, or Shawna could decide to counter with a different trait.
The system then reports to both Alex and Shawna that Alex's Dexterity is Greater than Shawna's, but not by a large degree. Thus, Alex and Shawna can speak briefly in IMs and decide consensually that, yes, Alex will snatch the coin, but Shawna would be close.
If Alex didn't stipulate Dexterity as he initated the challenge, Shawna could instead decide to use Wisdom: her timing and experience are better than his quick reflexes, she muses. If her Wisdom was 20 as well, however, the system would report to both Alex and Shawna that they are evenly matched, a stalemate, and need to find another way to resolve the conflict.
I look forward to any ideas anyone may have. Thank you in advance for reading this.
|
|
Angela Salome
Registered User
Join date: 6 Oct 2005
Posts: 224
|
06-29-2006 22:55
From: Alexander Basiat ...but I'm still not convinced the project I am envisioning is possible.
I would very much appreciate any commentary as to the feasibility of the idea, and gentle nudges in the right direction would be appreciated, but certainly not expected. ... I look forward to any ideas anyone may have. Thank you in advance for reading this. The biggest problem you currently have is that your RPG system is very vague. From: Alexander Basiat The system then reports to both Alex and Shawna that Alex's Dexterity is Greater than Shawna's, but not by a large degree. Your RPG system needs to decide what the numerical values are for "Greater than" and "a large degree". Without good solid definitions for these phrases that the LSL scripting language understands, then your project is doomed to failure. I'd suggest removing the numbers as they're not used. Instead, use a RPG system of a single "+", "0" or "-" (indicating strength, average or weakness) in a number of important attributes. Then "+" versus "+", "0" versus "0" and "-" versus "-" gives a tie result; "+" versus "0" or "-" & "0" versus "-", gives a win for the left side and a loss for the right side (and vice-versa). Then your system needs to reward players for having several attributes at "+", "0" and "-". This is so that players will find it attractive to not only win contests, but to loose and tie contests.
|
|
Alexander Basiat
Aetherial Sail Pilot
Join date: 23 May 2006
Posts: 13
|
Not going too deep into Game Design...
06-30-2006 04:29
From: Angela Salome The biggest problem you currently have is that your RPG system is very vague.
You're very correct that the system that I described was vague. I didn't think scripting folks would want to read a huge treatise on my RPG game system, so I simplified it for the purposes of this conversation. The question I'm trying to get answered is, "Does Linden Scripting Language possess the needed flexibility to compare attributes between two players and report to both of them the results of that comparison?" Everything else is bells and whistles. I could see using this particular algorhythm, once hashed out, to provide roleplaying cues to just about any players of any system, from White Wolf's Mind's Eye Theatre (which does compare traits in addition to using Rock Paper Scissors) to Amber Diceless' Character Auction based conflict resolution. Further levels of complexity could automate d20 rolls and comparisons, although I for one am not going there, because I feel that d20 is far too simulationist a game to really work well in SL. I'm leaning more towads a VR LARP, myself. My published game credits are here, if you want to check out my game design pedigree: http://www.pen-paper.net/rpgdb.php?op=showcreator&creatorid=240
|
|
Eloise Pasteur
Curious Individual
Join date: 14 Jul 2004
Posts: 1,952
|
06-30-2006 06:09
Ultimately it's probably impossible to make the system entirely unhackable, but the basics of what you describe are relatively easy.
llSay and it's friends, and llListen, will let the objects talk in world. All the normal logical operators and comparisson operators are available. A HUD where I choose my stat, you choose yours, they each tell the other what they've got and it generates lines of appropriate text is pretty easy. A third party to decide a "GM HUD" is also possible - in that model the GM's HUD is the only one to listen on that channel so it hears both values, it broadcasts its results on a different channel back to the players' HUDs.
There are tricks and tips that could help make it a bit more secure - read the various encryption and signature threads on this forum, we've just had another one start up. If you can afford an off-world server storing stats and handling the contest off world, sending back xmlrpc replies seems to be pretty secure - the xmlrpc channel is unique to the *script* so can't be intercepted very easily. Sending out via llHTTPRequest is also quite safe, although more prone to spoofing, but there are ways you can check for that, and since you'd reply down a different channel there's little merit to hacking it I'm guessing. If you're doing that you could even store the character data offworld so people can't tweak their stats and skills.
|
|
Alexander Basiat
Aetherial Sail Pilot
Join date: 23 May 2006
Posts: 13
|
Thank you!
06-30-2006 09:13
From: Eloise Pasteur Ultimately it's probably impossible to make the system entirely unhackable, but the basics of what you describe are relatively easy. Thank you very much. I'm reading up on XML-RPC and see that there is a lot of discussion on the wiki about it already, and that while I shall be entering a wild and wooly land, it will at least be with other brave souls. I appreciate your response, and am open to others' opinions as well.
|
|
Foolish Frost
Grand Technomancer
Join date: 7 Mar 2005
Posts: 1,433
|
06-30-2006 09:32
From: Eloise Pasteur Ultimately it's probably impossible to make the system entirely unhackable, but the basics of what you describe are relatively easy. Actually, it is possible in SL to make system hacking so unlikly as to make any successful hack attempt a statistical anomoly. For example, look up my name and encryption/security in scripts and tips. You CAN make it very unlikly for data to be intercepted successfuly. 
|
|
Introvert Petunia
over 2 billion posts
Join date: 11 Sep 2004
Posts: 2,065
|
06-30-2006 10:55
Find "Darklife" in-game for a long running working example of an RPG in SL.
|
|
Ziggy Puff
Registered User
Join date: 15 Jul 2005
Posts: 1,143
|
06-30-2006 11:39
I wrote a roller derby game where people can train up different attributes (speed, strength, defense). When you're racing and you bump into someone else, the two attachments communicate to figure out if the other person should get knocked down or not, which basically involves figuring out who was the "bumper" and who was the "bumpee" (based on their positions, direction of movement, etc. ... this is irrelevant for you), and then comparing one's strength against the other's defense, which is a very simple version of what you're describing. So yes, it can be done.
|
|
Angela Salome
Registered User
Join date: 6 Oct 2005
Posts: 224
|
07-01-2006 03:43
From: Alexander Basiat The question I'm trying to get answered is, "Does Linden Scripting Language possess the needed flexibility to compare attributes between two players and report to both of them the results of that comparison?" Yes it does. I've scripted a intuitive GM-less resolution system that was unhackable. But it's biggest problem was the same problem I mentioned in my earlier post, vague resolution. Once that's sorted out, the rest is relatively easy and quick.
|
|
Alexander Basiat
Aetherial Sail Pilot
Join date: 23 May 2006
Posts: 13
|
Interesting...
07-12-2006 15:12
From: Angela Salome Yes it does. I've scripted a intuitive GM-less resolution system that was unhackable. But it's biggest problem was the same problem I mentioned in my earlier post, vague resolution. Once that's sorted out, the rest is relatively easy and quick. You're right that when two players meet and they go through an interaction, there's a number of different ways they could interpret the results of the interaction. What is important, to my mind, is a social contract / mutually-agreed-upon guideline between the players of the game that lays out what happens when someone loses a conflict in an attribute comparison. Values like good roleplaying, storytelling-as-art, and so forth, can't be taught or mandated by any rules set; they have to be demonstrated and passed on by the osmosis of interaction and in the RNA of a game community culture. But this does bring to mind something else I want for the Open SL RP system, and that is the ability to vote for someone whom you think is a good RP'r or who has helped the game go forward well. Every gamer would be given a vote they could give out and this vote would be expended when they use it, and only come back after some time. This voting would then go to suggest players who should be rewarded somehow in-game, such as receiving additional character points or experience points. Interesting thoughts, these. Thank you!
|
|
Alexander Basiat
Aetherial Sail Pilot
Join date: 23 May 2006
Posts: 13
|
07-12-2006 15:18
From: Introvert Petunia Find "Darklife" in-game for a long running working example of an RPG in SL. Actually I haven't played, but I have observed Dark Life, and I have to say that although it looks extremely nifty, and is certainly a valid way for many people to play a fantasy-style RP, it is not the kind of game I envision when I think about roleplaying and storytelling in Second Life. In fact, it's kinda the opposite direction I would take. For one thing, everything in Dark Life costs $$, and this starts out with the cost of buying the initial backpack setup. I'm not saying that it is bad for the folks who made Dark Life to make money on the fruits of their labors, what I am saying is that my vision is to create an Open-Source RP system that will allow anyone to play a slightly-more-structured-than-freeform sort of RP. Now, there's nothing that stops people from taking that Open Source RP system and using it to create games that they then charge people to play, just as it is totally OK for folks to take The GIMP, which is an open source photo manipulation program, and use it to make hair textures to sell. But my own personal goal is to craft something that will, at its basic level, be free to all who use it. Then there's the fact that I don't particularly like to do hack-and-slash style gaming - I've been there, done that, got the t-shirt and the discarded Dark Age of Camelot disks. Once again, not a problem for others, but just not for me.
|
|
Alexander Basiat
Aetherial Sail Pilot
Join date: 23 May 2006
Posts: 13
|
07-12-2006 15:19
From: Ziggy Puff I wrote a roller derby game where people can train up different attributes (speed, strength, defense). When you're racing and you bump into someone else, the two attachments communicate to figure out if the other person should get knocked down or not, which basically involves figuring out who was the "bumper" and who was the "bumpee" (based on their positions, direction of movement, etc. ... this is irrelevant for you), and then comparing one's strength against the other's defense, which is a very simple version of what you're describing. So yes, it can be done. Thank you very much for that - sounds like a great game by the way.
|
|
Alexander Basiat
Aetherial Sail Pilot
Join date: 23 May 2006
Posts: 13
|
07-12-2006 15:22
From: Eloise Pasteur Ultimately it's probably impossible to make the system entirely unhackable, but the basics of what you describe are relatively easy.
llSay and it's friends, and llListen, will let the objects talk in world. All the normal logical operators and comparisson operators are available. A HUD where I choose my stat, you choose yours, they each tell the other what they've got and it generates lines of appropriate text is pretty easy. A third party to decide a "GM HUD" is also possible - in that model the GM's HUD is the only one to listen on that channel so it hears both values, it broadcasts its results on a different channel back to the players' HUDs.
There are tricks and tips that could help make it a bit more secure - read the various encryption and signature threads on this forum, we've just had another one start up. If you can afford an off-world server storing stats and handling the contest off world, sending back xmlrpc replies seems to be pretty secure - the xmlrpc channel is unique to the *script* so can't be intercepted very easily. Sending out via llHTTPRequest is also quite safe, although more prone to spoofing, but there are ways you can check for that, and since you'd reply down a different channel there's little merit to hacking it I'm guessing. If you're doing that you could even store the character data offworld so people can't tweak their stats and skills. I really appreciate your response to this thread! I thought I had subscribed to it, but apparently that subscription got lost in the shuffle. BTW, I have started a new SL blog and I will be talking about my coding efforts there. The URL is http://fireseeds.geekhero.net
|