ID:99288
 
In any game, there is always distinction. But there are also similarities. Many similarities at that, because in all essence, most games are based off of ideas of other games, concepts, movies, shows, etc. But there seems to be one similarity that almost never changes; the experience.

In almost every game, you see:
usr<<"You killed [enemy], so you gain [number] overall experience!"

Keyword there: overall.

In games, you mainly see 3-4 bars. Health, Stamina, and Experience being the main three. You kill someone, the experience bar moves a little bit. What many developers fail to see is that BYOND is much more powerful than that: they can take it so far as to give each stat it's own experience. You can even make the same procedure handle the person "leveling up" as well. Here, I will walk you through it.

Let's start off by making a 'Level' procedure.
mob
proc
Level()


There we go. Now, let's define that procedure a little more with some named arguments.

mob
proc
Level(stat as text,mod as num,DisplayText=1,max=500,min=1)

Alright. With this, we now have some arguments for the procedure. Whenever we call the Level procedure, we will have to define these arguments.

Arguments

stat as text:
This is going to be the stat we will be giving experience to. The as text part means just as it says. The value used here has to be in the form of text.
mod as num:
This is how much experience will be added to the stat. It has to be a number.
DisplayText=1:
This is here to make it optional to show whether the stat gained anything or not. This will be explained more later.
max=500,min=1:
All this does is limit the experience gained. This prevents any sort of cheating, such as someone who used a bug in the game to his/her advantage and got some Administrator verbs, one of which changes the world experience mod. So if the experience they gain is over 500, it is set to 500. And the min=1 prevents people from gaining negative experience. This could be taken out as well, and you could use this procedure to take experience away from players as punishment.

Alright. We have a procedure, and arguments for it. Now we need to make it do something.

mob
var
health=100
mhealth=100
healthexp=0
healthmexp=100
healthboost=10
var
expmod=1
mob
proc
Level(stat as text, mod as num,dispText=1,max=500,min=1)
if(!src.vars[stat]) return //If the stat speicified does not exist, cancel everything
mod*=expmod // Multiply the experience by the world's experience mod
if(mod>max) mod=max // These 2 lines limit the experience, as explained earlier
if(mod<min) mod=min
src.vars["[stat]exp"]+=mod // Now lets add the mod to the stat's experience
if(src.vars["[stat]exp"]>=src.vars["[stat]mexp"]) // Now we check if the stat "leveled up"...
src.vars["m[stat]"]+=src.vars["[stat]boost"] // Boost their max stat by the stat's boost value(This allows for more dynamic "level ups".)
src.vars["[stat]exp"]=0 // Set the stat's experience back to 0...
src.vars["[stat]mexp"]+=src.vars["[stat]boost"] // And boost the stat's max experience by the stat's boost as well.
if(DisplayText)
src<<"Your [stat] has improved!" //If the DisplayText value is set to 1, tell them that the stat improved.


And that is the whole procedure, simplified.

I really hope this helps those aspiring programmers out there, hope it opened their eyes to some of the power that BYOND has, that they never saw. I would love to see more games with this concept. It could really spice up the game-play.

Please take all questions, comments, and concerns here.
Sound's interesting i believe VcentG has somthing of that sort, but only with the main stats. Overally i prefer a Stat Point system though, so players can decide their build. But that being said the system your presenting would put forth more effort for players and make them work for their powa!
Aeon Games Inc wrote:
Sound's interesting i believe VcentG has somthing of that sort, but only with the main stats. Overally i prefer a Stat Point system though, so players can decide their build. But that being said the system your presenting would put forth more effort for players and make them work for their powa!

I agree, that stat point system is what I like to lean to. This system would be fun to see in a good PvP game.
Yes, in my game, Bleach: A New Beginning, I used a modified version of this system and a stat point systems. So players get a little "reward" for training their stats enough.
Mind that this system is definitely not superior to the traditional method of levelling. It's an alternative, and often a bad one at that.
I never did say that it was better or worse, but I feel that this will make games a bit more interesting than just train grinding to increase one stat that, in turn, increases all of the stats. I like this system because it allows players to do certain things to achieve certain stats. Such as walking to gain stamina, getting hurt to gain health, etc.
I don't really seeing this any better or worse. All you are doing is taking the same idea and applying it to every single stat. Not that big of a deal and honestly, where's the power in that? You are repeating the same thing, just for different stats.
This was not meant as a plug-and-play tutorial. It was meant to spur ideas. This system could be modified to do anything you want it to do. In my case, it does different things for different stat, different mod, etc.
Ham Doctor wrote:
I don't really seeing this any better or worse. All you are doing is taking the same idea and applying it to every single stat. Not that big of a deal and honestly, where's the power in that? You are repeating the same thing, just for different stats.

True, but with the basic concept of the system it requires more effort on the user's end to train there statistics instead of just leveling up and getting bonus to all stats, that's what hes trying to encourage for people to break off the common thing, i believe its mainly due to all the rips
-Aeon Punches log-
-Level up-
-All Stats + 5.00000e+006-
I like to make use of manipulating the attributes that effect how your character plays and not use leveling at all.
PerfectGoku wrote:
I like to make use of manipulating the attributes that effect how your character plays and not use leveling at all.

When you "level up", what usually happens is the attributes that affect how your character plays are manipulated.

The game Level Up (link) uses a concept like this. Abilities level up only as you use them. I think what makes it more interesting in that case is that the stats aren't generic things like strength, speed, or defense.

The fun-factor is really limited by how interesting it is to level each stat. The game will be interesting if you find an interesting way to level stats whether all stats increase at the same time or not.
Forum_account wrote:
PerfectGoku wrote:
I like to make use of manipulating the attributes that effect how your character plays and not use leveling at all.

When you "level up", what usually happens is the attributes that affect how your character plays are manipulated.

The game Level Up (link) uses a concept like this. Abilities level up only as you use them. I think what makes it more interesting in that case is that the stats aren't generic things like strength, speed, or defense.

The fun-factor is really limited by how interesting it is to level each stat. The game will be interesting if you find an interesting way to level stats whether all stats increase at the same time or not.
---
"leveling up" is an overused and boring concept that usually does a poor job at manipulating the set attributes.
PerfectGoku wrote:
Forum_account wrote:
PerfectGoku wrote:
I like to make use of manipulating the attributes that effect how your character plays and not use leveling at all.

When you "level up", what usually happens is the attributes that affect how your character plays are manipulated.

The game Level Up (link) uses a concept like this. Abilities level up only as you use them. I think what makes it more interesting in that case is that the stats aren't generic things like strength, speed, or defense.

The fun-factor is really limited by how interesting it is to level each stat. The game will be interesting if you find an interesting way to level stats whether all stats increase at the same time or not.
---
"leveling up" is an overused and boring concept that usually does a poor job at manipulating the set attributes.

Perhaps a better way to describe and train stats? Perhaps a amount you can lift or how long you can run, ability to lift 250 pounds, ability to run 2mph etc stuff like that would be a interesting thing to incorporate as far as getting rid of the standard strength/speed and etc... stats.
You didn't define mob/var/vars=list(), If someone is already using your code, they probably got errors now. And vars is a silly name don't you think? Your going to confuse people like that.
Rasengan3oo4 wrote:
You didn't define mob/var/vars=list(), If someone is already using your code, they probably got errors now. And vars is a silly name don't you think? Your going to confuse people like that.

http://www.byond.com/ members/?command=reference&path=datum%2Fvar%2Fvars#comment_1
Alathon wrote:
Rasengan3oo4 wrote:
You didn't define mob/var/vars=list(), If someone is already using your code, they probably got errors now. And vars is a silly name don't you think? Your going to confuse people like that.

http://www.byond.com/ members/?command=reference&path=datum%2Fvar%2Fvars#comment_1

That link, directed me to homepage.

Aeon Games Inc wrote:
Ham Doctor wrote:
I don't really seeing this any better or worse. All you are doing is taking the same idea and applying it to every single stat. Not that big of a deal and honestly, where's the power in that? You are repeating the same thing, just for different stats.

True, but with the basic concept of the system it requires more effort on the user's end to train there statistics instead of just leveling up and getting bonus to all stats, that's what hes trying to encourage for people to break off the common thing, i believe its mainly due to all the rips
-Aeon Punches log-
-Level up-
-All Stats + 5.00000e+006-

More effort on the player's part isn't what they want. If anything you should be trying to get away from the grind.
Rasengan3oo4 wrote:
Alathon wrote:
Rasengan3oo4 wrote:
You didn't define mob/var/vars=list(), If someone is already using your code, they probably got errors now. And vars is a silly name don't you think? Your going to confuse people like that.

http://www.byond.com/ members/?command=reference&path=datum%2Fvar%2Fvars#comment_1

That link, directed me to homepage.

Go to the BYOND reference and look up the vars list for the datum object.
I have given the whole discussion thought and decided in the latest project I am working on, I am going to try to combine ideas. With classic leveling up, with actions to supplement .
Albro1 wrote:
I never did say that it was better or worse, but I feel that this will make games a bit more interesting than just train grinding to increase one stat that, in turn, increases all of the stats. I like this system because it allows players to do certain things to achieve certain stats. Such as walking to gain stamina, getting hurt to gain health, etc.

In short you feel it's a better system. :P

I personally dislike this system, but I don't think it's objectively worse or better. The thing is, this sort of character progression is very nuanced and tricky to do well. See for example Oblivion for a very poor implementation. Developers need to find interesting ways to level up each individual stat, in particular not making them overtly mechanical. Given the choice between using my "fireball" spell 30 times and completing a quest to improve my "magic", I'd rather complete a quest.
Page: 1 2