Terracore: Devlog #34 - Idle Player Decay & Bot Greif Balancing

in #terracore6 months ago

cryptognome_Army_of_RobotsSuper_Computer_No_Mans_Sky_8K_Resolut_bf40cc37-55d1-4cd1-b398-7c1199354e77.png

Hello Fellow Citizens!

I hope everyone had a relaxing weekend and is ready to tackle of a new week in the best way. Today I am coming at you with a short devlog. We had a bunch of community discussion in the Discord this weekend following the latest release and think we have come to a good balance on a lot of the feedback we received from everyone on how to balance and add to the Player Decay check.

New Player Decay Code

async function calculateMineRate(engineeringLevel, result) {
    const nextUpgradeCost = Math.pow(engineeringLevel + 1, 2);
    const timeToNextUpgrade = 48 * 60 * 60; // 48 hours in seconds
    var mineRate = nextUpgradeCost / timeToNextUpgrade;

    // Check if user has last_upgrade_time in the object
    if (result.last_upgrade_time == null) {
        result.last_upgrade_time = Date.now();
    }

    //mine rate calculation
    const daysSinceUpgrade = Math.floor((Date.now() - result.last_upgrade_time) / (3600000 * 24));
    let decrease = 0;
    let decreaseRate = 0.01; // Start with a 1% decrease
    
    if (daysSinceUpgrade > 5) {
        for (let i = 5; i <= daysSinceUpgrade; i++) {
            if (mineRate * (1 - decrease - decreaseRate) <= 0) {
                // If the next decrease will bring mineRate to 0 or below, set it to 0 and break the loop
                mineRate = 0;
                break;
            }
            decrease += decreaseRate;
            decreaseRate *= 1.5; // Increase the rate by 50% each day
        }
    }
    
    if (mineRate > 0) {
        mineRate = mineRate * (1 - decrease);
    }

    // For every 5 days, decrease the number of attacks by 1 (Remove Attacks from Players that are Inactive)
    const weeks = Math.floor(days / 5);
    if (weeks > 0) {
        const attacksToRemove = 1 * weeks;
        result.attacks = Math.max(0, result.attacks - attacksToRemove);
    }
    return mineRate;
}

Mine Rate Decay

Here is the new check for the mine rate you can see it is MUCH larger in short we made changes to when and how the mine rate decay starts. It will not only start to decay after 5 days of inactivity have passed ( many users stated that they should not be impacted before they have even had time to do the next upgrade or action... I agree with this.)

Attack Decay

Attacks will now also start to decay -1 every 5 days.. you might ask why why why, well it's simple, there are some bots in the game that are not doing anything past a certain point, it's not that we are not bot friendly (we actually are) but a bot that is sitting at the same levels and not progressing is a net negative. The largest negative is not what you think... it's actually a grief to the new player experience. When a new player joins and starts leveling they may have 100s of bots slightly above them and that player is now their MAIN target... 100s v 1 its takes longer to level up and they are constantly under attack barrage from the bots.

I have also added another reset to the activity cooldown, it will now also be reset when you purchase a crate from the store using $SCRAP

SWAP FEATURE

We have also added a new swap feature using @keychain new swap service api. This is a 3rd party service and may have fees now or in the future included in the service but we wanted to add it to the user facing interface to make the experience easier for players not as familiar with the #hive ecosystem.

image.png

image.png



That's it for today, all the links are below be sure to follow us to here what we are working on and follow the progress!


Play Terracore:
https://www.terracoregame.com/
Check Out our Wiki:
https://cryptognome.gitbook.io/terracore/
Follow us on Twitter:
https://twitter.com/terracoregame
Follow us on PeakD:
https://peakd.com/@terracore
Come join the discord to learn more:
https://discord.gg/dgJU6RqMv4

Sort:  

This post has been supported by @Terraboost with a 12% upvote! Delagate HP to Terraboost to Earn Daily HIVE rewards for supporting the @Terracore community!

Play Terracore | Delegate HP | Join Discord

PIZZA!
The Hive.Pizza team manually curated this post.

$PIZZA slices delivered:
@speedtuning(1/10) tipped @terracore

Learn more at https://hive.pizza.

Why focus only on engineering? What if a player wants to increase the defence or attack skills?

You can upgrade either of them, only the penalty affects your mining rate which relies on your engineering level.

Congratulations @terracore! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You received more than 6000 upvotes.
Your next target is to reach 7000 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

Check out our last posts:

Our Hive Power Delegations to the October PUM Winners
Feedback from the November Hive Power Up Day
Hive Power Up Month Challenge - October 2023 Winners List

Thank you, 5 days is reasonable, you have time to make updates in your account

!PIZZA

Great idea with the swap feature. I think we need to make swaps to flux as effortless as possible. Maybe a good idea to add Hive => Flux also ?

!LOL

I've just written a song about a tortilla.
Well, it is more of a rap really.

Credit: reddit
@terracore, I sent you an $LOLZ on behalf of gameexp

(2/8)
Delegate Hive Tokens to Farm $LOLZ and earn 110% Rewards. Learn more.