Background Info
@gautam hates cyclers, so much that he asked the community if he can make cycling ban-able
As for why, I think this post summarizes most of it:
Summary
Mostly because if the XP number balloons out of proportion, its difficult to place a number on other ways to reward players with XP. Also with big numbers in the leaderboard it demoralizes newer players to grind for leaderboard.
The whole switch from coins to XP was to make an XP value worth more and “makes it easier for me to add multiple ways of XP gaining.”
Support behind cycling
- Keep cycling
- Get rid of cycling
Based on the poll by gautam and (probably) this poll, people want cycling.
I asked the forum why they like cycling. I’d recommend reading the topic for unfiltered opinions, but heres a summary:
Summary
- Its been a part of SB since v1 (according to THIS post).
- Cycling was already limited by preventing a player account from collecting their coins after death, so it makes no sense to outright ban it now.
- The playerbase is used to this unintended feature of the game since progress is slow playing the normal way, so cycling somewhat supplements the faster progression and bigger numbers of v1.
- Its the only realistic and efficient way of grinding for leaderboard positions and gems for skins, even if its boring
- Longer runs are both painful and not rewarding enough.
Balancing Cycling
Increase XP and Gems gained at higher coin counts
This is my preferred balance since its much easier to accomplish.
The idea with this is to reward players that manage to rack up higher coin counts. This would ideally be some modifier that comes on top of the way XP and Gems are currently calculated as. This solution doesn’t address cycling directly, and players can easily cycle after getting the desired amount of XP that they want. Its more indirect, since the longer the player goes without cycling, the higher the chances that they get killed by players, mobs, bosses, etc.
Implementation:
Full disclaimer, I have limited knowledge in code so it’s possible that implementation requires more than this or I have some error in syntax.
I think this is the code that decides Gems and XP, if not then please correct me. I propose to change this function to something like this:
'''
thresholdCoins is used to determine if the player has enough coins to trigger bonus gems. Changing thresholdCoins should have an opposite effect on XP (increasing thresholdCoins will decrease bonus XP, decreasing thresholdCoins will increase bonus XP)
'''
export function calculateGemsXP(coins: number, kills: number) {
const thresholdCoins = 100000;
let xp = Math.floor(coins / 20) + kills;
if (coins > thresholdCoins) {
# Adds a logarithmic function that is standardized relative to thresholdCoins times a multiplier based on the coin amount [(coins/50) vs original (coins/20)] to xp. This multiplier can also be changed to change bonus xp.
const excessCoins = coins - thresholdCoins;
xp += Math.floor((Math.log10(excessCoins / thresholdCoins + 1)) * (coins / 100));
}
return {
xp,
gems: Math.floor(xp / 5),
}
}
Heres the resulting return values for various thresholdCoins values
···
thresholdCoins = 5000
- 5000 coins: XP: 250, Gems: 50
- 10000 coins: XP: 560, Gems: 112
- 100000 coins: XP: 7602, Gems: 1520
- 250000 coins: XP: 20994, Gems: 4198
- 500000 coins: XP: 45000, Gems: 9000
- 1000000 coins: XP: 96020, Gems: 19204
- 2000000 coins: XP: 204082, Gems: 40816
- 3000000 coins: XP: 316689, Gems: 63337
thresholdCoins = 10000
- 5000 coins: XP: 250, Gems: 50
- 10000 coins: XP: 500, Gems: 100
- 100000 coins: XP: 7000, Gems: 1400
- 250000 coins: XP: 19489, Gems: 3897
- 500000 coins: XP: 41989, Gems: 8397
- 1000000 coins: XP: 90000, Gems: 18000
- 2000000 coins: XP: 192041, Gems: 38408
- 3000000 coins: XP: 298627, Gems: 59725
thresholdCoins = 100000
- 5000 coins: XP: 250, Gems: 50
- 10000 coins: XP: 500, Gems: 100
- 100000 coins: XP: 5000, Gems: 1000
- 250000 coins: XP: 14489, Gems: 2897
- 500000 coins: XP: 31989, Gems: 6397
- 1000000 coins: XP: 70000, Gems: 14000
- 2000000 coins: XP: 152041, Gems: 30408
- 3000000 coins: XP: 238627, Gems: 47725
thresholdCoins = 250000
- 5000 coins: XP: 250, Gems: 50
- 10000 coins: XP: 500, Gems: 100
- 100000 coins: XP: 5000, Gems: 1000
- 250000 coins: XP: 12500, Gems: 2500
- 500000 coins: XP: 28010, Gems: 5602
- 1000000 coins: XP: 62041, Gems: 12408
- 2000000 coins: XP: 136123, Gems: 27224
- 3000000 coins: XP: 214750, Gems: 42950
thresholdCoins = 500000
- 5000 coins: XP: 250, Gems: 50
- 10000 coins: XP: 500, Gems: 100
- 100000 coins: XP: 5000, Gems: 1000
- 250000 coins: XP: 12500, Gems: 2500
- 500000 coins: XP: 25000, Gems: 5000
- 1000000 coins: XP: 56020, Gems: 11204
- 2000000 coins: XP: 124082, Gems: 24816
- 3000000 coins: XP: 196689, Gems: 39337
thresholdCoins = coins (if statement doesn’t trigger)
- 5000 coins: XP: 250, Gems: 50
- 10000 coins: XP: 500, Gems: 100
- 100000 coins: XP: 5000, Gems: 1000
- 250000 coins: XP: 12500, Gems: 2500
- 500000 coins: XP: 25000, Gems: 5000
- 1000000 coins: XP: 50000, Gems: 10000
- 2000000 coins: XP: 100000, Gems: 20000
- 3000000 coins: XP: 150000, Gems: 30000
Good Idea to increase XP+Gems at higher coin counts?
- Yes
- No
Bounties for cyclers
Players can be incentivized to kill cyclers by putting bounties on the heads of people who cycle.
Upsides:
- This can combat both cyclers and spawnkillers
Downsides:
- In an empty server with just the cyclers, the cycler would have a 3rd account present to claim the bounty.
- In a full server, they could have a friend claim it. Players would probably start cycling with 3 people.
Implementation:
Code-wise, I have 0 clue how to do this.
Track the amount of times a player has been killed within a certain time frame. If they are killed more than twice by the same player, then the player that killed them have a bounty placed on their head and become more susceptible to damage for a period of time.
Good Idea to give cyclers bounties?
- Yes
- No
Increased Mob Agro
Considering the mobs that are able to be agro-ed are currently doing nothing but being map hazards, they can be used to combat cyclers.
Upsides:
- This can combat both cyclers and spawnkillers
Implementation:
Even less clue how this can be implemented, yall can brainstorm this one.
Good Idea for Mobs to agro to cyclers?
- Yes
- No
Other suggestions from players (none yet)
Will update this if I see any feasible ideas.