Hacker News new | ask | show | jobs
by fb03 2595 days ago
exhaustively enumerated. i mean. a lot.

you should dive into the Nethack source code. It's really well organized but in monster behavior code (mon.c), it's an 'if'-fest :)

1 comments

Nethack was the first large C codebase I ever got familiar with / tinkered with, and honestly I think it did some damage.

I mean it's great for what it is -- an organic codebase that evolved over decades (so there's a lot of performance/memory optimizations that make the code somewhat less clear like a lot of bitwise operations) and targeted a dizzying array of platforms (so there's a million #ifdefs that you have to climb through, many of them nested) and also compilers (so there's a legacy of really short file and function names that decrease clarity as well).

The attention to details is truly inspiring. But as a codebase, it's a mess.

On the other hand, Brogue [0]'s code is very clear and enjoyable to read.

[0] https://sites.google.com/site/broguegame/

DCSS is also fun in some places: https://twitter.com/crawlcode