[Home] [Buy] [News] [Family Trees] [Leaderboard] [Photos] [Update Log] [Polls] [Forums] [Tech Tree]
Update: More Fixes
July 6, 2019

https://i.imgur.com/dfXk4VO.gif

Another week spent plowing through the long list of player-submitted bugs and issues. Thank you all for your tireless work in tracking these things down and reporting them to me, and please keep the reports coming.

The biggest gameplay fix is for off-screen murders. You could always hear the off-screen scream, and all sounds in the game are directional, but even with good stereo headphones, there's no way to differentiate north from south. Now certain sounds that occur off-screen produce a visible, directional marker. Currently, this is used only for murder sounds, but it might be expanded to other important sounds in the future.

Next, items can be swapped in full containers, which is a huge convenience improvement.

Finally, a bunch of small fixes. You can now carry sterile pads in the medical apron---it has a separate pocket that expands to keep them isolated from whatever else you're carrying in the main pocket. Rubber trees can be cultivated. Popcorn bowls, and a bunch of other dry bowl items, can be contained. A bunch of more advanced steel items can now be scrapped for recycling, and scrapping is now a two-step process, to prevent the destruction of valuable steel items by accident. Dog aging makes more sense. Threshed wheat piles decay after 30 minutes to reduce clutter. You can no longer build floors and roads on top of existing floors and roads.

There will not be an update next week, because I'm traveling to Taiwan to speak at the Taipei Game Developers Forum:

https://2019.tgdf.tw/en/speakers

When I return, I'll be focusing on getting through the rest of the list of player-submitted bugs and issues, and then adding some new characters.

If you notice anything in the game that's broken or doesn't make sense, please report it. You can report content-related issues here:

https://github.com/jasonrohrer/OneLifeData7/issues

And code-related issues here:

https://github.com/jasonrohrer/OneLife/issues
[Link][14 Comments]






Update: Genetic Fitness
June 29, 2019

https://i.imgur.com/VSaGHmu.gif

The survival of your offspring, and yourself, now matters.

Before, each life was lived in isolation from the rest of your play history, with no thread tying the lives that you lived together. This lack of over-arching meaning had a long list of consequences, contributing to long-standing problems like suicide, griefing, and general listlessness. Furthermore, it tended to undercut some potentially interesting family survival stories. Why would you go to great lengths to save one of your children if your child didn't really matter to you in the long run? But such "great lengths" make for great, dramatic stories.

The Precious Life update helped with this somewhat, because lives were no longer lived in complete isolation from each other---they were all part of a pool of limited lives that you were spending. While this helped to make each individual life you played a bit more tense and precious, it didn't do anything to increase the tension of family survival.

A great deal of discussion has focused on how much players in the game tend to care about the last viable female child born in the village. She is really treated like royalty, and there's no role-playing necessary. All the hard work of the living players depends on her survival. Without her, everything they built will be lost for future generations.

That's great, and it's also kinda magic, because it emerges naturally from other unrelated game mechanics. There aren't "last surviving girl survival points" that are motivating you to care about her. On the other hand, you don't care for her in a way that has anything to do with her specifically. She could be anyone's daughter. As long as some girl survives, that's all you need. Which is also not analogous to why you would care for a daughter in real life (be she the last surviving female or not). Thus, "our work won't be lost" is just as orthogonal a reason to care as points or any other unrelated reason. It's nice that it's an emergent reason in this case, though.

Why do we care so much about the survival of our family in real life? It's apparently due to some pretty abstract underlying genetic reasons, and our actual behavior often matches the underlying genetics to a spooky degree. We would, for example, save a sibling over a cousin, and a sister over a brother, and age would also be factored in (a younger sibling would be saved over an older one), with the results pretty closely approximating genetic relatedness and reproductive potential. But in real life, we just feel the feelings. We don't do this genetic math when we make these decisions.

And in the case of this game, those biological feelings will never come into play. This in-game daughter is not your real daughter, and she never will be. A longer game might allow for more bonding between players, but it would never be actual kinship bonding.

Games are not real.

Thus, as long as we motivate appropriate player behavior---behavior that is congruent with the thematics of the game, I don't think it matters too much how we motivate that behavior. Emergent motivations are nice, but when they aren't possible, abstract motivations are fine.

Genes are abstract and exert a weird influence on behavior in real life.

Genes can thus be represented abstractly and allowed to exert a weird influence in the game. They can be points. Why not?

And thus, why do you care about the survival of your daughter in the game, even if she's not the last girl in the village? Because of the genetic points that she represents.

And there's still some interesting emergence lurking. If you want a high genetic score, the survival of your offspring needs to get pushed to the limit. And what is the best strategy to achieve that? What will be the most successful parent and grandparent strategy in the game? I have no idea! When push comes to shove, the very best players will figure this out. And it's a good and thematically appropriate thing to figure out. They've never had a reason to figure it out, until now. Furthermore, for players who care about their genetic scores, there is never an unimportant moment. Even if they are born to a doomed village, standing there and waiting to die won't be a viable strategy. They will need to ensure their own and their offspring's survival at all costs, even in a doomed village.

That's the underlying design philosophy, but how does it work?

Everyone starts with a genetic score of 0. Every time you or your offspring live a life that is longer than your current genetic score, you score goes up. Every time you or your offspring live a shorter life, your score goes down.

Your score represents what we generally expect in terms of longevity for you and your offspring. If someone dies young, that means our expectation was too high, and vice versa if someone dies older than we expected.

This is somewhat similar to Elo ratings that are used in competitive games like Chess, albeit applied to each player in isolation. The actual formula is very simple, given an offspring or self that lived Y years: newScore = oldScore + (Y - oldScore) / 10

For women, offspring are any direct descendants that were born during your lifetime (generally children, grandchildren, and great grandchildren).

For men, offspring are nieces and nephews (and great, and great great variants) that are born during your lifetime. The so-called "gay uncle hypothesis" is alive and well.

And of course, your own lives count too. And note that baby suicides don't count to pull their mother's scores down, but do count as short lives for those who live them. Thus, for those who really care about their genetic score, survival in all situations is necessary.

Finally, is genetic score just a meaningless number? No, it has a small effect inside the game. Since it tracks family longevity, it gives you a distinct advantage in old age. The higher your genetic score, the fewer hunger bars you lose with aging. With a perfect genetic score of 60, you'll keep your full hunger bar all the way until your last breath.

So if you see a particularly strapping old person running around acting half their age, you'll know what's going on. They're genetically fit.

The leaderboard can be seen here:

http://onehouronelife.com/fitnessServer/server.php?action=show_leaderboard

Everyone is assigned a randomized name for tracking on the leaderboard. Your name can be seen on the GENES screen inside the game, along with a recent history showing changes to your genetic fitness over time.
[Link][19 Comments]






Update: Murder Mouth
June 22, 2019

https://i.imgur.com/dFJ6nlh.png

I do have a 102 fever right now, so I'll keep it brief (gotta go lay down).

This week's update adds one new major feature, sounds associated with the "kill face" that you make when targeting someone for murder. You can hear them when they enter that state, and you can hear them as they come at you. No more griefers sneaking around off-screen and pouncing.

Polls are also in-game and working, but most of you have noticed that already.

The life limit feature has been tweaked a lot. You now get 12 lives max, with one earned every 20 minutes. With the old 60-minute system, unless you lived 60 minutes every time, you'd always see your count going down a bit, and even if you lived 60, the count would stay the same and not rise. Now your count will generally rise as you play, quickly recovering from any short lives you had.

Also, new players no longer have bonus lives. This was confusing for some, and meant that new players saw a number going down and never going up, which is discouraging. Believe it or not, some players were so angry over their confusion that one is threatening me with legal action over this change. Ah, the adventurous life of a solo game dev! Contesting a $20 lawsuit in small claims court is going to be interesting.

So, new players, like everyone else, will generally see their count going up as they play. Good stuff. And yes, this system will continue to be adjusted in the future. As with the curse system, I kinda see it as a place-holder solution until the heart of the game is adjusted in other ways to make it an unnecessary feature.

A few bugs have been fixed, and there's a major quality-of-life improvement with building stakes. The floor stakes are the first transition (duh, you build O(N^2) floors for every O(N) walls), not to mention the tedium of building long roads. Also, there's always a common stake in the middle as the other stakes move around, meaning you can keep your mouse in the center when cycling through (instead of the hitbox changing entirely with each click).

I spent a good portion of the week on deep design work, thinking about this core problem: how can you really CARE about the survival of your immediate family members? In real life, you'd do anything to save your child or grandchild. In this game, you just kinda shrug and move on. This reduces the potential variety of family-based stories.

The current idea is to add a kind of genetic score to the game, attached to your account, based on the weighted success of your most-recent in-game relatives. They'll be weighted geometrically by birth time, meaning that the success of your youngest grandchild will be worth more than your oldest child (just like real life, where the littlest ones always are the priority, for good reason). Men will base this on the success of their nieces and nephews (the gay uncle gene), and of course your own success will count too. (Success means longevity, by the way.)

There will be a ranking for these genetic scores, so you'll be able to compare with others, and there will also be an in-game bonus for high scores. Currently, the idea (proposed by forum-member Wondible) is that the degradation of your old-age food bar is reduced (hey, you got good genes!). If you manage a perfect score (close to impossible), your food bar will remain at peak capacity all the way until you die. It will be strictly a bonus, and won't negatively affect anyone who gets a low score (the normal age-based capacity degradation will still happen).

Here's a little graph of possible weightings that each sum to 1, where X=0 is your most recently born relative (grandchild or whatever), and X=10 is your 11th most recently born, etc. By varying the severity of this curve, we can control how much more you care about the youngest members of your family.

https://i.imgur.com/TJ4qlYd.png

I'm currently leaning toward the red (middle) curve.

Your mother and grandmother will count a bit too (but less, because they were born so long ago), so there's a mutual benefit effect to helping each other survive.

Now I'm off to bed. Well, actually, my kids are waiting to watch Porco Rosso tonight. Nothing like anime on a high fever!
[Link][17 Comments]






Update: Lots of Fixes
June 14, 2019

https://i.imgur.com/1PJOWRD.gif

An update like this is long overdue. Thanks to all of you for reporting everything you reported. As a result, a pretty long list of issues had built up. This week, I got through all of the known and reproducible issues affecting the game engine and code. A few bigger fixes are worth mentioning specifically. If you've ever seen a "ghost" player standing there, aging, who no one else can see, the source of that problem has finally been found and fixed (it was caused by someone passing through your area, going at least 64 tiles in one go without ever stopping their walk). The issue with animals and other movable items not respawning when nature reclaims an area has been fixed. And most importantly, a server message overload that was triggered when you targeted a family member with a sword has been fixed. That overload was so extreme that it caused nearby clients to get bogged down and disconnect. A full list of the changes can be seen here:

https://github.com/jasonrohrer/OneLife/blob/master/documentation/changeLog.txt

Next week, I'll be focused on fixing all of the known content issues. Again, a lot have piled up (118, currently).

As always, if you find an issue with the game engine or code, please report it here:

https://github.com/jasonrohrer/OneLife/issues

And if you find an issue with the game content (like a missing transition, or something not containable that should be), please report it here:

https://github.com/jasonrohrer/OneLifeData7/issues

There have been a lot of huge changes to the structure of the game over the past month, so this is a good place to take a step back and let the game breath a bit with these big changes while I focus on fixing reported issues.
[Link][4 Comments]






Update: Precious Life
June 8, 2019

https://i.imgur.com/QGJZHmi.gif

Life has been cheap in the game for a very long time. It always bugged me. Death is inevitably going to be somewhat meaningless, but it was a bit too meaningless. Yes, in any game where there's reincarnation, players are going to leverage that to achieve various goals. However, there should still be some trade-offs and difficult choices involved. Infinite and free is boring, because it makes you not need to decide.

The original concept for this game was actually One Dollar One Hour One Life, and that would have dealt with this problem quite squarely, while also committing commercial suicide in the process. I've also toyed with only allowing one life per player per hour, but that also seems too extreme.

There's a wide spectrum between those extreme options and life being completely free/infinite, though. It needs to have some cost, so you feel the pain of death a bit more, and so you at least have a more interesting choice to make when you choose death on purpose in order to get born into a different life. The solution is to only give you one life per hour, but let the lives build up over time, so that you have a buffer.

These numbers will be adjusted in the future, but currently, you start with 24 lives, and you earn one new life every hour whenever you dip below 12 lives. You earn lives this way day or night, whether you are playing or not. Most people will build back up to a full bank of 12 lives every night while they're sleeping. You start with 24 to give brand new players some cushion as they learn the game.

It's amazing how many of the long-term problems in the game are in some way related to life being too cheap. From griefing, to baby suicide, to too many Eves. We've tried a lot of laser-focused solutions to these specific problems, but the over-arching problem of cheap life remained.

To accompany this change, the lineage/area ban on /DIE is back, mother birth cooldown has been restored to the way it used to be, and the Eve spiral is back, replacing the newer Eve grid placement. The spiral now works along with the ancient map culling, resetting back to the center of the map once it has been reclaimed by nature, so Eves will come closer together periodically, instead of just once a week when the servers restart. Finally, roads, along with stone walls, are not reclaimed by nature, so you can build long-term routes across the map, even as civilizations die out along those routes. This should help distant villages continue to find each other over time.

And snowballs no longer make you drop what you are holding.
[Link][57 Comments]






[Next]
[Home] [Buy] [Wiki] [Food Stats] [Fail Stats] [Artwork] [Credits]