Luck is overpowered, random-based events must be normalized

Describe your experience with the latest version of FreeOrion to help us improve it.
Forum rules
Always mention the exact version of FreeOrion you are testing.

When reporting an issue regarding the AI, if possible provide the relevant AI log file and a save game file that demonstrates the issue.
Message
Author
User avatar
afwbkbc
Pupating Mass
Posts: 96
Joined: Tue Mar 14, 2017 10:47 am

Luck is overpowered, random-based events must be normalized

#1 Post by afwbkbc » Wed Mar 29, 2017 9:55 am

Many events in game depend on random - spawn conditions, fleet battles, scouting, etc.
Now it's assumed that good / bad luck is not an issue because it autobalances over time (it's assumed than in 100 games every player will be equally lucky overall).
This assumption is wrong. Some persons are more lucky on average than other. It's not an issue of freeorion, it's just how world works. I personally know several of such people. They always suck in chess and other games where there's no place for luck, but in any game that involves random I just can't beat them. Despite my best efforts, luck is often on their side and I'm just destroyed.
Freeorion is one such game. Some random here, some random there, and I got crushed for no reason.
Examples of being lucky/unlucky in freeorion:
1) scouting
lucky: on first turn you send scout in random direction and find perfect planets and natives
unlucky: in first turn you send scout in random direction and find deep space with Sentry that destroys scout
2) spawn conditions
lucky: you get 10 habitable planets and 3 natives within 3 lanes
unlucky: you get 0 habitable planets and 0 natives within 3 lanes and two enemy AI empires within 4 lanes
3) combat. You send 3 basic hull laser ships with defense grids against maintenance ship and sentry
lucky: your ships destroy sentry in first round and then safely damage maintenance ship while being shielded with defense grid
unlucky: your ships attack maintenance ship all three round, meanwhile sentry destroys one of them and damages other. The next turn remaining ships again attack maintenance ship and sentry destroyed them all (REAL STORY, LOST THE GAME BECAUSE OF THIS SHIT)
Also lucky players get more planetary bonuses, ruins, juggernaut nests, natives than unlucky player.
Unlucky players need more scouts and invest in military early, due to vast amounts of dangerous shit around them.
So in our played games graph L29Ah wins in most cases, despite not having any exceptional tactics or strategy skills. He even does stupid mistakes like leaving critically important black hole system undefended. But on average he wins because luck comes in and helps him win, while other players spawn in direst condition in majority of games.
So on average he just gets unfair advantage in majority of games.
What's even worse - is the fact that influence of random is overwhelming in early game, but fades out to medium or late game. So by the time somebody finds him he just have more of everything, and it looks like he just plays better. But in reality it's just consequence of early game luck.
In most of our games his in-game graph of empire strength starts skyrocketing early, while everybody else stays near the floor. There are exceptions but in most cases it's like that. He just wins without any effort, before even being found by anyone (it's already too late by that time).

Solution:
Centralized per-player Luck Corrector should be implemented. Every random event happened must notify it of: 1) influence of event's outcome on game odds 2) the 'statistically average' outcome of this event (the center of worst <---> best range) 3) the actual outcome. Then, Luck Corrector increments or decrements 'luckyness' vatiable of this player based on how much actual outcome was better or worse than average outcome and scaled by significance of event. And all future random events outcome will be moved to better or worse end based on current 'luckyness' variable (then this variable be updated based on new outcome, and so on).
So, if some player was luckier than average in some event - he will be less luckier in next event, and counterwise.
This will make game MUCH more fair for everyone.

User avatar
afwbkbc
Pupating Mass
Posts: 96
Joined: Tue Mar 14, 2017 10:47 am

Re: Luck is overpowered, random-based events must be normali

#2 Post by afwbkbc » Wed Mar 29, 2017 10:18 am

It's not fun to lose one game after another due to theoretically highly unlikely shit happening all the time (i.e.Dyson Forest starting growing over neutral high-tech natives planet, blocking my supply and splitting empire in half, separating industry from shipyard/energy compressor/ muursh, and high-tech natives protecting dyson forest when i tried to attack, and at the same time AI starting attacking my muursh/energy compressor planet which was cut off from industry, I could only build basic hull ships on capital but they needed 8 turns to reach cut off partnof empire, and when I finally cleared that goddamned forest and restored supply - a huge fleet of another player arrived and conquered my muursh planet. Another REAL STORY which led to lost game).
No natives, or some molecular cloud not allowing to clear out maintenance ship, or some random krill swarm destroying important outpost ship - all this happens much more often than it should theoreticalky.
While for some other player it's common to get ugmors, scylior, computronium moon, Mu Ursh and blackhole by turn 60, and his graph skyrockets in 70% of games.
It's just not fair.

defaultuser
Vacuum Dragon
Posts: 573
Joined: Wed Aug 26, 2015 6:15 pm

Re: Luck is overpowered, random-based events must be normali

#3 Post by defaultuser » Wed Mar 29, 2017 5:45 pm

This sounds like metaphysical nonsense. Yeah, sometimes you spawn great, other times not so much. The idea that some people have magic luck (good or bad) is not scientific. Instead of blaming luck or whatever, realize that you shan't suffer floaters or baby Dysons to live. Or you reap the consequences.

User avatar
afwbkbc
Pupating Mass
Posts: 96
Joined: Tue Mar 14, 2017 10:47 am

Re: Luck is overpowered, random-based events must be normali

#4 Post by afwbkbc » Wed Mar 29, 2017 6:04 pm

Nothing magical. Metaphysical, yes. Anything we can't observe is a source of randomness.
Nobody knows how this randomness work. So, nobody knows if there is some 'auto-balancing' trait in it or not.
Nothing forbids luck to better for one player and worse for another (on average).
It's unprovable and even unresearchable.

But, we don't need to research or understand how it works.

We can just make freeorion free of this nonsense by controlling and balancing luck/unluck programmatically.
I see only benefits of it. It will not make anything worse.
you shan't suffer floaters or baby Dysons to live. Or you reap the consequences.
Yeah, but you didn't read or understand my post. Nobody should let them live or play unsafe, but consequences are more frequent for unlucky players than for lucky ones. That's the point. So, lucky players can typically sacrifice safety for faster expansion / advancement, while unlucky can't. That alone places them in highly unfair situation.

User avatar
Krikkitone
Creative Contributor
Posts: 1416
Joined: Sat Sep 13, 2003 6:52 pm

Re: Luck is overpowered, random-based events must be normali

#5 Post by Krikkitone » Wed Mar 29, 2017 6:40 pm

I will agree with one thing...
Luck makes it harder to have a strategy.

The more random variation in the benefit/cost of a choice, the more random and less strategic the cost becomes (ie see floater/baby Dyson.. you must kill it)

Essentially it removes a choice.

Especially if you can't get more information

I can scout to see what systems are around me (go mass colonization/native conquest/tech up to get better access)

But If I see something that has a 2% chance each turn of losing me the game, I have to put all resources into eliminating it.

For some of those it might be better to have them on a counter.

+1 each turn, Their chance of "developing" is X% for every counter over the minimum amount Y

"normalizing" both home system "value" and even slightly that of adjacent systems makes randomness play less of a role.

it should still play some, but too much can be bad.

User avatar
afwbkbc
Pupating Mass
Posts: 96
Joined: Tue Mar 14, 2017 10:47 am

Re: Luck is overpowered, random-based events must be normali

#6 Post by afwbkbc » Wed Mar 29, 2017 8:58 pm

Krikkitone : instead of normalizing individual code parts it's better (and simpler) to implement universal solution by inserting Luck Normalizer object between random generator implementation and anything that needs to do random stuff, so that EVERYTHING that may be influenced by luck goes through it. And every call to get random something will also have to provide Luck Normalizer with significance of event and 'normal' value ( right in the center between worst and best outcome ) of requested range.
Then, every part of code that does random something will need to be rewritten and updated with event significance and 'normal' value values.
After it, it doesn't matter if it's chance of Floater changing into Forest, or chance of nice natives created during map generator - Luck Normalizer will adjust resulting random value based on every players' current 'luckyness' value (which it will update then).
So if one player got extremely lucky on some occasion (determined by significance of event (size of stakes) and difference between 'normal' (average) outcome and outcome he got) - he will have bad luck until his 'luckyness' value returns back to normal (i.e. he may get extremely unlucky the next turn, or just be slightly unlucky in several following events, i.e. krakens' directions will be chosen inconveniently for him, AI's scout happen to discover them (while scouting 'randomly'), etc).

User avatar
Krikkitone
Creative Contributor
Posts: 1416
Joined: Sat Sep 13, 2003 6:52 pm

Re: Luck is overpowered, random-based events must be normali

#7 Post by Krikkitone » Wed Mar 29, 2017 9:39 pm

afwbkbc wrote:Krikkitone : instead of normalizing individual code parts it's better (and simpler) to implement universal solution by inserting Luck Normalizer object between random generator implementation and anything that needs to do random stuff, so that EVERYTHING that may be influenced by luck goes through it. And every call to get random something will also have to provide Luck Normalizer with significance of event and 'normal' value ( right in the center between worst and best outcome ) of requested range.
Then, every part of code that does random something will need to be rewritten and updated with event significance and 'normal' value values.
After it, it doesn't matter if it's chance of Floater changing into Forest, or chance of nice natives created during map generator - Luck Normalizer will adjust resulting random value based on every players' current 'luckyness' value (which it will update then).
So if one player got extremely lucky on some occasion (determined by significance of event (size of stakes) and difference between 'normal' (average) outcome and outcome he got) - he will have bad luck until his 'luckyness' value returns back to normal (i.e. he may get extremely unlucky the next turn, or just be slightly unlucky in several following events, i.e. krakens' directions will be chosen inconveniently for him, AI's scout happen to discover them (while scouting 'randomly'), etc).
That's FAR too complicated.

much simpler to
1. notice things that are very significant & have large luck component (through balancing)
and
2. reduce the random component (or eliminate it altogether... instead of X having 2% chance of happening per turn, have it automatic at 50 turns..or automatic at randomly determined 30-60 turns)

User avatar
afwbkbc
Pupating Mass
Posts: 96
Joined: Tue Mar 14, 2017 10:47 am

Re: Luck is overpowered, random-based events must be normali

#8 Post by afwbkbc » Wed Mar 29, 2017 11:15 pm

That's FAR too complicated.
Nope.
1. notice things that are very significant & have large luck component (through balancing)
Won't help. Too much effort without actually achieving anything. Lucky players are more lucky on average, so they will still get some luck here, some luck there, and these micro-lucks will combine into easy wins.
We need a normalizer that will ensure equal amount of luck on average.
2. reduce the random component (or eliminate it altogether... instead of X having 2% chance of happening per turn, have it automatic at 50 turns..or automatic at randomly determined 30-60 turns)
Less random = more boring game. We need fair random, not less random.

defaultuser
Vacuum Dragon
Posts: 573
Joined: Wed Aug 26, 2015 6:15 pm

Re: Luck is overpowered, random-based events must be normali

#9 Post by defaultuser » Thu Mar 30, 2017 12:02 am

There is no such thing and "lucky" or "unlucky" players. Everyone who plays, including the AIs, will have lucky or unlucky events happen through random chance. Actually bad luck teaches you to be a better player because you have to try to work around the situation. A good player will usually figure a way to win anyway.

I once spawned Egassem with three Inferno worlds in close proximity to the homeworld. That didn't teach me anything. Now, the time I was playing George and had no colonizable worlds anywhere close, so I had to stretch and defend lines far out into a neutral area that was a meeting place for two AIs, then I learned some techniques.

User avatar
Dilvish
AI Lead, Programmer
Posts: 4720
Joined: Sat Sep 22, 2012 6:25 pm

Re: Luck is overpowered, random-based events must be normali

#10 Post by Dilvish » Thu Mar 30, 2017 12:22 am

afwbkbc wrote:Lucky players are more lucky on average... We need a normalizer that will ensure equal amount of luck on average.
I find this idea hilarious -- build a module that will assess the actual game-significance and player benefit of all the RNG rolls, and if some players have too much of a lucky streak then the module will intervene and instead of just relying on the RNG it will just plain Stick It To Them! :lol: :lol: :lol:

And no one else will be willing to try implementing this, so the implementation will be left to you, and then you will have to convince your multiplayer opponents to be willing to play subject to your homebrew "Neutralizer". :lol: :lol:

I would say "Good Luck with That!", but since you self-report as low-luck (or at least not lucky), I think it means that the entire "Luck Neutralizer" idea is simply ruled out as inherently impossible (in my experience, that's how it always goes when you try to influence Lady Luck.)

It really sounds like multiplayer play is not a good situation for you right now, I would highly recommend you play solo games for a while, and as the FreeOrion gods become more familiar with you, and you with them, you may find your luck changing for the better and could then go back to multiplayer.
If I provided any code, scripts or other content here, it's released under GPL 2.0 and CC-BY-SA 3.0

dbenage-cx
Programmer
Posts: 389
Joined: Sun Feb 14, 2016 12:08 am

Re: Luck is overpowered, random-based events must be normali

#11 Post by dbenage-cx » Thu Mar 30, 2017 12:55 am

Some new map shape(s) (or option for the existing shapes) that generate more uniform starting areas would probably be good.
e.g. given any spiral shape, generate an arm per player with minimal specials and place the starting planet in the same general area of the arm.
Any content posted should be considered licensed GNU GPL 2.0 and/or CC-BY-SA 3.0 as appropriate.

User avatar
afwbkbc
Pupating Mass
Posts: 96
Joined: Tue Mar 14, 2017 10:47 am

Re: Luck is overpowered, random-based events must be normali

#12 Post by afwbkbc » Thu Mar 30, 2017 6:55 am

There is no such thing and "lucky" or "unlucky" players. Everyone who plays, including the AIs, will have lucky or unlucky events happen through random chance.
No. As I said, some players are more lucky than others on average. I also didn't believe it for long time, but finally the amount of evidence became overwhelming.
There is no reason to believe luck is perfectly balanced somewhere. I don't speak of freeorion or random generator, I speak of how world works. When we don't see reasons of something - its outcome is 'random' and is thought to be based on 'chance', but some players just get better chances in these cases than others.
A good player will usually figure a way to win anyway.
Yes. But there is a limit of how good unlucky players can influence the game. Luck is overpowered, and lucky players can be less good to win unlucky players that are more good. Again, on average.
build a module that will assess the actual game-significance and player benefit of all the RNG rolls, and if some players have too much of a lucky streak then the module will intervene
Yes, that's the only possible solution here.
just relying on the RNG
When just relying on RNG, any player that gets lucky just gets away with it - the next time he will still have same chances to be lucky as somebody who was extremely unlucky 5 turns in a row. There is no implicit 'auto-balancing' feature anywhere.
so the implementation will be left to you
Yes, I'll try to implement it this week.
to play subject to your homebrew "Neutralizer"
Just a simple 'Luck Correction' option will be added to game lobby, with values like "None", "Light", "Normal", "Extreme". These values will determine how much Luck Normalizer will modify RNG's outcome before returning. If you believe in fairness of the world you will still be able to play with "None" same as before, so nothing will break.
I think it means that the entire "Luck Neutralizer" idea is simply ruled out as inherently impossible
Nope, implementation of Luck Neutralizer does not depend on luck (maybe only for junior programmers which I'm not), so I can do it.
It really sounds like multiplayer play is not a good situation for you right now
Nah, I'm used to compensate lack of luck with skills. Freeorion is, however, too luck-dependent so skills have their limits of influence. After my fix this will become a whole new life.
FreeOrion gods
Well nobody knows for sure how luck is decided. All I know is that luck/unluck ratio is different for different people, both in games and in life. But in games we can at least normalize it.

User avatar
afwbkbc
Pupating Mass
Posts: 96
Joined: Tue Mar 14, 2017 10:47 am

Re: Luck is overpowered, random-based events must be normali

#13 Post by afwbkbc » Thu Mar 30, 2017 8:18 am

dbenage-cx wrote:Some new map shape(s) (or option for the existing shapes) that generate more uniform starting areas would probably be good.
e.g. given any spiral shape, generate an arm per player with minimal specials and place the starting planet in the same general area of the arm.
Nope, it won't eliminate unfairness and also will make game more boring. Less random = more boring, at least one random event = possible unfairness. Every RNG call must be intercepted and altered by Luck Normalizer, or lucky players will have possible game-winning luck chances.

User avatar
Vezzra
Release Manager, Design
Posts: 4674
Joined: Wed Nov 16, 2011 12:56 pm
Location: Sol III

Re: Luck is overpowered, random-based events must be normali

#14 Post by Vezzra » Thu Mar 30, 2017 9:07 am

I... am rendered utterly speechless... :shock:

User avatar
Gargamel
Space Floater
Posts: 33
Joined: Tue Feb 22, 2011 4:54 am

Re: Luck is overpowered, random-based events must be normali

#15 Post by Gargamel » Thu Mar 30, 2017 10:13 am

afwbkbc wrote:
There is no such thing and "lucky" or "unlucky" players. Everyone who plays, including the AIs, will have lucky or unlucky events happen through random chance.
No. As I said, some players are more lucky than others on average. I also didn't believe it for long time, but finally the amount of evidence became overwhelming.
There is no reason to believe luck is perfectly balanced somewhere. I don't speak of freeorion or random generator, I speak of how world works. When we don't see reasons of something - its outcome is 'random' and is thought to be based on 'chance', but some players just get better chances in these cases than others.
So.... you're saying when we're born, somebody rolls some dice, and that's the amount of luck we're given for our life times?

You need to take a look at the concept of variance. And don't say you do, cause you obviously have no idea what you are talking about.

I was a part time professional poker player for a number of years. I didn't make enough to live on, but that wasn't the goal, it was just part time, 10-30 hours a week. It did pay for a number of improvements around the house, a few Caribbean vacations, and some needed car repairs. I made around 12-15k a year from this.

A have (somewhere) all the data from every hand I played. I could show you graphs of my running bad, and then running good. There would be stretches, months at a time, where I was taking a loss. Then there would be other stretches that made up for those losses. But they always reverted to the mean in the long run. When you are counting the number of hands played in 6 or 7 digits, you're definitely approaching the long run.

If I learned anything from my time studying and playing, it is that variance is a bitch.

In the short term, it may look like the world is against you, and none the cards fall your way, but in the long term, it will always, ALWAYS, average out. Some people think they are cursed, and some think they are extra lucky. They aren't, variance will get them in the end.

Luck is a residue of design.
That means that you can make your own "luck". In cards, it means knowing the odds for every play at all times, evaluating all the cards in play, and playing accordingly. In sports betting, it means looking at the odds and making informed, well educated moves against those odds. In the stock market, it means doing your research and positioning yourself to profit the best. Going for a job interview? Practice your interview skills and groom appropriately to increase your odds of getting the job. Crossing the street? Wait for traffic to clear, or be really quick. All of the techniques improve your chances success, and therefore appearing to be lucky.

Now, on topic, maybe the startup engine should be tweaked a bit to balance the starting scenarios a bit better, but that has nothing to do with any one persons luck. Got start 10,000 games (at least), and careful log each starting position you are given. Then have a "lucky" person do it. And then an "unlucky" one. With a big enough data set, which by the way not one player of this game has, you'll see that every player on average was given identical starting conditions.

Post Reply