jasonrohrer / OneLife

a multiplayer survival game of parenting and civilization building
http://onehouronelife.com
Other
1.01k stars 282 forks source link

Something strange is going on in donkey town #967

Closed TheMingo888 closed 11 months ago

TheMingo888 commented 11 months ago

Since the last update, apparently those arriving in donkey town aren't getting the "WELCOME TO DONKEYTOWN" ping message. Moreover, some people being born to mothers in donkey town should obviously not be there, since nobody that has them cursed is online.

w0wma commented 11 months ago

There is also no cursenames hovering above our heads-- so definitely not people who would usually spawn in Donkey Town.

cordy-123 commented 11 months ago

TL;DR

The game is treating DT families as "regular" families.

NON-DT deserving players are spawning in as CHILDREN of DT eves.

Looks like they are NOT spawning as DT eves themselves, only as children of DT eves.

It is NOT specific to the desert fam.

The bug is NOT specific to new players only. (Only 2 of the last week's update are likely to be connected to the bug. One regarding new players https://github.com/jasonrohrer/OneLife/commit/3947020c554e920dd74f8d6a9ef2fe79d4d86f37. And one connected to birth cooldown https://github.com/jasonrohrer/OneLife/commit/472d5da25aabf1c72f0fe44dce5ea5441c36b9c3. Technically, it could be the other updates regarding items.)

See posts below for proof.

cordy-123 commented 11 months ago

The game started treating DT families as real families.

NON-DT deserving players are spawning in as CHILDREN of DT eves.

(From a quick look, it looks like they are NOT spawning as DT Eves themselves. But they could be. I didn't look that hard. Too many cross-checking of DT eves vs curse scores vs if the players that have them cursed were online, etc.)


Circumstantial proof that NON-DT deserving players are ONLY spawning as CHILDREN of DT Eves.

For 3 hours 54 minutes from unix 1697846472 to 1697860535,

Only 2 DT eves spawned.

NO other DT eves spawned.

Nor did any non-DT deserving players spawn as children of DT Eves, as both DT Eves died pretty much immediately after spawning in DT.

One of the DT eves was Shady.

During that time, population remained high (well above 29 mark for low pop).


This greatly indicates that non-DT deserving players can only spawn as children of DT eves.


Source: http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_bigserver2.onehouronelife.com/2023_10October_21_Saturday.txt


cordy-123 commented 11 months ago

Proof that the game is treating DT families as regular families:


Source: http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_bigserver2.onehouronelife.com/2023_10October_21_Saturday.txt


For 1 hour 12 minutes, the game didn't spawn any desert person (race=A) in regular spawn even if the population was above 30.

Start: B 1697863195 6732259 b6930f32af2f850b1c586fba59b88b7a420ee4c6 F (-200501969,-274) parent=6732196 pop=46 chain=3 race=A

End: D 1697867523 6732304 03fe3bc3c3674bce5cc470503d5e86c6c7c50f49 age=44.08 F (-501709,-109) hunger pop=29 (Server goes into low pop, no regular eve can spawn in until pop goes into 40.)

----> Since it considered the DT family as a "regular" family, no "regular" desert eve spawned.


Once again after pop reached 40, for 1 hour 17 minutes, there were still no desert eves or people spawning in the regular play area.

Start: B 1697869239 6732418 eb3378bc07d9b326d8ea5b806cf68a0bd8a83d9c F (-200501949,-272) parent=6732371 pop=40 chain=3 race=A

End: B 1697874486 6732534 982fb141e4dc9d0de30aa5197ab8bdc9d7ea5336 F (-200501965,-283) parent=6732499 pop=27 chain=7 race=A

----> Since it considered the DT family as a "regular" family, no "regular" desert eve spawned.


After that, life logs stopped updating for the day.

cordy-123 commented 11 months ago

After a July 2023 update, you can no longer gain gene score from DT players.

"No genetic fitness information logged for Donkeytown players. Fixes #874" https://github.com/jasonrohrer/OneLife/commit/f1c1f538ec8956bb96067aa638580376a758d142


From what I saw from Shady's leaderboard, her children gave her gene score even if they were spawning in DT.

This is further proof that the game was recognizing DT families as "regular" families.


As you can see from a screenshot of a part of Shady's leaderboard, she is earning/losing score from her children:

image

Proof her children spawned in DT:

6732196 CATINE B 1697861454 6732196 6a96a2573dc4722bfb1ec2e723b93528cd1b6713 F (-200501962,-275) parent=6732186 pop=48 chain=2 race=A

6732206 ANNIES B 1697861660 6732206 6c6aa994cf066a22dc5ad753b69d21e30858ec8a F (-200501958,-277) parent=6732186 pop=48 chain=2 race=A

6732222 JANIE B 1697861922 6732222 f8c38f673738241e5eb6e4c4be6a90e0c46f67d7 F (-200501952,-281) parent=6732186 pop=50 chain=2 race=A

Fam tree link for the DT fam: http://lineage.onehouronelife.com/server.php?action=character_page&id=9856022

Source: http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_bigserver2.onehouronelife.com/2023_10October_21_Saturday.txt http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_bigserver2.onehouronelife.com/2023_10October_21_Saturday_names.txt

cordy-123 commented 11 months ago

Proof of a NON-DT deserving player ending up as a child of a DT family:

hash 6a96a2573dc4722bfb1ec2e723b93528cd1b6713 spawned in DT as a child of a DT eve even if they had a Curse Score of 0.

B 1697861454 6732196 6a96a2573dc4722bfb1ec2e723b93528cd1b6713 F (-200501962,-275) parent=6732186 pop=48 chain=2 race=A Source: http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_bigserver2.onehouronelife.com/2023_10October_21_Saturday.txt


But as you can see from the day before they had a Curse Score of 0 and they did not get any curses the rest of the day. S 1697763470 6a96a2573dc4722bfb1ec2e723b93528cd1b6713 0 Source: http://publicdata.onehouronelife.com/publicLifeLogData/curseLog_bigserver2.onehouronelife.com/2023_10October_20_Friday.txt

And the next day, they were not cursed. Source: http://publicdata.onehouronelife.com/publicLifeLogData/curseLog_bigserver2.onehouronelife.com/2023_10October_21_Saturday.txt


So they shouldn't have spawned in DT.

cordy-123 commented 11 months ago

There is also no cursenames hovering above our heads-- so definitely not people who would usually spawn in Donkey Town.

After a July 2023 update, you can no longer see people's Curse Names in DT.

"Donkeytown players are never sent CU status messages (CURSES), so they can't identfy each other using globally-assigned curse status words. Fixes #873" https://github.com/jasonrohrer/OneLife/commit/2d295de82924a457c6ae63b0d338a06d64d33aa8

In response to this github issue https://github.com/jasonrohrer/OneLife/issues/873.

Hopie-OHOL commented 11 months ago

8D4197E8-076F-4901-9424-3DA9503DC7B3 Adding to this per Phoenix— the entire black fam is currently in DT. So regular families have no way to get sulfur, meaning all regular families will die out and cause rapid west spawning. BS2 population is currently 53, so biome locking is still enabled.

Edit: there are currently 3 black families in donkeytown and no black families in normaltown. So one black fam dying wouldn’t force a normal black Eve spawn.

cordy-123 commented 11 months ago

The bug is NOT SPECIFIC TO THE BLACK FAM.

The bug is NOT SPECIFIC TO NEW PLAYERS.


hash 72da7ec5693ed178063f55e116c1db507a9ab6fd

has a curse score of 0.

And is an old player from 2020 or before.

They spawned as a child of a DT eve as race=D which the language fam.

This bug instance happened 2 minutes after bs2 server got reactivated after the latest's update.


B 1697833355 6731205 8a9a18ae0e0b2e4efa0195f4b4f5f16fd614be5f F (-200501161,-53) noParent pop=8 chain=1 race=D B 1697833358 6731206 72da7ec5693ed178063f55e116c1db507a9ab6fd F (-200501157,-51) parent=6731205 pop=9 chain=2 race=D

Source: http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_bigserver2.onehouronelife.com/2023_10October_20_Friday.txt


As you can see the hash has a Curse Score of 0 S 1697845926 72da7ec5693ed178063f55e116c1db507a9ab6fd 0

Source: http://publicdata.onehouronelife.com/publicLifeLogData/curseLog_bigserver2.onehouronelife.com/2023_10October_20_Friday.txt

jasonrohrer commented 11 months ago

So weird that this suddenly cropped up now. I'm assuming that one of the new changes this week is to blame.

jasonrohrer commented 11 months ago

I'm guessing it was because birth cooldowns were set to 0 by accident before, and that meant no mothers were on birth cooldown, ever. So this must have been covering up some other bug.

jasonrohrer commented 11 months ago

Yeah, wow, there's a major bug in here... d-town people weren't being marked as actually cursed.

This means that they were being counted as experts, and they qualified to balance the races, etc.

This was apparently covered up pretty well by birth cooldowns being forced to 0.

Kaden56 commented 11 months ago

That answers the race part. But what about ppl who are being born to dt mothers? How is that happenening unless you're cursed to dt. And why does the game think dt is the normal game?

jasonrohrer commented 11 months ago

Yeah, turns out there was a very old bug that never was noticed, where when we send someone to Donkeytown (because some mothers have them cursed, and there are no available mothers for them), we weren't actually setting their curseStatus to 1. So the other places in the code where this matters weren't being triggered. For example, these mothers in D-town weren't being seen as off-limits for ordinary players.

This was covered up by birth cooldowns being 0, because there are way more mothers outside D-town than in, generally, and if they can all have loads of babies with no cooldown, most people will be born outside D-town. A few will be mistakenly born in D-town, but not enough to notice.

But now that birth cooldowns are back on, most mothers are on cooldown, so the babies are spread more evenly... or something.

But anyway, D-town people were always being counted as experts, etc... but they were generally not the closest ones, so it didn't matter.

I think what happened might have been the perfect storm, where someone was in D-town, fulfilling one of the necessary races, and they started getting babies.

We'll see if this change fixes things.

cordy-123 commented 11 months ago

The fix worked as far as I can tell.


After the restart of bs2 at unix 1697938411, for 6 hours plus (until lifelogs updated),

NO non-DT players spawned in Donkey Town.

Only 2 players spawned in DT, one has over 130 curses and the other account has over 40 curses.

One of them spawned in as a child of a DT eve, so that confirms that DT players CAN STILL SPAWN in as Donkey CHILDREN.


B 1697947791 6735405 22bc17c44bb8fd2648e7306b70a21f19436ad400 F (-200502232,120) noParent pop=53 chain=1 race=D

B 1697947840 6735407 901f8a2980ac03bda7a303f33e5b39fdafe0275c F (-200502231,142) parent=6735405 pop=54 chain=2 race=D


Source: http://publicdata.onehouronelife.com/publicLifeLogData/lifeLog_bigserver2.onehouronelife.com/2023_10October_22_Sunday.txt

jasonrohrer commented 11 months ago

Yes, I did some more testing today on my test server, and the old code sent non-cursed BB to d-town (if other mothers were on cool-down). New fixed code does not do this.

It's pretty hilarious having SEVEN tiny OHOL client windows open on one screen in order to test this.