Page 1 of 1

Weapon Balance

PostPosted: 30 Jan 2013, 21:49
by Totoplus62
The goal of this thread is to balance weapons.

Main problems:
(1) Weapons are often inadequate (depending on your rank)
(2) Bouncing appear too much (this make the game be less interesting with many players)
(3) The cake you can throw behind make the game be unfair :x

Solutions:

(2) Bouncing ball : There is a simple way to solve the problem
Basket ball has to be less frequent (like the blue shell in Mk). We just have to add a 30sec invisible timer: when someone has colected the basket ball, the timer is activated and nobody can collect this weapon during this period) ---> we can have one basket-ball every 30 sec maximum
But if a player collect this weapon and don't use it (for example he collects another gift), the timer is deactivated until someone else collect the basketball.

(1) Then as Funto suggested we can give a probabilty for gift depending on rank, so i took time to think about it and i think this is nice :cool:. (When i make someone of my family play the game, they agree with me to say this is currently unbalanced)

Rank: 1-4
Bouncing-ball 0%
Bowling ball 30%
Bubble gum 15%
Cake 10%
Swatter 15%
Swapper 5%
Zipper 5%
suction pad 20%
Parachute 0%

Rank 5-8
Bouncing-ball 0%
Bowling ball 20%
Bubble gum 20%
Cake 15%
Swatter 15%
Swapper 5%
Zipper 10%
suction pad 10%
Parachute 5%


Rank 9-12

Bouncing-ball 5%
Bowling ball 15%
Bubble gum 15%
Cake 15%
Swatter 10%
Swapper 5%
Zipper 15%
suction pad 10%
Parachute 10%

Rank 13-16

Bouncing-ball 10%
Bowling ball 15%
Bubble gum 10%
Cake 15%
Swatter 10%
Swapper 5%
Zipper 15%
suction pad 10%
Parachute 10%

Rank 17-20
Bouncing-ball 20%
Bowling ball 5%
Bubble gum 5%
Cake 20%
Swatter 5%
Swapper 5%
Zipper 20%
suction pad 5%
Parachute 15%

We have to consider that a bubble gum is now able to protect you ;)

(3) The cake
Ahead --> It has the same characteristics as the current cake
Behind --> You let the cake on the road and if you hurt this one, it makes your kart slide during 2 second without losing speed (like a real banana ;) )

Re: Weapon Balance

PostPosted: 30 Jan 2013, 22:26
by KroArtem
It's possible just to decrease the probability of receiving bouncing ball, moreover it's much easier to do than to implement ranks, 30s delay and so on ;)
I also don't think we need to change cakes' behaviour so radically. Except this we should somehow connect the item with the damage it produces, cakes can't make you slide, imho :)

P.S. don't make your family members play the game, on the contrary they should ask you to play with them ;)

Re: Weapon Balance

PostPosted: 30 Jan 2013, 22:46
by Totoplus62
Everyone who tried the game tell me that gifts are overally unbalanced (with bouncing ball frequency) and as a player (i play a lot stk ;) !) i also think this, you can also find lots of comments about this on Ubuntu Software center.
KroArtem {l Wrote}:It's possible just to decrease the probability of receiving bouncing ball, moreover it's much easier to do than to implement ranks, 30s delay and so on ;)

You did not understand i think :| , decrease the probability isn't enough, you have to adapt the probabilty depending on rank :!: this is evidence
When you are the last you don't need swatter, when you are first you don't need bouncing ball, you need zipper for the last players etc...

KroArtem {l Wrote}:Except this we should somehow connect the item with the damage it produces, cakes can't make you slide, imho :)

Really? If you try you should see that you can slide (by accident ;) ) with most of the food and hiker asked players about a solution, i think this is a good one.
Another solution is to make the ability to throw the cake behind be impossible. (For example: In Mk or WD magical Racing tour, you can't throw the red shells behind... and this is not a problem :think: .)

Re: Weapon Balance

PostPosted: 31 Jan 2013, 00:40
by Auria
Totoplus62 {l Wrote}:When you are the last you don't need swatter, when you are first you don't need bouncing ball, you need zipper for the last players etc...


this is already the case. Of course it's always possible to further tweak

Re: Weapon Balance

PostPosted: 31 Jan 2013, 08:39
by bonifarz
Totoplus62 {l Wrote}:The goal of this thread is to balance weapons.
[...] i took time to think about it and i think this is nice :cool:. (When i make someone of my family play the game, they agree with me to say this is currently unbalanced)


For this topic I have to add some comments, rules are always interesting.
  • Speaking of "balanced" or "unbalanced" rules can be delicate, I dare say it is nearly impossible to claim perfect balance in any set of game rules
  • It seems known for a long time that backwards cakes are quite strong. Discussing ideas about these is not a bad thing. I would prefer sort of a delay or charged attack. If it takes more time to fire the weapon, it is much more dangerous to drive with the reverse angle.
  • Rubber ball: Hard to tell what we can gain from simply playing around with the parameters such as the max turning angle or perception ranges. It would be pretty nice if the first kart can dodge it more easily and other karts are hit more frequently.
  • Your suggestion for the probabilities is mainly to scrap the weights for first/last kart and to make all 5 groups equally large - I dislike that! It supports balance much if certain items are mostly available to only one of the karts in a game.
  • You eliminated multi rolls aka triple items, is that intentional?
  • I think we can alter already pretty much of game-play without altering the mechanics... just edit the weights and post them here in such a way that other people can test them, too.

Also see:
recent explanations
a more detailed example

Re: Weapon Balance

PostPosted: 31 Jan 2013, 13:35
by Totoplus62
Ok bonifarz just tell me where is the file we have to change for this please ;) (powerup.xml right ?)

No this wasn't intentionnal :S.
The two main problems for me are the cake and bouncing ball frequency: (with 15-20 opponent, there is sometimes 3-4 bouncing ball every 15 seconds :!: :eew: )

Just consider the idea :"We just have to add a 30sec invisible timer: when someone has colected the basket ball, the timer is activated and nobody can collect this weapon during this period) ---> we can have one basket-ball every 30 sec maximum
But if a player collect this weapon and don't use it (for example he collects another gift), the timer is deactivated until someone else collect the basketball
"

It can just create a limit per amount of time. Just think about it.

Re: Weapon Balance

PostPosted: 31 Jan 2013, 16:28
by bonifarz
Totoplus62 {l Wrote}:Ok bonifarz just tell me where is the file we have to change for this please ;) (powerup.xml right ?)

Yes, exactly:
bonifarz {l Wrote}:Also see:
recent explanations
a more detailed example

Totoplus62 {l Wrote}:It can just create a limit per amount of time. Just think about it.

Sure, you already mentioned that earlier (in one of the two topics linked above) and it is not a bad idea, only problem with new feature requests is that you should rather try to make patches yourself - and I am too lazy for that now ;) - that's why I prefer messing around with the config/xml files and use the nice mechanics we already have.

Re: Weapon Balance

PostPosted: 31 Jan 2013, 17:30
by Totoplus62
bonifarz {l Wrote}:Sure, you already mentioned that earlier (in one of the two topics linked above) and it is not a bad idea, only problem with new feature requests is that you should rather try to make patches yourself - and I am too lazy for that now ;) - that's why I prefer messing around with the config/xml files and use the nice mechanics we already have.

I'm not able to code... :oops:
About cake we should just block the ability to throw the cake behind. This is a good solution and is definitely an improvment IMHO :o.
And this is not weird because for example there is only one way to use the swatter.

Re: Weapon Balance

PostPosted: 01 Feb 2013, 02:31
by Auria
Limitating the basket ball to one per X seconds sounds good to me. Joerg, what do you think? This is probably easy to implement and would make it less frustrating.

Of course the other options is to add ways to avoid it

Re: Weapon Balance

PostPosted: 01 Feb 2013, 03:01
by hiker
Auria {l Wrote}:Limitating the basket ball to one per X seconds sounds good to me. Joerg, what do you think? This is probably easy to implement and would make it less frustrating.

Probably, but the point is we would have to avoid giving out more basket balls while one person even holds one. Then it might happen that the one basket ball keeps bouncing around (e.g. on a different shortcut than the leader), and no one has a chance to stop a far-away leader at all for a lap or two (till the ball catches up, which might be too late). Iirc it also can happen that the ball misses the leader, and will then do another full lap trying to catch up with him, which will take forever. A strategy could be that players collect a basket ball first, before trying to become first? Not sure if this is a good idea or not (it adds some hard strategy - first getting one, then avoid getting other items, and still making it to first place ;) But it just feels odd).

Also once we have online multiplayer and teams, one team member can just hold a ball to avoid that the other team can hit the first team's leader ... ok, so we have to implement this as 'one per team' when we reach this stage ;)

Perhaps add some logic to make it dependent on the distance of the leader from the second kart? So if the leader is far far away hand out more balls?

Should this only apply to basket balls? What about other 'global' items - switcher and probably parachute?

Of course the other options is to add ways to avoid it

Certainly that - see bubble gum thread.

Cheers,
Joerg

I've opened a ticket for that
Cheers,
Joerg

Re: Weapon Balance

PostPosted: 01 Feb 2013, 09:12
by Funto
I would separate global items from local items:
onKartGotItem()
{
if(random(0,1) < GLOBAL_PROBABILITY)
{
// choose item according to global probabilities (item can be bouncing ball, parachute or switcher, each one with its probability
r=random(0,1)
if(r < BOUNCING_BALL_PROBABILITY)
useBouncingBall()
else if(r < ...etc)
}
else
{
r=random(0,1)
//choose other item according to r and its probability
}
}

With all probabiities depending on the rank.

Re: Weapon Balance

PostPosted: 01 Feb 2013, 13:20
by Totoplus62
I have a similar idea to my first one that permits this time to avoid problems (players can't create strategy like "players collect a basket ball first, before trying to become first")

--> a new BB is allowed every X time for example 20 sec (this is a bit different from the previous idea). This method doesn't pay attention to what the player does with the BB
_______________________________________________________________________________________

First example

(1) Race starts, one BB (basket ball) is allowed:
During this period (00:00:00 --> 00:00:20) people can only one catch BB and use it or not (in my example i will consider that a "player number 1" don't use it and keep it ;) )

(2) Next period (00:00:20 --> 00:00:40)a new BB is allowed:
So "player number 2" can catch only one new BB (because the first player caught a BB during the first 20 sec). "Player number 2" catch a new BB


(3) Next period (00:00:40 --> 00:01:00) one new BB is allowed
Players can catch only one new BB...
_______________________________________________________________________________________

Another example
with this method is that the race started since 60 seconds (i keep my example a 20 second period) but no one have never catched a BB ---> 3 BB are allowed ;) with this method (We can put a limit of 5 for example)
_______________________________________________________________________________________

etc... :) i think this could be really easy to code ;)
--> No more problem \o/ with lots of players

Re: Weapon Balance

PostPosted: 01 Feb 2013, 15:14
by Arthur
Personally I think balance is fine, just needs to make it a tad easier to avoid by swerving to one side when the ball comes close, and also add auto-aiming at it for cakes thrown backwards - now you can avoid it with some skills, problem solved. No need to complicate things with invisible timers etc.

Re: Weapon Balance

PostPosted: 01 Feb 2013, 16:13
by Totoplus62
Arthur {l Wrote}:Personally I think balance is fine, just needs to make it a tad easier to avoid by swerving to one side when the ball comes close, and also add auto-aiming at it for cakes thrown backwards - now you can avoid it with some skills, problem solved. No need to complicate things with invisible timers etc.


I disagree: this easiest way isn't always the best one :) , this frequency of BB is the reason i don't play with more than 10-15 opponents :eew:
I little script could tackle this problem with the method of my previous post.

About cake: do you sincerely think you have the time to react and avoid them... :think:

Re: Weapon Balance

PostPosted: 01 Feb 2013, 16:43
by Arthur
No, you misunderstood. Use cake to shoot at BB was my idea. Anyway, the game is balanced for 1-9 AI's, not 10-19 - the latter is just for those who find the former too easy/boring, and if you find that too chaotic/hard then don't play with that many.

Re: Weapon Balance

PostPosted: 01 Feb 2013, 17:00
by charlie
I like the idea of 1 basketball every 20 seconds. That sounds fairly balanced.

Re: Weapon Balance

PostPosted: 01 Feb 2013, 17:01
by Totoplus62
Arthur {l Wrote}:No, you misunderstood. Use cake to shoot at BB was my idea. Anyway, the game is balanced for 1-9 AI's, not 10-19 - the latter is just for those who find the former too easy/boring, and if you find that too chaotic/hard then don't play with that many.

And then when you will have online gaming :( ? I'm a little bit annoyed because the way to have fun with many AI does exist and you don't really give a solution but say "don't play with that many" :| (And you can sometimes fell this effect with less tan 10 players: 2 BB can follow each other very close)

And use cake to shoot at BB will just move the problem because you will have to give more cakes to first players, the problem will be even bigger.

Just about the BB i think my last solution was nice (i'm just able to code with Mat-lab and TI calculator, what a disappointment for me :!: )

Re: Weapon Balance

PostPosted: 01 Feb 2013, 17:35
by Arthur
No, giving more cakes to the first player isn't necessary - you'll just have to hold on to cakes more since they would be more useful as a defensive weapon.
Anyway, for online gaming I expect quite a few things may need to be balanced differently, so why not do it when necessary instead of adding more work now when there's plenty already.

Re: Weapon Balance

PostPosted: 01 Feb 2013, 19:52
by Totoplus62
Of cource i know there is lot of work ;), the contrary would be alarming; but our goal is to make the game go in the right direction. It's done when it's done.

Re: Weapon Balance

PostPosted: 01 Feb 2013, 20:36
by Funto
I'm with Totoplus62 on this one: weapons balancing is a crucial part of the game, making it independent on the number of karts is quite important IMO.
Totoplus62 >> Some hints, so you can test :) I just had a look at the code: the part that chooses the weapon to use is the function
{l Code}: {l Select All Code}
PowerupManager::PowerupType PowerupManager::getRandomPowerup(unsigned int pos,
                                                             unsigned int *n)

which is in powerup_manager.cpp.

m_position_to_class[] is an array converting a position in the race to POSITION_FIRST, POSITION_TOP33, etc
For example, we have m_position_to_class[0] which is POSITION_FIRST, m_position_to_class[1] which is POSITION_TOP33, etc

m_powerups_for_position[] is an array of lists of repeating items and is used to choose randomly.
For example, you can have: m_powerups_for_position[POSITION_FIRST] == {POWERUP_BUBBLEGUM, POWERUP_BUBBLEGUM, POWERUP_CAKE};
Then you will have 1 out of 3 times you will get a cake when you are at rank 1.

Good luck if you are motivated to experiment with the code :)

Re: Weapon Balance

PostPosted: 01 Feb 2013, 21:54
by Totoplus62
I will try to look at it :) when possible but i never tried with this

Re: Weapon Balance

PostPosted: 01 Feb 2013, 22:45
by bonifarz
Because this discussion about global items etc keeps going on, I have taken another look at my old weights, this time playing with 40 (fourty) karts on scotland. I admit that was kind of fun, although another problem with that many karts are difficulties getting items at all ;)

To make it easier to insert the weights, I'll attach a powerup.xml that works with 0.8 - very same weights as mentioned above.

Happy testing :)

Re: Weapon Balance

PostPosted: 01 Feb 2013, 23:39
by Totoplus62
I must admit the first one you did was nice, and when i spoke about probabilities i also thought the problem with Basket ball was cause of current weight but this isn't really the case, the problem comes from the number of players :) and there is still the problem of the cake i will think about :think: