August Development Review – Exploits and Power Nodes!
Hello everyone! Not too much has been happening last month since a certain event completely ruined both my plans and mood. So let’s take a look at just that and then move on! :D
At the beginning of the month there has been a nasty little gold exploit discovered. Two people where especially eager to abuse it and wreak havoc on the market, so I had to pull the plug for a while until that mess was fixed.
The issue had it’s root in an integer overflow🡕 in
/powerup: I just multiplied the number the user entered by the amount of ingredients per level. With certain arbitrarily high values this could result in a negative number being subtracted from the player’s wallet – thus giving them basically infinite money whilst raising the companion level by a couple hundred levels. Fun times.
As it turns out, C# does not check for such overflows by default, which I just didn’t expect to happen. But luckily enough there is a compiler flag to tell the code to do just that, at the cost of making arithmetic calculations a bit more expensive. Sounds like way less of a headache and worthy tradeoff to me! That’s what I like so much about programming – there’s always something new to learn and discover, even after years of primarily working with the same language. :)
Servers where down for about 3 hours and afterwards I’ve had to do a little rollback. Luckily I’ve been doing backups whenever I push an update (which is about once per day), so the latest was only 22 hours old… Guess that was the one warning shot I needed to finally implement automated hourly backups which now have been running ever since. :D
Let’s not talk about the amount of time I had to spend with people messaging me about losing experience and items and instead let’s just say that the person causing most of that chaos will remain banned forever. 🙃
Oh yeah, I’ve finally implemented bans! Guess that counts as a new feature?
Enough talk about August!
Yeah, that’s enough looking back since most other things where just boring internal stuff and some intermediate materials. I actually scrapped the idea for those multiple times before finally deciding to implement them. But now I’m happy with how they turned out!. September will be interesting, so let’s talk about my biggest plan for that!
Design Talk: Guild PvP and Power Nodes
Content warning: As of now, these are pure daydreams and nothing you’ll read has been implemented or set in stone so far. I want to hear some feedback and opinions first, then implement it in the second half of the month and see how things work out. :)
The main idea right now is to outsource Guild PvP into a new mechanic: Power Nodes (name subject to change)! Taking inspiration from real life politics, it’s more “fun” to wage war with each other in third party countries rich in resources than on your home turf, so let’s do that here as well!
Power Nodes are unique points of interests scattered across the realm – there’s only a limited amount (although new ones might be added & discovered over time!), and each of them has a set of unique effects benefiting your guild, such as:
- Rare Resource Production (Gems, Metal, Herbs, Gold)
- Resource Production Boosts for main territory
- Factory Focus Boost for main territory
- Factory Production Yield boost for main territory
- Guild Activity Stat Boosts
Your guild will discover nodes through exploration. The discovery will be permanent (those nodes don’t move, after all!), but the entry will only display the strength and owner that node had during the guild tick when it was discovered, so it might change. “Discovering” the node again will refresh the values. You may also share nodes with other guilds, but keep in mind that this might work against you. And directly “visiting” a node by attacking it will also refresh the stats, even if you just send one person to get “walled”.
Attacking & Claiming Nodes
After discovering a node, you can launch a campaign against it, just like you would against NPC sites. If your guild wins and manages to destroy the outpost, it will claim ownership of the land. This will take multiple ingame days depending on the difference between attacking and defending forces and how well established the nodes’ defenses are.
In case multiple Guilds attack the same node, ownership will change in the following way:
- Multiple Campaigns: The campaign with the bigger strength will claim the land
- Multiple Guilds participating in that Campaign: The guild with the least claimed nodes will claim the land. If multiple guilds have the same amount of nodes, strength will decide.
This allows smaller guilds who wish not to claim a node themselves to offer their strength as mercenaries to bigger guilds during times of war.
Once claimed, you can transfer resources to the node in order to build stuff! However, there’s a limit to how many items you can transfer per day – but you can upgrade that either through a new guild building or upgrading the node itself. Maybe one day we’ll even have a logistics node? :)
Here comes the interesting part: The transported resources will only find their way to the node if it is successfully defended during the war, otherwise the resources will be stolen by the attackers! So if you are besieged, you better find some allies or mercenaries willing to help defend your valuable cargo and break through the siege.
After successfully transporting resources to the node, you can begin constructing stuff! The amount of plots there will be very limited, just like the buildings you can construct:
- The Node itself will function like an upgradable building to strengthen it’s effect.
- Outpost: Acts as a small Storage. Once destroyed, the node will be lost. Automagically built once a node is claimed.
- Guard Houses: The automated companion defense you are already used to.
Taking over a node also means taking over the defensive buildings – only the outpost will start from zero.
As mentioned, I’m open to feedback and want to hear your thoughts on this! Sadly Telegram and the community chat aren’t the greatest place to discuss things as there’s a lot going on at once, so I’ve created a thread on our subreddit for this over here: https://www.reddit.com/r/TypoTales/comments/pfqf38/power_nodes_design_discussion/
And that’s it for this month. Have a great September, everyone! :)