Time : 164.2
Ranged 0.237641040221
Shield 0.196870774353
2h 0.270445408452
Pole 0.265281825419
Cav 0.0297609434774
HR 8.07676550724e-09
RIght ok, Code doesn't mean anything. Wut is the results that's wut matter!
-1 for terrible documentation and presentation
An interesting model, but it supposes that everyone is GTX, or that they can only have fun when they win.
And that's why people play games, to have fun.
Haven't you ever had fun also when losing to a good player after a good fight? Haven't you had fun when just blocking someone as a peasant long enough for a teammate to kill him? Also some people might find more fun from playing with others, from teamwork and winning rounds, instead of having the best k/d ratio.
It's things like those that are completely ignored by this model. The human element.
I think to succesfully predict anything, you are going to need about 20 subclasses beneath the 6 base classes.
Bah, code... is this a concealed anti-ranged thread or not?
Spends 1 hour writing a quality renown-whoring post, gets +5
Vibe posts an image of a carrot in the same thread, gets +8
Actually this is taken into account, this line :
fitness[myClass] = fitness[myClass] * (1-pow(pop[myClass],2))
means that the closer the current pop of the class is to 0, the higher it's fitness will remain, simulating the fact that the last players of a class will not move so easily.
Also, you are not forced to interpret the fitness matrix as a measure of battlefield effectivity of a class against a certain class. It can represent how funny playing a class is.
Spends 1 hour writing a quality renown-whoring post, gets +5
Vibe posts an image of a carrot in the same thread, gets +8
Spends 1 hour writing a quality renown-whoring post, gets +5
Vibe posts an image of a carrot in the same thread, gets +8
I'm sorry, but that's not taking the human sitting in front of the computer into account. That's adding a parameter to your function that makes it look less flawed, while making the exact same assumption about the average player. Science wise, a cosmetic change.
Now there's a few nutjobs who are acting against their best interest in the population. Most of the population is still only after kills, and will switch over to anything that killed them. That's not how you play, is it?
I won't have fun as a polearmer if I end up against a 2h player? That's what your matrix would say, isn't? Can you model different actors with different payouts? Not everyone likes the same things after all, and some have a principle of their own against going ranged for example. Can you factor culture into it?
I think it would be a little naive to claim that how a player acts can be represented with a single number for each class.
Also I applaud your efforts, but I feel I must point out that this doesn't prove much. Our interactions with the game and each other are much more complex than this, and most importantly not everyone plays only to win. Models are necessarily simpler than reality, but if they are based on an incorrect assumption, no amount of tweaking will help it make correct predictions.
The numbers have pretty much stabilized. Ranged Cav are no longer around. Cav's barely holding on.
Time : 164.2
Ranged 0.24
Shield 0.20
2h 0.27
Pole 0.27
Cav 0.03
HR 8.07676550724e-09
I realize I should do this with matlab and post graphs but heh I did this for fun and I tought it would be nice to post it, if you are into that kind of things, enjoy
Do it with matlab
Do it with matlab and also on paper (using real math).
Yeah, not sure why he would just post source code and not even have any comments explaining his reasoning on top of not showing any results or analysis either. Why do it in python and not matlab anyway where you can readily pull graphs and shit out of it if the purpose was truly to show it to the community?
No flowchart, no results, not even a detailed description outside of the vague OP. The OP is basically, "here is a wall of source code I came up with, compile and analyse it yourself if you can even though I can easily make the assumption that most people here aren't coders or mathematicians." If I was a peer reviewer and this was a presentation I would throw 0's at you.
I think it's an interesting concept. I do modeling like this for a living, and I'm going to give the approach some more thought. First blush: it's a good model. I'm not sure if the 'Payoff' matrix is set up correctly, but without real data that's difficult to know.
For people who don't speak code, here're the results of Kafein's simluation in graphical form (only plotted to time = 50, because nothing interesting happens after that):
visitors can't see pics , please register or login
For those who speak MATLAB:(click to show/hide)
I understand that the fitness = fitness * (1-pop^2) is trying to model the resistance of 'the last, hardcore players of a certain class to change'. The relationships are definitely non-linear, and this shows some of that. Can any other math people comment on whether they think this is the right way to do it?
So I made one minor change to the 'Payoff' matrix and ran it again. I changed all the diagonal elements to '3', because I think every class is break even against itself. The results were amusing, but also convinced me that this model (or my assumption that classes are equal against each other) needs some tweaking.
Are you ready for an eerie (but clearly not realistic) prediction of the future of cRPG?(click to show/hide)
If people have their own cases they want to see plots for (a case being some combination of initial conditions and 'Payoff' matrix), post them here. I'll run them if I'm on, or maybe some else can grab the code and run with it.
I think it's an interesting concept. I do modeling like this for a living, and I'm going to give the approach some more thought. First blush: it's a good model. I'm not sure if the 'Payoff' matrix is set up correctly, but without real data that's difficult to know.
For people who don't speak code, here're the results of Kafein's simluation in graphical form (only plotted to time = 50, because nothing interesting happens after that):
visitors can't see pics , please register or login
For those who speak MATLAB:(click to show/hide)
I understand that the fitness = fitness * (1-pop^2) is trying to model the resistance of 'the last, hardcore players of a certain class to change'. The relationships are definitely non-linear, and this shows some of that. Can any other math people comment on whether they think this is the right way to do it?
Why are you using area instead of a straight up plot? The vertical axis doesn't represent "portion of population" this way.
mathvisitors can't see pics , please register or login
The most advanced buff cav thread ever. I'm incredibly impressed Kafein. 8-)
Why are you using area instead of a straight up plot? The vertical axis doesn't represent "portion of population" this way.(click to show/hide)
Area is prettier.
The lines have the advantage of making more limited obsevations easier. Like comparing only two populations. When two populations have the same amount of people, it's just two lines intersecting.