Update: The Posse September 28, 2019
The big changes this week focused mostly on griefing and long-term family preservation. The most recent arc lasted 67 hours, which is much better than before, but we're still not there yet. Ideally, an arc would last 5-7 days, to the point where we hit an interesting resource-exhaustion situation. The arc ends when there's only one family left, and families were lasting longer, but still dying out too quickly.
After looking at the data, it became clear that very few people were ever going to Donkeytown, even though there were plenty of curses being doled out. In fact, the most widely-cursed player had accumulated curses from 104 people, and even that extreme outlier barely went to Donkeytown. The fixed-radius blocking associated with curses---where someone you cursed is guaranteed to be born far away from you for the next seven days, wasn't working. Even if many of the living players had an incoming player cursed, their blocking radii wouldn't cover enough of the map. There could always be a crack for a heavily cursed player to slip through.
And it was clear that some of these griefing players were actively trying to kill off families to bring the arc to a swift end.
Now the blocking radius for a cursed player grows depending on how many living players have that incoming player cursed, growing by 100 tiles for each additional cursing player. If you try to get born during a time when 10 living players have you cursed, your blocked radius will cover the entire diagonal diameter of the rift, meaning that it's impossible for you to get born there, and you go straight to Donkeytown. However, as the number of living players who have cursed you rises, it becomes gradually harder and harder for you to get born in the rift, as you are pushed further and further away from more and more people. Thus, the more you bother people, the more likely you will be to end up far away from people or even in Donkeytown.
As an example, a recent sample showed that 13 living players had cursed that most-cursed player (the one with 104 curses). That player has gotten to the point where they will almost always be born in Donkeytown. They've bothered enough people that, day and night, there are always a bunch of bothered people online in the game at the same time.
Next, I took another look at killing, and how it gives lone griefers an advantage as they sneak around and pick people off. You now get a 3-second warning when someone targets you before they can actually kill you, and their murder-mouth sounds have a visual indicator when they are off-screen. Your character also shows a SHOCK face while they are targeted. So you can see them coming, with plenty of warning. Still, depending on how skillfully you move relative to them, they might be able to catch up to you. Furthermore, a lone griefer, using skilled movements, can often evade a determined group of players. This never felt right. The group should have a huge advantage over an individual, and a lone griefer shouldn't be able to get the jump on anyone.
The solution to this problem is the new posse movement system. If you're trying to kill someone, acting alone, you move slower than normal. If you join up with a larger and larger group, all targeting the same person, you move faster and faster as a group.
All of these changes make unilateral killing much harder. Your victim gets plenty of warning, and you can't catch them. However, a lone individual can still guard a choke-point or area, preventing anyone from passing through. Lone guards are good. Lone killers are bad. On the other hand, it is also much harder for a lone griefer to escape from a determined group, because the group speeds up. When the whole village decides that you need to go, they should be able to carry out justice without too much mucking around.
But even with these changes in place, I'm still worried about families dying out too quickly. Maybe flukes of baby distribution are still contributing factors. I decided to redo the baby algorithm yet again, this time always giving incoming babies to the family with the fewest fertile females after the Eve window closes. It used to be round-robin, but that kind of even distribution might not be enough to keep a struggling family alive. And so far, it seems to be working. Here's the family graph for three hours from the latest arc:
Oh, and one more really cool thing: you can now build boxes on property fences. They allow you to store things there, thus conserving space, but they also serve as pass-through channels, allowing you to pass stuff in and out of a fenced area without opening the gate.
Specialized work units are now possible. Get ready to apply those time and motion studies!
| Update: End Trigger September 20, 2019
Another week of glorious bug fixes. The list is still pretty long, but I made a dent in it.
Over the past few weeks, I've been watching the server-wide arcs rise and fall. More recently, the arcs have been getting shorter and shorter. The arc currently ends when there's only one family left, and families have been dying out very quickly.
For example, here's the family population graph of a recent arc:
Total server population is on the Y axis, and each family's portion of that total is represented by how thick their color band is. For example, the forest-green band represents the Kelderman family, which got thin after about an hour and a half, and then made a bit of a comeback after that before finally dying out. But what actually happened to the Keldermans? To help us answer this, let's take a look at Wondible's amazing family tree visualizer:
https://wondible.com/ohol-family-trees/#server_id=17&epoch=2&playerid=2076067
Some of their fate was player-driven, and that's fine. In fact, that's partially the point of an arc end condition: to put the fate of the server into the hands of the players. But we can also see a lot of rectangles at the end of their family tree. Rectangles are boys that cannot have babies themselves. Thus, it's possible for a family to die out simply due to a random fluke of genetics.
While this may be true in real life too, and is somewhat interesting, over the long haul, this particular fate is likely to befall every family eventually. When an assortment of families is what's keep the arc from ending, this kind of randomized attrition doesn't feel right, because it's completely outside the realm of player control.
So, among loads of fixes and improvements this week, I adjusted the gender distribution algorithm to force girl babies if a given family has less that three potentially fertile females left alive. With this change in place, we'll see how long the arcs last, and what the family population graphs look like, over the next week.
You can see the full list of server-side code fixes in the change log here:
https://github.com/jasonrohrer/OneLife/blob/master/documentation/changeLog.txt
This week's content fixes can be viewed here:
https://github.com/jasonrohrer/OneLifeData7/commits/master
| Update: War Report September 13, 2019
I'm back from PAX West with a bunch of bug fixes and improvements. The arcs have generally been pretty stable during this time, lasting one to four days before we get down to a single family. I'm still not fully satisfied, and I'll be putting a lot more effort into making it even better in the future, but this is a good place to turn my attention to other matters, namely the enormous list of user-reported bugs that have built up. This week, I got through all of the reported and reproducible code bugs. Next week, I'll be tackling the list of content bugs.
The biggest change this week is the war report feature: mousing over someone from another family will now tell you if you're currently at war or at peace with that family. War status changes should also let you know, but what happens if you're born into a war or peace that was declared generations ago? Now you have a way of finding out.
The road-following code was also overhauled, and it now works perfectly in all situations, including diagonal roads that join other roads, double-backs, and so on. If there's a viable road ahead, you will follow it.
Other small fixes:
--Parked horse cart no longer overlaps weirdly with the object to the left
--You can paste text into chat with ctrl-v (requested by a player with brain damage who has trouble typing)
--Single-click set-down on surrounded tiles.
--No more ghost monument locations after an apocalypse.
--Fixed a glitch that allowed children to pick up swords and cars via swapping what they're holding.
| Update: Live from PAX West August 30, 2019
I write to you from rainy Seattle.
If you're at PAX West, please stop by and say hello. I'm in the PAX Rising area, and I've got:
--500 Limited Edition OHOL purchase cards with unique QR codes (on sale for the first time at 25% off for PAX attendees only)
--Mofobert stickers
--Sandara posters
--Diamond Trust of London
The update went out on Wednesday evening, before I left, and it includes several improvements, which I will simply list here:
--Eve window remains open for 8 hours.
--Arc ends if we ever get down below two families.
--The bug causing the apocalypse whiteout to stall has been fixed, so families can easily survive the end of the arc now.
--Fixed a imprecision accumulation in server walk speed code that could potentially allow WASD mods to walk slightly faster.
--You can spend YUM to do hungry work, and you must always have a 5-hunger buffer when doing hungry work (for safety, so you don't starve immediately after).
--After the Eve window closes, babies are distributed to families round-robin, to prevent one family from getting baby starved.
--A new family population log has been added, so I can make nice graphs of families over the arc.
--Pine trees are no longer hungry work (softwood, naturally)
--You can eat carnitas straight.
--You can eat onions and tomatoes straight.
--You can deconstruct the track cart kit.
| Update: What We've Learned August 24, 2019
On the heels of my return from vacation, there will be no gif this week, but there's still an update.
During my vacation, as many of you might recall, the arc wore on an on and on for something like 8 days, and none of the end conditions were triggered. Meanwhile, the space inside the rift became an over-griefed hell-scape. I had to kill that arc manually from vacation, and disabled the rift barrier temporarily until I could return home and tweak things.
So, this week, we take what we've learned from the arc runs so far and tweak a bunch of stuff that needs tweaking. Keep in mind that this game has been live for 18 months at this point, and we just learned about new problems that never mattered too much before. Bears have been in the game for 18 months, and it never mattered that their caves respawned new bears every 24 hours. I didn't even recall that it worked that way. But inside the rift for 8 days, this suddenly mattered. There were hundreds of roaming bears by the end.
The point here is that an infinite map kinda "solves all problems" magically. If something is broken, you can always walk away from it. If something runs out, you can always find more of it further out. I can't even really answer a question like, "Is there too much oil in the game?" How much oil is in the game? An infinite amount. What if I cut the oil spawning rate in half? Then there's still an infinite amount. We have to talk about resource allocation in terms of what's within a reasonable walking distance from a given town. But towns can move and spread over time, so any distance becomes reasonable, given enough time.
I can find answers to questions about a finite map, however. I can cut the oil spawn rate in half, and there will be half as much oil.
The biggest thing we're testing this coming week is a new arc failure condition: when we get down to less than 5 surviving families, the apocalypse happens and a new arc begin. In conjunction with this failure condition, new Eves only spawn for the first 2 hours of the arc. After two hours, the families are fixed, and the arc will last as long as at least 5 of those families last.
The great thing about this failure condition is that it puts the arc end squarely in the hands of the players. Do you want the arc to keep going a bit longer? Then help that struggling family stay afloat.
The other interesting thing is that the arc end does not kill anyone. Every living player survives, which means family lines can outlive the arc. In fact, with these changes, there's nothing stopping a family from living forever.
We're also testing a new curse system. The old, global-tally Donkey Town has been removed and replaced with a personal cursing system that lets you determine, unilaterally, who you no longer want to play the game near. Once you curse someone (you get one token per hour), that person will not be born within 50 tiles of you for the next 48 hours. If someone is cursed by so many people that there's nowhere left for them to get born, then they do go to Donkey Town, but there's no longer a fixed-length sentence there.
Finally, a bunch of little issues that came up during the last long arc have been fixed:
--The default state between families is neutral instead of war. To use war swords, an elder must declare WAR in the target family's language. Elders cannot hold swords themselves, though, blocking solo crusading.
--Cross-family curses can now work without saying it in their language.
--The shortcuts CURSE YOU (closest player) and CURSE MY BABY have been added.
--Babies now keep their family name even if adopted.
--A bunch of things that were blocking and unremoveable (Newcommen towers and looms) have been made deconstructable.
--Chopping all trees, including juniper, is now hungry work.
--Fences now orient themselves relative to other fences automatically. No more ugly fences.
--Wildcard phrases for gate ownership, like MY OFFSPRING OWN THIS (all living children) and MY FAMILY OWNS THIS (all living family).
There will be one more update next week, and then I'm off to show the game at PAX West.
|
|
|