Hacker News new | past | comments | ask | show | jobs | submit login
Doom-htop: The classic DOOM game over htop (github.com/0x0mer)
288 points by thunderbong 7 months ago | hide | past | favorite | 43 comments



If you think about it, rendering the "video" into ASCII and then putting them into process names seems kind of easy. Nothing special. Similar to these toys over DNS, etc. Especially that as the readme says the majority of the work was done by the other project.

On the other hand, I would never think of htop as a rendering engine for anything. Totally mind-blowing and impressive. Software hacking at its finest! Kudos!


"If you think about it, rendering the "video" into ASCII and then putting them into process names seems kind of easy. "

It is easy if you don't really think about it, actually. Otherwise, it is not that trivial to get a good contrast and good performances. See libaa or libcaca for instance, hundreds of hours on this very subject.


I started catching myself saying something is "easy" and now try to say "it's a solved problem".

Most of dev work these days is actually plumbing hardwork found in libraries : serialization? solved. Handle HTTP requests? solved. DB modeling? solved.


Sort algorithms and linked lists? Solved, but we keep interviewing on them anyway.


Yeah but you can just use those libraries, right? That complexity probably isn't in this project.


Sure, but it's still a worthy distinction to make. "rendering the video into ASCII" is hard, but the hard work is generally already done by the authors of these libraries. The top-level comment failed to make the distinction that those libraries took a lot of genuine hard work to do their job to a high quality.


This might be conceptually easy to grasp, but it does sound hard to implement.


That exactly! The Dunning-Kruger trap (not bashing GP, I've fallen into it often enough)


A reverse PSDoom[1], eh?

This submission is about using a process manager to play Doom, while PSDoom is about using Doom to perform process management.

[1]: https://psdoom.sourceforge.net


i was going to comment how i would like to see the reverse, and i am not surprised to find that it already exists. here is a video on someone porting it to run on current linux: https://youtu.be/Pf7rpde49NU

except i'd like to see it somewhat more actually useful as a top replacement: size of the monster should be based on memory usage, and aggressiveness should be based on CPU usage. different rooms can be different users, and threads could also be shown as related somehow as could parent and child processes. sleeping processes should be sleeping obviously and zombie processes be frozen in space, maybe transparent, able to pass through? then a selection of weapons corresponding to the kill signals.

there are more things that could be added but then it gets further away from doom.


psdoom-ng already works on "current Linux", no need to "port" it.

It's also extensible - you can easily replace the commands used by it to gather the process list and to kill processes, so you can make variations of it using different kind of data without even recompiling the game. Once at a game jam I made "fsdoom" this way - a file manager utility that let you delete files from your $HOME by killing monsters.


well, in the video there was talk about making it work on fedora 36. not sure what he had to do or if it was him who created psdoom-ng...

but that configurability is cool. fsdoom sounds like a great idea. but here too i'd like monster size be based on filesize, rooms based on folders...


> not sure what he had to do

He just had to learn how to launch it as root (which isn't required for it to work) while preserving access to graphics server from the user's session (and there are better ways to do it than what he shown). All his "fork" does is changing the README file.

> or if it was him who created psdoom-ng

Nope, just a random youtuber discovering a project from 1999.


That would be fun with rm -rf


All it takes is a few lines of code: https://dos.itch.io/fsdoom


I’m genuinely curious how people have time to do this. I feel less and less sure of my abilities the more I see wonderful stuff like.

I can’t imagine the effort involved in this. Someone did mention this takes advantage of prior work just rerendering in ascii and mapping to procs but that’s not a negligible amount of work. How long did this take? I feel like I know nothing and I’ve been in this industry for more than I’d like to say.

This is awesome but I feel incredibly stupid.


First of all, thank you for the kind words :) Secondly, don't feel bad! I'm sure you know much much more than you give yourself credit for. This took about a full weekend plus another day, and a few more days of working here and there when I have time. But as was written somewhere else in the comments and as I wrote myself in the README, the hard work of making Doom more portable was done by the incredible project doom-generic which I forked: https://github.com/ozkl/doomgeneric


"I’m genuinely curious how people have time to do this."

Let's say you work 8 hours per day, 1 hour commuting. That's 15 hours left, you need to eat and sleep and bath and whatever. That leaves 15 hours because who cares about eating or sleeping or taking a bath. More than enough time to do this in 3 years.

Alright, enough time there, I need to finish my raycaster on 6502.


Boy is that a familiar feeling. It's the programmer version of shaving away at one's self-worth by looking at friends' Instagram-perfect home photos. I think most of us feel it from time to time. There are ways to combat it, but it's a totally normal side effect of hanging around smart people.


I look at these things, and remember a time before I had children


I kind of do, but the lack of sleep has killed my short term, long term and working memory. The time before is hazy.


I feel like we're reaching completion with the "integrating doom into things" arc - it's now time to start integrating everyday things into Doom.

Just imagine a Todo List or a Calendar in Doom.


> Just imagine a Todo List or a Calendar in Doom.

Nitpick: This is not a todo list or a calendar in Doom; this is Doom running in a todo list or a calendar. About a todo app - we already have a doom rendered using checkboxes [1], integrating that into a todo app is left as an exercise for the reader.

[1]: https://healeycodes.github.io/doom-checkboxes/


> "I feel like we're reaching completion with the "integrating doom into things" arc"

Ho you are new to the craft aren't you.


I thought the same with "algae plays DOOM"...


I stumbled upon this project approximately a week ago and submitted it here but it didn't get any traction. Glad to see it has made the front page. I like it when some hacky for-the-fun-of-it projects like this one make it here :).


Excellent hack. It makes me happy to see that the hacker spirit is still alive.


Sometimes people take tech too far... this is not one of this times.


Reminds me of Bad Apple on Windows Task Manager.

https://youtu.be/sBeI30ccb6g


Pure, wonderful insanity. A+


I can't imagine, where-else this game is going to run in future.


After this, I completely lost faith in humanity :'D


You didn't lose it, it just wafted over to me. Faith in humanity restored!


> Ever wondered whether htop could be used to render the graphics of cult video games?

Not really but I'm glad that someone did.


It would be nice to have some screenshots or even a video (maybe with asciinema)


It's got that in the readme, a more direct link though is https://github.com/0x0mer/doom-htop/blob/master/screenshots/...


It's right there at the top of the github page


Yet another example of "it is so stupid it just had to be done.". I love it!


Loll thanks for sharing dude :)


That's awesome, but I don't think Doom is considered a cult video game?


Of course it is!! Doom has been ported to a lot of platforms, even very weird ones or even not intended to run it at all! Second, DOOM modding community is amazing. A lot of quality MAPs, MODs.

And as bonus :) I still play good old DOOM using source port. Okey, enough talking, time to fry some monsters :)


cult classic is defined as "something such as a movie or book that is considered to be one of the best of its kind by a small group of people." which I would say is pretty accurate


Doom had over 20 million players in 2 years. That's higher than some modern games. I don't know if something groundbreaking and gigantic like that can ever really be 'cult'.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: