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.
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/