Greetings, glorious testers!

Check out Alpha Two Announcements here to see the latest news on Alpha Two.
Check out general Announcements here to see the latest news on Ashes of Creation & Intrepid Studios.

To get the quickest updates regarding Alpha Two, connect your Discord and Intrepid accounts here.

Dynamic PID control of certain variables in Ashes?

XeegXeeg Member, Alpha Two
edited May 4 in General Discussion
One of the major things that can go wrong in MMO economies, other than bugs/exploits, is an unstable resource supply/sink situation (as mentioned in other threads). This can result in some items or currencies to become completely useless or extremely overvalued, and break certain game systems to the point where no one participates in them anymore.

Ashes announced at some point that they were hiring economics experts to help them design some of the systems in the game, presumably to avoid these types of disasters. At the same time, Ashes has always been promoted as a "dynamic" world, changing and responding to the player's activities. So far we have seen the change represented by developer content; things like story arcs, corruption, and node advancements. We know that some things will happen at night time and some things will happen during the day.

However, another aspect of the "dynamic" world could be things like monster/resource respawn times, locations, densities, level and quality. These do not require direct developer input, but could be automatically adjusting systems.

But how exactly to design this?

Introducing the PID controller:
https://en.wikipedia.org/wiki/Proportional–integral–derivative_controller

x9yx3j3n455l.png

PID control is used widely in the industrial/engineering sector.

The basic idea is that you pick a setpoint for where you want your "system" to be at, and then when random variations from the world affect your system, the system responds by trying to get back to the set point.

A common example is vehicle cruise control. You set it at 120 km/hr. When you go up a hill, the car detects that the speed is decreasing and applies more gas, attempting to get back to 120 km/hr. It might apply more or less gas depending on how quickly you are losing speed (the steepness of the hill). Whether or not the speed overshoots, or oscillates around the setpoint depends on the "tuning" of the system.

There are already some attempts to implement this system into economic theory:
https://www.imfs-frankfurt.de/fileadmin/user_upload/Events_2018/MMCI_Conference/Papers/09-Raymond_Hawkins-Monetary_Policy_and_PID_Control.pdf

What if it were possible to do the same in an MMO?

A very crude example could be something like 250 hours to level 50.
(I am not recommending/suggesting this, just using for illustrative purposes)

Let's pretend that we set the average player levelling time to 250 hours. Instead of varying the gas to an engine, we can vary how much experience each monster/quest/gatherable/achievement gives. Then, as the person plays, the game automatically adjusts the value of each experience gain. If they have their character sit in the starter zone for 100 hours and then go kill a monster, they gain 20 levels on the first kill. If someone grinds heavy, they barely get anything. Either way, the game is adjusting the value of these things to aim for 250 hours for level 50.

OK, of course this is a ridiculous example, but with the basic idea understood, perhaps we can find places in the game where this idea makes sense.

Maybe we want the respawn rates of ore in a node to adjust so that the total production of raw ore is a certain amount per week. Or trees in a forest. Or monster spawns rates. Or drop rates on items.

All of these game variables could be automatically adjusting to maintain developer setpoints that they want their game to have. Things like the exchange value of certain items, or progression time on servers, node advancement milestones and item drop rarity. Instead of a drop rate of 0.01% on an item, the dev can set it to 0-5 drops per server, per month and let the system adjust the drop % automatically.

They don't necessarily have to be perfectly set either. We can have systems oscillating around a set point, or have a wide set point range. We can still control for absurd scenarios (like the person sitting afk for 100 hours). This idea is just a framework for how to adjust system variables to respond to player interaction so that the system is stable and functioning as intended.

Anyways, hope you get the idea. Feel free to totally misunderstand and attack my hypotheticals as if they are detailed proposals in the comments below. :wink:

Comments

Sign In or Register to comment.