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.
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.
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.
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.
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.
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.
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.
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 :).
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'.
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!