News for hackers. Stuff that matters.
Re:Ask HN: What are the “best” codebases that you've encount... by bitwize on Monday July 29, 2019 @02:11PM (#20557546)
NetBSD, hands down. Beautiful, simple to understand, consistent. The documentation is also top notch -- I wrote a trivial character-device kernel driver using only the man pages as a reference. And you can too.

Also -- the source code to Doom. Read it, marvel at its clarity and efficiency -- and then laugh when you realize that the recent console ports were completely rewritten in fucking Unity. And the Switch version chugs, despite the original running well on 486-class hardware.

Re:Ask HN: What are the “best” codebases that you've encount... by Wowfunhappy on Monday July 29, 2019 @06:35PM (#20560182)
> and then laugh when you realize that the recent console ports were completely rewritten in fucking Unity. And the Switch version chugs, despite the original running well on 486-class hardware.

I wonder why they didn't just write an emulator, then. Especially on the Switch if there are performance issues.

Re:Ask HN: What are the “best” codebases that you've encount... by cameronbrown on Monday July 29, 2019 @05:40PM (#20559739)
Unity sucks but as a hobbyist game developer it is a godsend. The only other way I can support all the platforms I want to (Android, web, PC) is through Web APIs directly, and nobody likes more Electron.
Re:Ask HN: What are the “best” codebases that you've encount... by bitwize on Monday July 29, 2019 @06:41PM (#20560230)
SDL be like "am I a joke to you?"
Re:Ask HN: What are the “best” codebases that you've encount... by JacobiX on Wednesday July 31, 2019 @04:53AM (#20572673)
SDL is fine for cross platform development. Personally, I have used it for some commercial games in the past, but I think it's not comparable to Unity or unreal engine. SDL is not a game engine, it provides only lower level features (audio, opengl context initialization, joystick support, etc). Even for things like in-game menus and text rasterisation you are on your own.
Re:Ask HN: What are the “best” codebases that you've encount... by unixhero on Tuesday July 30, 2019 @03:14AM (#20562721)
Well there is also Unreal Engine!
Re:Ask HN: What are the “best” codebases that you've encount... by hermitdev on Monday July 29, 2019 @08:35PM (#20561003)
I used NetBSD as a reference when I needed a cross platform strptime that behaved identical everywhere.

I found the source very approachable. Source was well laid out and fairly clear. Some of it was subjectively a bit ugly to just look at, but when you read it, it was very clear.

Couldn't use glibc as a reference because this in a closed source commercial product and, well, GPL.

Re:Ask HN: What are the “best” codebases that you've encount... by ashafer on Monday July 29, 2019 @04:04PM (#20558764)
I completely agree. I've gotten to work with both of these at my summer job and it's been an absolute pleasure.
Re:Ask HN: What are the “best” codebases that you've encount... by tomsmeding on Monday July 29, 2019 @05:38PM (#20559729)
You've gotten to work with both NetBSD and Doom in one summer job? Now I'm really curious what you've been doing. I think I may want that too.
Re:Ask HN: What are the “best” codebases that you've encount... by ashafer on Tuesday July 30, 2019 @01:12AM (#20562283)
My project was to port DOOM to the seL4 microkernel (on rpi3b+). To continue with that I’ve been porting NetBSD Rump kernel components to seL4 as well.

DOOM itself is a breeze to port. NetBSD can get confusing at times but it’s nice to know there’s always a logical reason behind the design decisions. It rewards you for spending time to understand the code and I like that. Rump kernels are especially cool.

It’s a myth that you can’t get paid to work on BSD ;)

Re:Ask HN: What are the “best” codebases that you've encount... by bitwize on Monday July 29, 2019 @06:56PM (#20560340)
Think about it. When you stand up a new ARM-processor embedded widget for the first time, what are two of the first things you do to verify it works?

1) Port NetBSD to it

2) Port Doom to it