a multiplayer game of parenting and civilization building
You are not logged in.
Who dares disturb my rest?
most of that stuff is virtue signalling, which I think routes its way back to the gonads eventually.
Really, I think you're missing a significant component of human nature by
trying to reduce everything to a direct procreational drive (or drive to
advance the interests of close family). Some more clear human behaviours which
are difficult to explain that way: celibate religious orders; post-menopausal
women doing work of social benefit without proportional financial recompense;
laboratory tests of anonymous altruism, in which people act fairly towards
anonymous others at cost to themselves, even if their actions can't be
observed by the experimenter (there seems to be a small literature
on this). More generally, it's a basic fact that people have a tendency to
co-operate with strangers and treat them fairly. That's a product of evolution
of course, but that doesn't mean it comes down so directly to procreation.
See also this nice old Monbiot article:
https://www.theguardian.com/commentisfr … ently-good
EDIT: another super-clear example: bittorrenters can choose to leech, but many
(I expect most) set a reasonably generous share ratio. Explain that with your
gonads!
In real life, people build up society for one other reason that doesn't
directly benefit their offspring: to bolster their reputation and thus attract
high quality mates.
I think you're rather oversimplifying there. Human brains are complicated, and
people often have motivations which don't agree with those of their genes.
Anonymous altruism exists. Free software contributions are often purely
pseudonymous. Those taking our ecological crises seriously are foreswearing
procreation, because they value civilisation enough that they consider
increasing the pressures pushing it towards collapse to be too high a price to
pay for furthering their particular genetic lines. Anonymous whistleblowers
act to prevent social harms while actively avoiding their actions being linked
to their identity.
Obviously this is a frivolous reaction to something utterly serious, but...
https://www.theguardian.com/environment … port-warns
"Just three Chinese giant softshell turtles are known to survive and all are male."
We know that feeling, right?
Or at least, a drastically diluted form of it.
(ERRATUM: sadly I must let the truth get in the way of the story, and note
that the Grauniad appears not to have read the source it quotes -- one of the
turtles is female, she just isn't producing viable offspring. I guess we know
that feeling too.)
Relatedness isn't the only factor. Their breeding potential matters too, in a
complex calculus that I don't fully understand.
Yes. Giving points for all relations takes this into account to an extent, but
it's skewed versus reality because it scores even those branches which die
out, which are worthless from an evolutionary perspective.
What would really make sense is to evaluate the score for a life at a
particular time as the sum of the relatedness of the *living* relations. But
that wouldn't work for a long-term leaderboard.
your sibling has an unknown relatedness (between 2% and 100%, average roughly
25%
If it's a full sibling and I'm not horribly mistaken, the relatedness should
be 50% (assuming no further knowledge, like gender or agreeableness).
ANYWAY, even if I do just relatedness and forget about age, I feel like I
still need to at least show the weighting numbers to people.
Maybe just as an optional "detailed tally" explaining how the score was
calculated? I'm not sure it needs to be presented in-game.
I see you want to be able to tune players' motivations, but I worry using
these arbitrary weightings would be difficult for players to learn. If you use
the actual relatedness (as in the formula used at
http://onehouronelife.com/forums/viewtopic.php?id=6804 ), you don't need to
teach the players the mechanic -- because a billion or two years of eukaryotic
evolution have done it for you.
My first thought was to score a relation's life as
relatedness * max(0, (age - 20)/40)
so their life starts to count at age 20, and only counts fully if they die
from old age. But I decided that was overly complicated and fiddly, so went
for an single age at which a life counts as a success.
To decide on a number, I divided the height of the pyramid of Khufu by the
cube of its basal area, added the ratio of the longest and shortest planetary
orbits, multiplied by the extent to which the above has any relevance, added
the meaning of life, and subtracted the standard number of bollocks.
As for whether making it to 40 really means you win (in real life too), I'll
leave that open for discussion.
Ever wanted to know how well you did in a life in cold numerical terms?
For whatever reason, I thought it would be amusing to write a tool to do just
that. So I did. It, and an explanation of the calculation, can be found here:
https://gitlab.com/_zed_/OneLife/tree/m … scoreLife/
This is a quick hack rather than anything serious. Do with it as you will.
Some of the worst attacks I encountered were on usenet back in the 90s.
There were trolls, but then there were killfiles. At least on the groups I
used to frequent, most posters were sensible and respectful. Possibly this is
due my memories tinting rosily with age...
Re the contrast with TCD: It's quite ironic, given that (roughly speaking) TCD
was a game about hurting people while OHOL is a game about helping people.
I like reading Rohrer's posts on the way he makes game decisions,
but the emotional sewage I have to wade through to get to that.. is it worth
it?
I know what you mean. Here's how to sidestep the sewage:
https://onehouronelife.com/forums/searc … &user_id=2
Sounds nice... maybe it's time to add oxen?
You do get a lot of flexibility by having a separate object for the raw
resource -- you can decide in advance how much you want to be available,
inject randomness as you wish, and let different technologies exploit
different amounts of it at different rates.
More generally, movement transitions seem to allow a lot of richness in the
engine. I can imagine one possible path for the game involving letting players
exploit that richness, designing and building intricate multi-tile machines.
Just like with electricity in TCD, it can be turing complete if you ignore
size restrictions (e.g. it looks like you could implement Conway's Game of
Life using movement transitions), so there could be a lot of room for player
ingenuity. I'm not at all sure this would be a good direction for the game...
but it's interesting that it's possible!
jason: did you see the movement transitions solution I suggested in the
"methods of reducing variants" thread? It does seem like a neater solution to
spreading the information across two objects.
Could you use movement transitions for this?
So one cell north of each springhead you have an object representing the
aquifer. This has "uses" representing the amount of water left in the aquifer.
On a decay timer, it tries to move south. If it hits a dried out pump, the
pump becomes ready to fire up, and the aquifer loses a use. If I'm reading the
code right, leaving behind a modified version of the moving object like this
is something the engine already allows.
Later uses of the aquifer could only trigger the transition with more advanced
pumps.
I just tested, and it seems to work fine. Faking input would take some work -
probably you can do it with the XTEST extension, but I didn't try. Probably
you'd want to hack the client to accept commands on stdin anyway. So for this
test I just used imagemagick 'import' to take a screenshot, as follows:
Xvfb :1337 -screen 0 1024x768x24&
DISPLAY=:1337 LIBGL_ALWAYS_SOFTWARE=true ./OneLifeApp&
DISPLAY=:1337 import -window root test.png
Result: one perfect image of the start-up menu.
You need X, but that doesn't mean you need a head:
https://en.wikipedia.org/wiki/Xvfb
Something like this should work:
Xvfb :1337 -screen 0 1024x768x32&
export DISPLAY=:1337
OneLifeApp
Then you should be able to use the imagemagick command 'import' to take a screenshot.
It shouldn't need a GPU - try "LIBGL_ALWAYS_SOFTWARE=true OneLifeApp".
Software rendering. For me, it's slow (~5fps) but graphically perfect.
what's with all this goddamned sharing.
If the aim is to shatter this communist utopia, I think the genetics idea was
the right one. As soon as players value their own children more than those of
their distant cousins, conflict will arise. I don't know how best to implement
it; a blunt approach which would probably work on many players would be just
to give each life a score according to how many babies your extended family
ever has after your birth, weighted according to relatedness to you.
What if, instead of being a soul, the player was a chromosome?
Nice idea. But I don't see how to make it work while keeping fatherhood out of
the game. Let's say a player is only able to be born into babies of mothers
who carry a certain mutation specific to that player. If we assume each
conception involves an invisible father who is assumed not to carry the
mutation, then the mutation will die off unless the population doubles at each
generation (which it won't for long). Alternatively, we could assume
self-fertilisation. But then you get a very incestuous situation, with
consequences far from what we're used to; if your mother carries one copy of
the mutation, then the expected number of mutations carried by your sisters
and *any* of their descendents is also one.
With fatherhood, it would work perfectly: assuming no monogamy and no incest, and
that you get the mutation, you would value a relation as 2^{-d} where d is
their distance from you in the family tree, just like in real life. Incest
would be naturally discouraged, because you want a variety of mutations in
your progeny, because having a wider player-base able to be born into their
children will make them more fertile.
I don't know how to get fatherhood into the game in a non-problematic way.
So the conclusion seems to be: no war without sex?
Yes, it fully replaces the mouse. That was my primary aim - I personally
dislike using mice, and can never be comfortable using them.
It's been a long time since I've tried playing the game with mouse control, so
I'm not sure exactly how it compares. But I expect kbd control is
substantially faster for many purposes, in part because you can rely on muscle
memory for repetitive tasks, and don't have to worry about misclicks or
hunting for active pixels. A few things are more fiddly -- the worst is
checking the names of people around you, where I haven't found a mechanic
that's anything like as powerful as mousing over them. It also lacks any
equivalent of holding down the mouse button to run, but I find typing e.g.
"al" once a second to keep running to the right is fine really. There's also a
big learning curve of course; I still haven't memorised what number
corresponds to what item of clothing, for example.
So i press for example "m" and then "k", then i go 200 blocks away and press
"'" and "k", will it go back to the correct position?
Yes, except that because of the way things work it will only move about 8
tiles per command, so you have to keep typing "'k".
q <dir>: kill player
It's actually really good to separate the kill command from the use command -
no more accidental knifings!
if i wanted to pick up an item 2 blocks above me, what would i type?
You have to get next to it first, so "kfk".
Are you using hjkl as directional keys like in vim? Why not
wasd?
Because I was raised on roguelikes and vim .
wasdqezc would work too I guess, with command keys on the right. Best would be
to have the keys configurable. If there's actually interest, and no-one else
wants to, I could take the time to implement that.
I've been experimenting with keyboard control, and although the way I've
implemented it might well please no-one but me, I thought I might as well
share my work:
https://gitlab.com/_zed_/OneLife/
I haven't compiled binaries for you or anything, you'll have to compile from
source to try it.
It's based on classic roguelike input methods. See
https://gitlab.com/_zed_/OneLife/blob/m … bdcommands
for a full command list. The whole protocol is covered.
I find it entirely usable, and much more comfortable than using a mouse.
There are also a few things which you can't do with the mouse, like picking an
item from deep in a backpack and marking locations.
If anyone wants to take this further, feel free! I guess the main thing to do
before it would make senes to make a PR to the main project would be to add
configuration options to enable/disable keyboard control and set the keys.
--The freedom to distribute copies of your modified versions to others (freedom 3).
the whole notion of Copyleft is a direct violation of freedom 3.
Only if you read "freedom" much more broadly than intended. It isn't the
freedom to distribute modified copies *however you like*. Rather, it's the
freedom to distribute modified copies in a way which grants the same freedoms
to those you distribute them to.
I like to think of copyleft as a hack which uses copyright to prevent the
worst consequences of copyright. If OHOL (OneLifeData included) had been
copylefted, it's unlikely that we'd be seeing in-client advertising - the
freedom to fork (or just its threat) tends to prevent such user-abuse.
More generally, using a permissive licence means anyone using your work to
compete against you can have a competitive advantage over you, by releasing
their versions as proprietary software and using the various unpleasant
money-making schemes this makes possible (adware, spyware, crypto-mining,
restricting distribution and selling copies of the client...).
we are willing to work on "OHOL Mobile Mod" [..]. Most people on this forum
will tell you that this is a great offer. (If someone else had the strength to
read all the way here, feel free to agree or disagree).
Since you ask... no, I don't think this is a "great offer". I would probably
read the "Mod" in "One Hour One Life Mobile Mod" as a character-saving way of
saying "version".
More generally, your posts on this thread have given me a bad impression of
the team working on this mobile port. Jason made a very clear request. Trying
to weasel out of it like this does not look good.
This seems a rather drastic change, breaking with a core part of the game.
Working out who you can trust, and how a society deals with those it
determines it can't, are interesting aspects of the game which this would
substantially neuter. I'd say other options should be explored before
resorting to it. The suggestions for allowing punishments less severe than
death seem worth trying - incapacitation and imprisonment, and perhaps the old
idea of preventing suicide so imprisonment can be a real punishment.
jasonrohrer:
> The game encourages you to wait before eating, especially if you are eating
> high-value foods, because eating too soon wastes food.
Yes, I think this is the key problem - it's currently optimal play to let your
hunger meter get dangerously close to zero.
That would be fixed by imposing some penalty for starvation. Slowing movement
is one approach, but that also makes it harder to get to food.
So how about having reaching the "starving" state cause a *permanent*
reduction in maximum hunger pips? This would also add a subtlety to parenting -
even if you feed your child often enough to keep it alive, if you let it get
malnourished it's less likely to thrive.