That's awesome. I wish more games would come up with creative ways to integrate "IRL" into their in-game environment.
This reminds me of the Wii U port of Legend of Zelda: Wind Waker. During the Wii U/3DS era nintendo had their own social network called miiverse, which was functionally identical to twitter but games could access and post messages to your miiverse account. Wind Waker's integration was to let you scribble down a miiverse post onto a sheet of paper (via the Wii U's touchscreen) and Link would roll it up and shove it into a bottle then throw it out to sea. It would then wash up on a beach in somebody else's game and you likewise would find other peoples' miiverse-in-a-bottle posts scattered all over the beaches of hyrule.
The Civilization series absolutely needs mail integration..
"Are you sure you want to play one more turn? You have 8,371 unread messages."
(Full disclosure: That's the current unread message count for my wife's inbox, NOT mine ;) )
[deleted]
Emacs users have all the fun. And just like eve online or dwarf fortress, I can't seem to get fully into them myself, but I love reading stories about it.
Maybe give RimWorld a try.
I took three approaches for me over a span of two years to really get into emacs. It was pretty tough (a time before google was a thing).
Now iam spoiled - I recently tried vscode a bit and really was baffled because it seems there is no kill ring like the one in emacs that makes it basically impossible to lose any edits.
Doesn’t it have unlimited undo? Savages! (I have never in my life used vscode, hope it shows).
I dont know about unlimited undos. But you can overwrite parts of your undo-tree so you cannot access them anymore.
Try RimWorld only if you're sure it won't nerd-snipe you.
RimWorld is a game that makes me want to fuse with an LLM. It already has an incredibly sophisticated backstory and memory and motivation system; it can't be too much work to hook up an LLM to get the pawns to speak and act in novel ways.
RimWorld, also known as War Crime Simulator.
Best way to get into it is to pick one use case and stick with that for a while. Before you know it, you will want more.
For me it was org mode (with evil mode because I was coming from 15+ years of Vim). Then..
"Oh, I can manage files and edit a directory like a file buffer.."
"Oh, I can SSH into systems and edit files but it doesn't even feel like SSH.."
"Oh, this makes a great, distraction free IDE.."
I recommend a batteries included distro like Doom Emacs or Space Emacs.
Have you stuck with Doom/Space and evil key bindings or been pulled over to a more vanilla setup?
One needn't use Emacs to play Nethack, one of the original roguelikes: https://nethack.org/
In the year of 2025 the best roguelike is also the best souls like
Or Slashem, which is Nethack 3.4.3 plus ice+fire mages, vampires, new levels, new crazy objects and whatnot. And there's a Jedi patch lurking out somewhere.
Anyone who loves Nethack should try Slashem a bit.
Me: let's watch the animation to see this in action ...
sees: "an uncursed food ration"
This is wild; I gotta start playing text based games.
Nethack is one of the wildest. So many hardcoded edge cases and wild interactions.
From the wiki: "Food rations have a 1/7 chance of being rotten when eaten if they are uncursed and older than 30 turns, or else are blessed and older than 50 turns, while cursed food rations are always rotten. Food rations can be thrown to tame domestic canines and felines and pacify domestic equines. "
It is probably just me But I find it especially fun to play with a copy of the source code open, using it as a cryptic but thorough guide.
The game takes on a new level when you find you can build an army of big cats, or gallivant about with a lance on a warhorse (P.S. nevertheless this is still newbie stuff. I never got very far after many hours of attempts...).
I recommend trying Dungeon Crawl Stone Soup also. The devs are constantly refining the game to increase the fun factor and aren't afraid of removing decades old features to do it. E.g.: In more recent versions there is no food hence you cannot starve to death (a questionable game mechanic in a type of game lacking any real "economy").
The hunger mechanics were made to not leech down the machine as an user and stop grinding uselessly. As of DCSS, it's more ARPG bound than a Roguelike.
My immediate question is around security. If the nethack binary is setuid(root), setgid(games), or similar, are privileges dropped before the exec("mail-command") happens?
We've seen a lot of trivial local escalations like that in the past.
That's an excellent question, I thought the exact same thing when I wrote this article. From what I can tell [child](https://github.com/NetHack/NetHack/blob/ed600d9f0f3c37677418...) properly spawns a child process with the real uid/gid instead of the effective uid/gid.
And to your point, there are actually a decent number of [CVEs](https://www.nethack.org/security/) due to NetHack being set[ug]id.
This must be what LLMs feel like for non engineers.
I use mbsync and msmtp with mutt. It just works, kinda like slrn+slrnpull.
On Nethack, I prefer Slashem which is kinda the same as a megaextended 3.4.3 with new classes and roles. Oh, and I play Nethack 3.6.7 too because of Pratchett.
That fancy `touch` script would literally be a two-line `Makefile`.
then you get into makefile escape hell (similar to yaml hell)
The 21st century way might be some combination of watchexec[1] and just[2] but you can't assume the availability of these tools.
You can almost assume the availability of make but a lot of distros (hello, Ubuntu) omit basic build tools.
Admittedly I used an LLM recently to write me a Makefile because my brain doesn't have the capacity to remember all make's idiosyncrasies every few years that I touch a Makefile. Once the file is done, it's done, and it was easy to pare down from the verbosity that the LLM coughed up.
I also wanted targets for intermediate build files (long story) so that would have required excessive poring over the man page.
That's awesome. I wish more games would come up with creative ways to integrate "IRL" into their in-game environment.
This reminds me of the Wii U port of Legend of Zelda: Wind Waker. During the Wii U/3DS era nintendo had their own social network called miiverse, which was functionally identical to twitter but games could access and post messages to your miiverse account. Wind Waker's integration was to let you scribble down a miiverse post onto a sheet of paper (via the Wii U's touchscreen) and Link would roll it up and shove it into a bottle then throw it out to sea. It would then wash up on a beach in somebody else's game and you likewise would find other peoples' miiverse-in-a-bottle posts scattered all over the beaches of hyrule.
The Civilization series absolutely needs mail integration..
"Are you sure you want to play one more turn? You have 8,371 unread messages."
(Full disclosure: That's the current unread message count for my wife's inbox, NOT mine ;) )
Emacs users have all the fun. And just like eve online or dwarf fortress, I can't seem to get fully into them myself, but I love reading stories about it.
Maybe give RimWorld a try.
I took three approaches for me over a span of two years to really get into emacs. It was pretty tough (a time before google was a thing).
Now iam spoiled - I recently tried vscode a bit and really was baffled because it seems there is no kill ring like the one in emacs that makes it basically impossible to lose any edits.
Doesn’t it have unlimited undo? Savages! (I have never in my life used vscode, hope it shows).
I dont know about unlimited undos. But you can overwrite parts of your undo-tree so you cannot access them anymore.
Try RimWorld only if you're sure it won't nerd-snipe you.
RimWorld is a game that makes me want to fuse with an LLM. It already has an incredibly sophisticated backstory and memory and motivation system; it can't be too much work to hook up an LLM to get the pawns to speak and act in novel ways.
RimWorld, also known as War Crime Simulator.
Best way to get into it is to pick one use case and stick with that for a while. Before you know it, you will want more.
For me it was org mode (with evil mode because I was coming from 15+ years of Vim). Then..
"Oh, I can manage files and edit a directory like a file buffer.."
"Oh, I can SSH into systems and edit files but it doesn't even feel like SSH.."
"Oh, this makes a great, distraction free IDE.."
I recommend a batteries included distro like Doom Emacs or Space Emacs.
Have you stuck with Doom/Space and evil key bindings or been pulled over to a more vanilla setup?
One needn't use Emacs to play Nethack, one of the original roguelikes: https://nethack.org/
In the year of 2025 the best roguelike is also the best souls like
Or Slashem, which is Nethack 3.4.3 plus ice+fire mages, vampires, new levels, new crazy objects and whatnot. And there's a Jedi patch lurking out somewhere.
Anyone who loves Nethack should try Slashem a bit.
Me: let's watch the animation to see this in action ...
sees: "an uncursed food ration"
This is wild; I gotta start playing text based games.
Nethack is one of the wildest. So many hardcoded edge cases and wild interactions.
From the wiki: "Food rations have a 1/7 chance of being rotten when eaten if they are uncursed and older than 30 turns, or else are blessed and older than 50 turns, while cursed food rations are always rotten. Food rations can be thrown to tame domestic canines and felines and pacify domestic equines. "
It is probably just me But I find it especially fun to play with a copy of the source code open, using it as a cryptic but thorough guide.
The game takes on a new level when you find you can build an army of big cats, or gallivant about with a lance on a warhorse (P.S. nevertheless this is still newbie stuff. I never got very far after many hours of attempts...).
I recommend trying Dungeon Crawl Stone Soup also. The devs are constantly refining the game to increase the fun factor and aren't afraid of removing decades old features to do it. E.g.: In more recent versions there is no food hence you cannot starve to death (a questionable game mechanic in a type of game lacking any real "economy").
https://crawl.develz.org
The hunger mechanics were made to not leech down the machine as an user and stop grinding uselessly. As of DCSS, it's more ARPG bound than a Roguelike.
My immediate question is around security. If the nethack binary is setuid(root), setgid(games), or similar, are privileges dropped before the exec("mail-command") happens?
We've seen a lot of trivial local escalations like that in the past.
That's an excellent question, I thought the exact same thing when I wrote this article. From what I can tell [child](https://github.com/NetHack/NetHack/blob/ed600d9f0f3c37677418...) properly spawns a child process with the real uid/gid instead of the effective uid/gid. And to your point, there are actually a decent number of [CVEs](https://www.nethack.org/security/) due to NetHack being set[ug]id.
This must be what LLMs feel like for non engineers.
I use mbsync and msmtp with mutt. It just works, kinda like slrn+slrnpull.
On Nethack, I prefer Slashem which is kinda the same as a megaextended 3.4.3 with new classes and roles. Oh, and I play Nethack 3.6.7 too because of Pratchett.
That fancy `touch` script would literally be a two-line `Makefile`.
then you get into makefile escape hell (similar to yaml hell)
The 21st century way might be some combination of watchexec[1] and just[2] but you can't assume the availability of these tools.
You can almost assume the availability of make but a lot of distros (hello, Ubuntu) omit basic build tools.
Admittedly I used an LLM recently to write me a Makefile because my brain doesn't have the capacity to remember all make's idiosyncrasies every few years that I touch a Makefile. Once the file is done, it's done, and it was easy to pare down from the verbosity that the LLM coughed up.
I also wanted targets for intermediate build files (long story) so that would have required excessive poring over the man page.
[1]: https://github.com/kurtbuilds/checkexec [2]: https://github.com/casey/just
There is a non-zero time duration for updating, I don't see how you would accomplish that.