|
Post by Xoel on Jan 8, 2011 20:41:48 GMT 12
Basically, I thought I'd throw a few concepts of mine for combat scripting out there. Firstly, the combat scripts will be Open Source. I want to assist a few PlaneShift players in creating an "out-of-the-box" PS server, and I'm certainly not bothered if a million Reign of Olympia servers appear being tested out by amateur programmers and the like. I thought, it would be cool if the combat scripts were rather public (since they're open source), and also, this way players could weigh their characters based on levels and have a fair expectation of how the character will fare in combat. I'd like to base the combat system on the kinds of non-digital combat systems you find in tabletop games. That is, dice roll based, with different roll requirements based on skill. Or modified by the skill... Basically, this thread will be used to discuss this. Bear in mind I have no knowledge in how to write an apply PS server scripts such as the combat ones, so discussion and informing on this system is also welcome. Also, at this point I don't want to change the PS engine code itself. I solidly believe in working alongside PlaneShift so that "competition" is negated. Open Source isn't about competing, it's about sharing and working together. The PS system itself allows for alot of customisability. I have ideas to replace magic (glyphs become scrolls and spells are prayers to the gods), and cooking and crafting will be fairly similar to PS (but better documented and open source, to make players find it easy).
|
|
|
Post by burley on Jan 8, 2011 21:58:34 GMT 12
This is happy news to my ears! I had been wondering how to shape my ideas into a post in hope of selling the idea; yet you seem to have beat me to it! ;D
My gaming background is that of a table RPG Game Master/Player; so we seem to be on the same page as to the style of combat system we have in mind.
From my limited perusal of the combat code things seem even better. After the server code decides who is attacking and who is defending, what weapon slot of the attacker is to be used and what armour slot in the defender is to be taken into account and that the combat is still possible due to distance and mode of the respective character object (i.e. that they are both still alive and within combat range of one another); then the logic of the combat results is not taken from any of the server code; but from the MySQL tables!
With such an ingenious method the door seems to be open that different combat systems could then be introduced to respective servers as easily as loading them into the respective databases. So the Rule Set does not appear to be something hard coded into the server code; but something which seems to be able to be load-able into the database as easily as loading a backup of characters.
Of course the combat logic loaded into the database is not trivial; yet it means that a new combat style could be employed without branching from the most current server code being released from PS development.
This shows great forethought on the part of the PS Dev Team; and bodes well for the PS Server to be able to handle many different styles of Game Worlds without requiring branching from the base server code.
There is a table in the database called math_scripts. As an example, the first record in that table is the Calculate Damage record. It contains all the C++ code to; you guessed it; calculate the damage! ;D
This needs to be verified on the #planeshift-build channel; yet at first blush it looks very promising that things are as they presently appear to me. If my assumptions are correct then any number of combat systems could be introduced to the PS server without deviating from the most current of server releases. - Burley
[ Edit 080111 : My assumptions have been verified on the #planeshift-build channel. It seems one could write a space ship combat game without branching from the main PS server development. This seems brilliant on the Dev Team's part to me.]
|
|
|
Post by Xoel on Jan 9, 2011 7:40:27 GMT 12
I already knew that combat and crafting scripts were database entries and not hardcode (hence they do not ship with a freshly compiled PS server). So yes, any combat can be done that way.
What also is of interest to me is how animations are set, and how easy they are to attach to different weapon attacks (a spear attack being animated differently to a shortsword attack).
The reason the PS server is setup this way isn't necessarily to make her more open to different uses, it's more to protect the official math, preventing others from making their own PlaneShift fake official server (if this stuff shipped with a compiled server, you could simply add PSClient release art to the server illegally and have your own full PS server).
|
|
|
Post by burley on Jan 9, 2011 7:57:06 GMT 12
They do, indeed, ship with the svn code of the PS server; yet are subject to copyright; as is the art directory's content. The following is a list of all the functions that are shipped in the math_scripts table:
| Calc Bank Fee | Calc Char Account Level | Calc Guild Account Level | Calc Item Merchant Price Buy | Calc Item Merchant Price Sell | Calc Item Price | Calc Item Sell Price | Calc Player Sketch Limits | Calculate Damage | Calculate Decay | Calculate Dynamic Experience | Calculate Fall Damage | Calculate Mining Experience | Calculate Mining Odds | Calculate Repair Experience | Calculate Repair Quality | Calculate Repair Rank | Calculate Repair Result | Calculate Repair Time | Calculate Skill Experience | Calculate Trasformation Experience | CalculateChanceOfCastSuccess | CalculateChanceOfResearchSuccess | CalculateConsumeQuality | CalculateFamiliarAffinity | CalculateManaCost | CalculateMaxCarryAmount | CalculateMaxCarryWeight | CalculateMaxHP | CalculateMaxMana | CalculateMaxPetRange | CalculateMaxPetTime | CalculatePetReact | CalculatePowerLevel | CalculateSkillCosts | CalculateStatCosts | Lockpicking Time | LootModifierCostCap | MaxRealm | SpellPractice | StaminaBase | StaminaCombat | StaminaMove | StaminaRatioSit | StaminaRatioStill | StaminaRatioWalk | StaminaRatioWork
One need only replace them with their own functions; as well as all content in the art directory; to avoid any copyright infringements. ;D
- Nova
|
|
|
Post by Xoel on Jan 9, 2011 14:21:54 GMT 12
Ah, that's interesting. For Reign of Olympia, we'll need the following weapon skills: Melee/Unarmed Spear Sword Dagger Bow Sling Maces and axes were not used by the Classical Greeks. I can understand them being coded up for use, say, by a non-Greek faction like centaurs or something. No harm in that. As for all art content, count on me as I said, I'm happy for my content to be freely available to be used as one pleases. Meshes, GUI, etc, will be open source, and textures will be proprietary but free-to-use, play with, etc. due to the CGT license. Will be interesting to discuss formulas for the individual scripts too.
|
|
|
Post by burley on Jan 9, 2011 19:57:00 GMT 12
Do you have a combat system in mind for your project? The one that is at the top of my list at the moment is Circe. It is the Rule Set employed in the Worldforge Project and has the most open license that has come to my attention of late.
- Nova
|
|
|
Post by Xoel on Jan 9, 2011 20:49:50 GMT 12
If you could post a basic post about the rules, that would be great.
Reign of Olympia will feature "Castes" of each society, which determines your (starter) Stats. Stats won't be available for training, and will determine what item types a character can use. Ie: AGI governs weapons, with spear and shield equally being least demanding in prerequisites and dagger and missile weaponry being most demanding.
STR will dominate armour types just like in PS.
After choosing the caste, it's irrelevant, it isn't visible to anyone who doesn't figure it out based on your stats... it's just like a Quick Start class in PS but the stats can't then be trained to max. So we won't get uber powerful characters wielding everything (and hence RP is retained).
The castes will be based on real historical classes, such as Spartiates, Helots, Peroikoi for Lakidaemon and Peasants, Hoplites, Priests, etc. for Athenai.
How actual combat is scripted isn't a huge bother to me, as long as it is balanced, and weapons have advantages and disadvantages against each other, and damage is modified by the type of armour worn.
|
|
|
Post by Xoel on Jan 9, 2011 20:59:55 GMT 12
Also, I've been contemplating working on an idea to change the Description window in appearance to look like a Trading Card, as a cool idea.
|
|
|
Post by burley on Jan 10, 2011 5:19:51 GMT 12
If you could post a basic post about the rules, that would be great. First and foremost the system has been released by its creator, Bryce Harrington, under the GNU Free Documentation License or the GNU General Public License. "Nearly all of the math is simple arithmetic. The reason so many equations are used is to make it simpler to model all of the rules in a computer program. Because it was designed with computers in mind, it’s being used in the WorldForge online gaming system". Due to it being used by WorldForge, which is also Open Source, some code may be able to be reused from that project. The WorldForge project uses the programming languages C++, Python and Lua; so, again, that could bode well for reuse under the PS server. The complete Rule Set is available in PDF and/or MS Word format via: www.worldforge.org/dev/content/rules/circe
|
|
|
Post by Xoel on Jan 10, 2011 8:35:19 GMT 12
I had a look, and the stats, magic etc. mentioned are quite different to how I would use them in Reign of Olympia. I'm guessing that's easy to configure. But yes, I would like to have an RPG-style mechanics.
Stats in Reign of Olympia:
Strength Endurance Agility Intelligence Willpower
Note the obvious lack of charisma. For me, I have yet to see an intelligent way in which charisma is implemented in a game. Usually, the amount of charisma a character has is simply roleplayed out by the RPer, making it a void stat.
I'm thinking in favour of a skill test roll (attacker weapon vs. defender weapon) -> Damage test roll (with armour modifier), and then a wounding roll to determine how much is done exactly (though this could be put into the damage test to minimise equations).
Using a dice system would be cool. I'm used to D6/2D6/3D6 etc., but anything with a random factoring would be all we need (D20 etc.)
|
|
|
Post by burley on Jan 10, 2011 14:09:55 GMT 12
I had a look, and the stats, magic etc. mentioned are quite different to how I would use them in Reign of Olympia. You plan to have magic is Reign of Olympia? I thought you were going for realistic immersion, - Burley
|
|
|
Post by Xoel on Jan 10, 2011 16:12:13 GMT 12
Magic is changed to a "Prayer" system, whereby rather than casting spells, players read ritualistic prayers from scrolls. This in turn causes the god they pray to, to cause a god power effect. Greeks believed this could be done in this manner, according to my research. Anything from intelligence and wisdom being granted, to a fireball or lightning bolt striking out of the heavens...
I do intend to keep it much lower powered than basic weapon fighting, and skills that have a decently damaging effect will cost alot of the resource used to cast (Mana doesn't fit, I was thinking along the lines of a "Piety" bar).
At full Piety, the praying Greek's connection to his god is as close as possible. As he prays powers to Earth as part of his own motives, the god becomes less and less willing to assist (hence Piety level falls), and the greater the effect, the more a god must feel his follower deserves it (hence powerful effects require high Piety levels).
I want the level of this skill to be balanced so that, let's say, a Spartiate and an Athenian Priest skirmish in the countryside. They are both armed with spears and shields, the Spartiate in his bronze cuirass, and the Priest in cloth. Before the battle, the Priest prays to Athena for strength, and his stats are boosted to match a Spartiate rookie. His skills are still trained to be alright at spear combat. Since the Athena effect is invisible, it hasn't effected his piety much, so he then prays to Zeus for a lightning strike, using up the rest of his Piety (which will take a while to regenerate unless he spends time praying, which he can't afford to do now). The Spartiate takes damage, they close into combat, and the fight is close, but the Priest manages to pull off a win.
|
|
|
Post by Xoel on Jan 11, 2011 15:44:24 GMT 12
Also, from my observations in #planeshift-build, it seems the rules code provided in the SVN =/= the actual ruleset that PS uses in official servers.
|
|
|
Post by burley on Jan 11, 2011 18:36:04 GMT 12
Also, from my observations in #planeshift-build, it seems the rules code provided in the SVN =/= the actual ruleset that PS uses in official servers. Well that would explain why the only proprietary copyright was found inside; and relating to the contents; of the art directory. So you should only need some tweaking of the distributed system to meet your needs. That sounds like a huge time saver from what I had been imagining. - Burley
|
|
|
Post by Xoel on Jan 11, 2011 19:28:30 GMT 12
Cool. May I direct your attention to the "trading card description window" thread? I am wondering if you would know how I would achieve this, weltall inferred some C++ programming would be necessary (and I think this idea would be awesome as part of the OpenPSServerBox project).
|
|