Quake 3 Arena source code

Started by
21 comments, last by daviangel 14 years, 8 months ago
Quote:Original post by DevFred
Don't expect to learn good programming practices from the Quake 3 source. As far as I can tell, it's a bloody mess.


you're absolutely right. Carmack & co. has odd style - something like "just do it".

btw, they're still using C (not C++) ?
VirtualVoid
Advertisement
Quote:Original post by DevFred
Don't expect to learn good programming practices from the Quake 3 source. As far as I can tell, it's a bloody mess.


Indeed. I was amazed at how bad the code was considering Carmack's reputation.

IIRC it was full of one letter variable names, gotos and had a real dearth of comments. It was spaghetti.
Quote:Original post by VirtualVoid
Quote:Original post by DevFred
Don't expect to learn good programming practices from the Quake 3 source. As far as I can tell, it's a bloody mess.


you're absolutely right. Carmack & co. has odd style - something like "just do it".

btw, they're still using C (not C++) ?

Yes, he just gets the job done;)
He just made a post not long ago to that effect when he was trying to get wolfenstein ported to the iphone. I guess they contracted it out to some 3rd party and they responded that it would take them like 3 months or so to do the work and he replied forget it and did it himself in like a week!

"The developers came back and said it would take two months and exceed their budget...As usual, my off the cuff estimate of "Two days!" was optimistic, but I did get it done in four, and the game is definitely more pleasant at 8x the frame rate"-Carmack
Showoff LOL!
He also mentions that anyone is welcome to clean up his messy source so yeah I think he's aware of it:
"
In the end, I decided to stick with the Redux codebase, but I got a lot more free with hacking big chunks of it out. I reimplemented load / save game (fixing the inevitable pointer bugs involved), and by littering asserts throughout the code, I tracked the other problem down to an issue with making a signed comparison against one of the new enum types that compare as unsigned. I'm still not positive if this was the right call, since the codebase is sort of a mess with lots of vestigial code that doesn't really do anything, and I don't have time to clean it all up right now.

Of course, someone else is welcome to do that.
"
The rest of the article at iphone development

[size="2"]Don't talk about writing games, don't write design docs, don't spend your time on web boards. Sit in your house write 20 games when you complete them you will either want to do it the rest of your life or not * Andre Lamothe

This topic is closed to new replies.

Advertisement