🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Completely custom skills mechanic for RPG

Started by
53 comments, last by Alexey Makarov 7 years, 6 months ago

In common, not sure for what purpose you're arguing semantics, so can't add anything else here.
I am trying to find the simplest example where you have to create a new mechanic in-game.

The idea is that a simple new mechanic such as your example should be trivial to implement in terms of the game elements. So far I fail to see how to do that. It is thus a lot less trivial than it is assumed to be, at least for me.

I don't buy your hand-waving "this is too simple to consider" is a valid solution, but fair enough.

Instead of the "throw fireball", please give another example where you need to make a new property, and show how to do that.

Advertisement

It's not trivial in common, since there should not be any difference in the mechanic to throw fireball or to cast any other spell. Any spell should work by the same common rules. And I'm working exactly on this task – develop such rules, at least theoretically (before programming it).

please give another example where you need to make a new property, and show how to do that.

I don't understand – which "new property" do you mean?

Any new property that you need for an algorithm.

Let's say, burn elements to get warm.

elements need to get a property when they ignite (and perhaps how), how long they can burn, you need to express how much heat they produce. Heat must becomes available to people "nearby", so you need some form of 'near' and 'not near' property (a person on the other side of the earth may not get warm, although, maybe if I want that, how do I express that?), perhaps with a computation how much warmer you get.

I don't think this is different from being able to express how close fire elements must be to collect them, or how compress works (eg when is it "compressed enough"?), or how "throw" only moves the compressed fire elements and not some other elements that just happen to float around. (With things like how does it move? What is its trajectory, how does it decelerate? How does it detect a body, how does it decide not to fly through it, but collide instead (imagine I want a fireball only hitting every second person or so, how do you make "every second person"?).

If you want to really introduce new mechanisms like above, you need to be able to express the conditions, and the effects in terms of concepts in the game, I think.

This is also the main problem, how do you create and handle a-priori unknown properties, conditions, and effects? I am not talking about how to enter them, just the problem of creating them, and express how they work, as that's complicated enough, I think.

Hi all,

this is a very interesting thread that brought me back to gamedev.net. The described concept to construct actions in an MMO by combining elemental ingredients is pretty much the same we plan to introduce to our project Illarion (www.illarion.org). Arcane magic in Illarion will consist of five basic, elemental runes that can be combined with (theoretically) any given number of all other runes. Each rune adds another basic type of effect to the overall spell with slight differences, depending on the elemental rune. See this attachment, an extract of the current design document:

[sharedmedia=core:attachments:33256]

The simple fireball is a fire elemental rune plus a rune that makes the effect "fly". Combined with other runes, very complex effects could be generated. The very same additional runes with another elemental rune might result in a somehow related, yet completely different spell.

However, this is magic. For crafting and fighting, we use a rather ordinary approach. What is comparable unique about Illarion is how we handle the improvement of skills. We use something that can be described as "undertuned proportional controller" to tune the actual skillgain per action. This controller results in every player generating the same amount of skill increase in a given time frame. In other words; whether a player decides to craft a lot or prefers to talk to other players does not have an impact on the total learning gain in the long run. Illarion is strictly "learning by doing", so you increase the skills you use, only. This might look odd at first glance but it has a certain appeal about it, considering the main target audience is roleplayers who tell each other endlessly about their adventures and plot political intrigues rather than grinding all day long to reach level 78. Code can be reviewed here:

https://github.com/Illarion-eV/Illarion-Content/blob/master/server/learn.lua

We're aware that this system scares off many gamers and we are constantly looking for ideas how to improve Illarion; hence I found this thread :-).

Estralis

OP For something like what you sound like you want, it requires the player be able to actually SCRIPT game mechanics at a low level and quite exactly (... not just twiddle with coefficients and select modal options/combinations from some precanned system).

I looked at design issues for some future-ish MMORPG game with features allowing Player Created Assets, and judged that such scripting would be only doable by a handful of players CORRECTLY (out of several hundred thousand players). The advantage there would be such assets created by that required expertise could be propagated into the game used by all the other players.

Have you gone through the process and built such game mechanics yourself yet (in a game as detailed as you describe) to understand all that is done/involved in such a process (just programming it and not even yet the part needed to expose access to the player for the feature) ??? Players allowed to do so as a feature would have to understand and have the skills to do the same (to the extent of what you have defined you want them able to create).

--------------------------------------------[size="1"]Ratings are Opinion, not Fact

Illarion eV.

This sounds like some of the things I considered for that Player Creation MMORPG thing where a middle level of creation (with game mechanics already done and with provided building blocks at a level above that) is using similar selections of options to recombine into many different variations. Particularly done with procedureally generated (semi random) generation of props and items (and potentially for opponent tactics) all automatic by the server.

One thing with any complex procedurally generated system is the irregularities which have to be handled requiring logic to spot/reject conflicts in details (or to limit to some world genre 'how things work' specifications) and to arbitrate cancellations and such. Such control rules can become huge as endcases multiply (when you combinatorics grows geometrically with the freedom and options allowed to be combined).

Example is arbitrating bewteen a simultaneous water & fire token selection, where either they cancel out or a third interaction (like steam/vapor ?) should logically result. The underlaying (multiple) attributes/elements of each magic token then have to be compared to the others used for the result. Perhaps there could be some magic system rule to limit to only one or at most two MAJOR tokens and then several minor/modifying tokens that adjust various things for those. (That to keep under control the number of combinations your arbitration logic rules must be able to handle...)

--------------------------------------------[size="1"]Ratings are Opinion, not Fact
Let's say, burn elements to get warm.

Ah, I see now. This is exactly what I'm working on. I hope, there will be some set of common rules for all elements and each type of elements will have some set of parameters values.

It's mostly about implementation while now I'm still thinking about higher level things.

how do you create and handle a-priori unknown properties, conditions, and effects?

Do you mean from a player's point of view? Yeah, it's the second main issue – develop pretty simple interface which allows to create any elements combination and even queue of combinations.

The simple fireball is a fire elemental rune plus a rune that makes the effect "fly"

It looks like Camelot Unchained mechanic, not exactly the same what I'm talking about. I've thought about this way, but it looks more complicated if I want to make literally ANY skill/effect possible – since need to pre-delvelop all possible "runes" manually.

it requires the player be able to actually SCRIPT

There are already games which allows to write scripts (at least – CodeSpells). I hope to make casual game, not for programmers – that's the second main issue (as I wrote above in this post), after the mechanic itself.



Alberth, on 14 Sept 2016 - 10:07 PM, said: how do you create and handle a-priori unknown properties, conditions, and effects?

Do you mean from a player's point of view? Yeah, it's the second main issue – develop pretty simple interface which allows to create any elements combination and even queue of combinations.

Not even that far, just having the things in a game, and act as desired. Until you can do that, user interface is secondary, imho (no point in designing how to tell the user if the thing doesn't even work).

We know what a window is, or fog, or a tree. It looks trivial to us, but if you want to describe what it does, and how it works, and how it affects other things in the world, at a level where the computer can at least show what happens, and compute resulting state, it gets incredibly complicated really fast.

We apply world knowledge lots of time without even realizing it, that makes it so simple and trivial for us. World knowledge is one of the things a computer doesn't have, so you need to tell it all that stuff.

I think you need to sit down and work through a number of these examples, and work out how to define them in your game. What are the basic properties that you have, are they sufficient? What can you express, and what not? (Note literally "anything" is impossible to reach, it has been proven your system cannot be complete.)

it has been proven your system cannot be complete.

Not sure what do you mean. I'm going to make a system where it's possible, exactly.

And I know it's complicated.

For now, as I wrote in the first post, I know how to implement almost any active skill example.

The question is still open for teleportation, portals and affecting character's properties. And for "physical" skills, but it's a different question, as I see now.

Not sure what do you mean. I'm going to make a system where it's possible, exactly.
There are theoretical proofs that for any formal system with number (ie any system with a set of well-defined rules on how it works using numbers), is lacking in some way, see also

https://en.wikipedia.org/wiki/G%C3%B6del%27s_incompleteness_theorems

It's probably way beyond the level of what you aim to do, so not very important. Sorry for bringing it up.

This topic is closed to new replies.

Advertisement