One Hour One Life cover
One Hour One Life screenshot
Linux PC Steam
Genre: Role-playing (RPG), Simulator, Adventure, Indie

One Hour One Life

Weekly Update #67



New Brothers



I'm back from a very interesting and refreshing trip to Taiwan. Taking time off---and not working on the game at all for a week---is a really important thing to do from time to time.

The variety among the red-headed a black characters has been a little thin for a while. This update adds two more male characters for each, taking the total up to 22 playable characters, currently in four different skin tones (12 males and 10 females) The red-heads and black characters are still missing one female each (to bring them up to six each), but those will be added in the near future.

As the character set has grown, I'm facing a larger and larger creative challenge with each new character that I add. I want them all to look unique, and 22 unique people is already a pretty broad spectrum. I already have a bearded guy... already have a balding guy... already have a mustache guy.... oh wait, I don't have a totally bald guy yet!

Along with the characters, there are a bunch of fixes. I'm still working on those reported issues, bit by bit. Reconnection after a network outtage is now much more robust (before, if the server didn't know you were disconnected, it would block you from reconnecting). Projectile aiming from acute vertical angles was totally broken (the line algorithm that I was using was missing an important case), but it's working now. You can now swap items into full clothing containers (like backpacks). You can't force-break someone's YUM chain by feeding them (getting fed by someone else only helps, but never hurts, your YUM chain).

There's one more big change that I'll describe in a minute, but first a little context.

Over the past few months, I've been tackling several "grand design challenges" in this game. Most of them have now been solved to my satisfaction, but there's one big one left. Those design challenges are:

--The possibility of property as a foundation for social structure, trade, inheritance, and inter-village negotiation.

--Bringing villages closer together in an crunchy way (without having everyone just blend together into one bland mega-city).

--Some reason to care about the survival of each and every one of your offspring.

--The civilization-building arc, from Eve up to the diesel water pump, is challenging and reasonably well-paced. There are many possible failure points along the way, and the challenge is indeed transgenerational. (The pacing might still need tweaking... but it's close enough for now.)

The reason why these design challenges are so important is that, in solving them, we will enable new kinds of intricate emergent stories inside the game. As a simple example, if all property is communal, you never have to ask your neighbor if you can borrow a tool. You just walk up and grab it. The story where you have to ask first is simply more intricate, by one degree. Your neighbor might say no. Then what? Well, you have a bit of drama, that's what. The same goes for caring about offspring. "We were short on food, so my teenage son died. Shrug." That's not a very interesting story. A desperate search for food, to save your teenage son at the last minute, is much more interesting.

The last grand design challenge is this:

--What is the long-term arc of the game? What happens after you hit the top of the tech tree? Does the game vary across a week or a month? Is there a game-wide arc? Do resources run out on a global scale?

This part of the game is currently handled by an ever-expanding Eve placement spiral that forges endlessly into untouched wilderness. We have a perpetual churn of brand new civilizations rising and falling in parallel. But each rise-fall cycle follows the same arc, and happens in relative isolation. Yes, villages can interact, but interaction is optional. There are no pinch-points where they must interact. If you need extra resources, you can always just head into the unexplored hills and find them. If you really run out of resources in your local area, you can migrate into greener pastures. On an infinite map, there is an endless supply of greener pastures.

And you can see how optional village interaction reduces story complexity. "We were out of oil, so we wandered into the hills and found more." That's way less interesting than, "We were out of oil, and we couldn't find any new deposits, but the neighboring village had control over three productive oil wells."

This is the grander-scale version of asking the neighbor if you can borrow a tool. Will they give you some oil? Will they demand something else in trade? Will they answer "no" with a volley of arrows? All of these possibilities are grist for the emergent drama mill.

But currently, there really is no long-term arc in the game. There's a perpetual cycle of parallel civilizations spawning in resource-rich wilderness.

So I'm thinking about changing this. I'm thinking about long-term, world-wide arcs. Arcs that take several days to complete. The most obvious arc is one based on world-wide resources running out. At the start of the arc, the world is green and rich with resources. But as people survive longer and longer in that world, the resources get consumed. Meanwhile, civilizations become more advanced and efficient in their use of the remaining resources. But pinch points and dramatic texture will emerge when one village runs out of a necessary resource first.

The problem with such an arc, of course, is that it's not sustainable. The current implementation is sustainable, though bland. The big question with such an arc is this: what happens at the end? Obviously, there will be some kind of reset at the end of the arc, but what happens in the hours before that reset? Imagine a world where there are almost no resources left, and people are barely surviving. Imagine that you're a brand new player who plays their very first games in such an environment.

Part of this change may involve a finite map. An infinite map, though tantalizing conceptually, means infinite resources.

But this week, as a warm-up exercise, I've patched end of the current civilization arc to eliminate a steady-state once you have a diesel water pump: oil wells now eventually run out.

"We built an oil well, and then had oil forever after that." That's not such an interesting story.

I'll be tackling this issue on a larger scale next week.

Weekly Update #66



More Fixes



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

Weekly Update #65



Genetic Fitness



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.

Weekly Update #64



Murder Mouth



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.



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!

Weekly Update #63



Lots of Fixes



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.

Weekly Update #62



Precious Life



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.

Weekly Update #61



Clutter Be Gone



John Serafin was one heck of an interesting guy. He always had a funny story to tell, or a wisecrack, or a hot take, and always in that amazing Queens accent of his. He was a real character, and he knew it. He always called me a character too, and I knew that I was. How often our friendly verbal fencing matches---as he called them---ended with him shouting, "Jeez, Jason, come on!" in exuberant exasperation. He was unusually tall, but not as tall as me, and it took him years to get over the extra four inches that I had over him.

The first time he met me---me, the man who would eventually marry his only daughter---he approached me with a stern look on his face, and said in a gruff voice, "Who's this guy?" I was frozen for a second, but then he cracked a smile and started laughing. By the end of that first evening, he and I were getting along famously. He was impressed that I was driving a Ford Taurus---that's a dependable car!---instead of a rusted out piece of junk. But that conversation about my Ford Taurus was just the beginning.

Above everything else, John Serafin was a car man. He lived through some interesting times on Long Island back in the day, and he longed for a return to a more elegant era. The old money. The sprawling estates. The hired help. The glistening lights of distant garden parties shimmering across the still evening waters of Long Island Sound. The mystery and romance of it all. But most of all the cars, those glorious cars of his childhood. Cars that his impoverished family didn't even have---just blurs of chrome and metallic fleck paint zooming past him as a small boy in his rough Queens neighborhood. The cars from that era were huge, heavy, and all curves. We get excited about a V6 today, but how about a V8, a V12, or even a V16?

Did I say he was a car man? That was too vague. John Serafin was a Cadillac man. Cadillac was his make and his life-long passion. He eventually realized his dream of owning one of those glistening marvels that was so out of reach during his childhood. Here is his baby, a 1935 Cadillac Fleetwood convertible sedan:



All original parts and paint. Cracking original rubber gaskets around the doors. He claimed it was a one-of-a-kind, a V8 edition in a year when no other V8s were made. When I said these things are heavy, I meant it: a good portion of the framing is made out of solid wood. I got to ride in it. At one point, late in his life, when his legs started to fail him and he could no longer operate the clutch, he even let me drive it. This was indeed a machine from a different era---a time when a trip to the mostly-deserted tip of Long Island on the rustic parkways was a daring adventure, and a time when flat tires were the norm. That is the Long Island we read about in the great novels of the past century.

But he was more than just a car guy. He was the father of my darling wife. He was a grandfather of my three boys. He was my beloved pal and verbal fencing partner---that initially gruff guy who quickly welcomed me, this tall, strange, seemingly unemployed young man who was in love with his daughter, into his family with open arms.

John Serafin, the Long Island Cadillac man, died last night. Goodbye sir, I'm going to miss you.


With that important story told, I'll now turn my attention to the update. It comes to you a day early, because we're catching a plane tomorrow for the funeral. Needless to say, there probably won't be an update next week.

The biggest changes are to storage. Baskets no longer decay. Yes really. I finally caved on that sore point after a whole year of holding the line. Looking through the existing content, I found 67 different bowls of stuff that weren't containable but probably, logically, should be. That's a lot of stuff that used to sit on the ground, but can go in a box now. I've also added a new kind of box, a slot box, that can be used to store 10 small items (instead of four big items like the regular box). Before, the only way to store that many small items in one spot was to nest baskets in boxes, which made the items fiddly to access.

Before this update, there were over 1000 Eves every day, and it was clear that many players were abusing the /DIE feature to ban themselves from all family lines so that they could play as Eve. These "unnecessary Eves" were creating too many families, spreading babies out into too many doomed family lines, and starving the existing, long-running lines of necessary babies. Even worse, with the latest close-together changes, many of these Eves were griefing existing towns---and an Eve has very little to lose.

The effect of /DIE as a baby has been changed, in that it no longer triggers a lineage ban, but instead adds that family to your temporary skip list. Once you've skipped through all families, and there are none left to try, your skip list clears, and you go back to being born through all the same families again. In other words, you can't use /DIE to become Eve anymore. You only become Eve if another Eve is really needed (there are actually no available mothers around to have you).

This cut the number of Eves down by a factor of 10x, which will take a huge bite out of the above problems.

There has also been a problem of growing clutter over time, with everyone close together, and a lack of greener pastures for fresh starts. A new long-term map culling system has been added, where any 100x100 region that hasn't been seen by anyone for at least eight hours slowly goes back to nature, one tile at a time. The only things that survive the ravages of nature are stone walls, which remain in place, with trees regrowing up inside of the outlines of former building. This culling should help to create some greener pastures for new Eves. By the way, this only happens on servers with 15 or more simultaneous players.

Two client-side movement glitches, affecting the movement of other players, have been fixed. Hopefully, rubber-banding when trying to follow someone on a long walk is a thing of the past.

Weekly Update #60



Last Dance



This game was never meant to feature a full-fledged combat system. The protocol was designed to allow movement and actions from hundreds of simultaneous players with as few messages as possible, ensuring logical consistency (two players can't both pick up the same object at the same time and cause the object to duplicate), but not realtime interaction guarantees. In fact, the protocol was design with extreme and variable latency in mind, because I always intended players from around the world to connect to the same server. One of my test cases involves using the tools TC and NETEM to manually insert up to 2.5 seconds of latency for all messages sent to my test server. The game still mostly works, even in those extreme network conditions.

So why is there combat in the game at all, then? Because it's necessary for society to function. How can you have rules or laws if you can't enforce them? How can you enforce anything without, well, using force? So yes, it would be easy enough for me to remove combat from the game entirely---just a few mouse clicks. But then the whole thing would fall apart, and the game would be ruled and ruined by griefers, happily ever after.

As a simple example of an endless annoyance: you set down a tool that you are busy working with, and a griefer grabs it and won't give it back. This is kindergarten stuff, but it graduates to petty or even grand theft in the adult world, and in any case, we solve these issues by adjudicated force, at the end of the day. But let's say we want no violence in our game. How do you deal with the person who took your tool and won't give it back?

A game could "solve" this problem for you---and many games have tried---via a very detailed system of hard-coded privileges and rights and transfer operations, essentially hard-wiring a legal system into the fabric of the game itself. Your tool would have an owner list, and that other player couldn't touch that tool unless you added them to the list, and they can't add other people unless you also add them to the admin list. All to just lend someone a tool. If this sounds fiddly and tedious, you're right. We might call such a design a "trust system," but is is anything but, as I will explain in a bit.

Much simpler to let an understanding develop between players---who was using the tool first, when it's acceptable to grab it yourself, and when you should ask first---and give the player the power of force-in-numbers (in other words, law) if that understanding is repeatedly violated. If you say, "Don't plant wheat here, I'm tilling these rows for milkweed," it's expected that the other person will listen. If they don't listen, you complain to them, and warn them. If they keep on with their violations, you get the backing of the town elders, and you take it to the next level. After all, they can't keep violating the community standards if they're dead. Unvarnished, it sounds barbaric. But that principle is at the beating heart of every functioning society in the real world. The less-barbaric-sounding version is imprisonment or banishment, but even those are carried out at weapon-point, for obvious reasons.

Even without the will of the majority to back you up, you can see how an understanding could develop between two isolated players over time, and how that understanding could blossom into a real sense of trust. Real trust comes from freedom and power: you could hurt me if you wanted to, but you choose not to. If you are powerless, I may not need to worry about you, but that doesn't mean that I develop a trust with you. Two free wolves develop a real trust. Two toothless dogs stuck in neighboring cages have no need for trust. That's why a hard-coded trust system, in the place of powerful and free players, actually squashes trust instead of fostering it.

And that is what One Hour One Life is about, from its very first moments onward. Two strangers trusting each other, sacrificing short-term gain for long-haul mutual benefit. Mother and baby are the basic example. There's no hard-coded guarantee that you won't betray me, but I have your back, and you have mine, and you haven't betrayed me for the past 30 minutes, so even though you're a complete stranger to me, I sense that I'm growing to know you. And just maybe---dare I say it---I'm growing to love you. Because you could kill me, but you choose not to.

All that said, for this to function, we don't need a full-fledged combat system. Violence can be a logical operation, or at least it should be, and was meant to be, in this game. If I choose to kill you, I should be able to do that without any execution skill required, and regardless of network latency and so on.

Which brings us to that infamous dancing griefer. Because the movement protocol is not a realtime one, it was possible to exploit it to make yourself nearly impossible to kill. The server essentially had no "sync points" between players in the system until the players landed at the end of their movement. Okay, the player's movement just ended, and we know where the player is standing, for real, and all clients and server agree about that. Now they can execute an action on an neighboring tile. Mid-move, due to variable latency, all bets are off about where a player actually is on each client screen. Griefers could exploit this by moving continuously.

Even if the protocol didn't work this way, a moving target is still way harder to click. And what happens if you misclick? Well, you just right clicked on the ground, which means you just dropped your weapon. Trying to finally hit a dancing griefer was an absolute click-fest of frustration. So even if the town elders have collectively agreed that this person needs to go, they had trouble carrying out their decision. And the griefer, who could sneak up on an unsuspecting person who wasn't busy dancing, would get the jump on each victim and be able to land the kill.

This update changes the semantics of the client KILL action.

It used to be an isolated action that would either succeed or fail depending on where you clicked and whether the server believed that the person was actually there and in range.

Now KILL is a state, not an action, and SHIFT-right-click puts you into that state, with essentially a death warrant for whoever was closest to your mouse when you clicked. You get a forced-ANGRY face when you're in this state, and you can still move around freely. But if you ever cross paths with your target server-side, so that the target of your request is in range of your weapon, the kill action is executed instantly.

This comes as close to a logical operation as we're ever going to get, while still preserving the effects of weapons with different ranges. If you kill-target someone with your bow who is in a locked room, and you stand by the door, the arrow will fire instantly as soon as the door is opened. If you target someone outside the gate with your sword, and then stand by the gate, you will attack them instantly the moment they walk through the choke point.

You can cancel this state by putting your weapon away momentarily, and your angry face will return to normal. The face also gives the target some warning about your intentions---and of course, it can be bluffed with the usual angry emote.

This is a pretty big change, and it will dramatically change town griefing dynamics. But there are some other big changes beyond that.

The temperature system in buildings has been improved again. Now the heat simulation map is 13x13 instead of 8x8, allowing larger buildings to function as insulated spaces. Furthermore, an enclosed building acts as a direct temperature bonus on its own, and also doubles the effectiveness of the clothing that you're wearing. So buildings do more than just hold in the heat of a fire. The best way to think about it is that they reduce some kind of inherent wind chill in cold areas of the world. But for this to work, you have to be completely indoors, which means walls on all sides and corners, along with a full floor, and along with a closed door. If the door stays open too long, the wind will blow in, making you colder slowly over time.

The way last names are passed down to babies, especially in the case of a generation gap where no name is given, has been standardized. This should fix the lost-family-name bug.

Laying tracks for rail carts is now a lot cheaper---one kit can lay six tracks instead of just one. Gates can be built across roads again, and unused property twig bundles decay away quickly, so you don't need to spend time cleaning them up. You can finally move bowls of sterile pads around---mobile medicine can be a thing now.

Next week, I'll be tackling Eve overload around existing cities, and also the balance between close towns and stripped natural resources.

Weekly Update #59



Language Learning



With the changes put in place last week, which brought distant families together, we're essentially playing a completely different game, with dynamics that we've never had in One Hour One Life before---dynamics, perhaps, that have never been seen in any other game either. There are going to be some growing pains, and some need for balancing.

Learning another family's language is an interesting new part of the game, and it shines a spotlight on age-old philosophical questions. How do we communicate with other people about abstract ideas? It's easy enough to point to something concrete, like a berry or a hammer, and come to a mutual understanding about what words we are going to use to signify this concrete thing. But what about things that we can't point to? Last week, a woman migrated to my village, and she tried to communicate her story of destruction and survivorship. As I tried to repeat these words back to her, it was pretty clear that we weren't making headway at understanding. It wasn't until she wrote her story down on paper, in our shared written language, that I finally understood---and understood the difficulty that we had been having using spoken words for these concepts.

I wanted to enable some kind of accelerated language learning in the game, but I didn't want to undercut the experience of trying to actually learn another language, one word at a time.

In the latest version of the game, accelerated language learning can happen, but only across multiple generations. Your babies have a chance to learn whatever parts of the language that they hear during their childhoods. They pass this partial learning on to their own children, who again have a chance to learn even more of the language during their own childhoods. After you grow up, whatever partial language understanding that you've acquired solidifies, and you carry it with you for the rest of your life. The result is almost like an accent that fades gradually over multiple generations.

And children and grand children, who have had more exposure to the foreign language, can serve as translators to the adults around them.

I've always been interested in the gap of understanding and communication between individuals---that's been a thread running throughout my work---and I've even made whole games specifically about that concept in the past. But this almost seems like the best exploration of that idea yet, and just as one tiny part of a much larger game. Thanks go to forum member Spiegel for planting the seed idea in the first place---that different families could potentially have different languages.

Beyond that, the sword has been rebalanced, Eve spawns have been tweaked, and baby bones for /DIE babies now decay away very quickly.

Weekly Update #58



Come Together



The Eve spawning algorithm has been changed from an ever-growing spiral to a dense grid packing, based on used natural spring sites. That means that towns are much closer together than they used to be. Walk in a cardinal direction from your town well for a bit, and you're bound to encounter other settlements.

But that doesn't mean civilization will turn into one giant, sprawling mush. Just as I've brought you all together, I've also added a few other things to help you maintain some separation. You're not building that tower to heaven together quite yet.