Quake 3 Source Code Review
An anonymous reader writes "id Software has a history of releasing the source code for their older games under the GPL. Coder Fabien Sanglard has been taking it upon himself to go through each of these releases, analyze the source code, and post a detailed write-up about it. He's now completed a review of the Quake 3 source code, diving into the details of idTech3. It's an interesting read — he says he was impressed in particular by the 'virtual machines system and the associated toolchain that altogether account for 30% of the code released. Under this perspective idTech3 is a mini operating system providing system calls to three processes.'"
Todays compotor scientists program with pure thought connected by JSON/XMLhttpREQUEST to a HTML5 document tree located in four-dimensional time on the APP STORE. This "code" shows that Id software is living in the PAST and won't be arouned for long, it is a DINOSORE and I am going to eat its stock markets for BRUNCH with BEAUTIFUL HOOKERS and jesuse!!!!!
UNITE with the Campaign for a Free Internet because today, our future begins with tomorrow!
But I can't help but revel in the growth and extension of public domain engines and assets by willing companies. As a dum-dum, I still see a lot of value in Q3 based projects. They really look good enough(for me), and I hear good things about the netcode. It isn't the end-all-be-all of engines, but it really is one of the first modern commercially sold engines available to the rest of us. If I may be so bold; gentlemen start your engines. I can't wait to see what you come up with.
Just so we're clear, Quake 3 and its source code are NOT in the public domain.
There's no -1 for "I don't get it."
You have just spouted utter nonsense, and have made a more valuable comment than most other people here.
Or an aneurism of shit.
With a completely free game, how does one recoup the $99 per platform per year fee for a developer certificate?
I do not understand what you don't understand about "do not need to pay anything."
It costs per year to get onto the iOS App Store, Mac App Store, Amazon Appstore, or Windows Store, even for applications priced at $0.00. Epic sees none of this. So let me rephrase: With a completely free game, how does one recoup the $99 per year fee payable to Apple for a developer certificate?
I laughed when he said the first striking thing was that the solution had multiple projects in it.
Is the second striking thing that id used an existing 3D API for rendering?
From a quick reading, I don't get the point of this system.
Couldn't they just compile their C code to a dll normally and then load that dll and call vmMain?
I don't see what those "virtual machines" are bringing.
The third striking thing where he he discovered "circular buffers" but calls them "Array index cycling." Are programmers really that clueless that they don't realize MOD N can be optimized with AND N-1 ??
http://fabiensanglard.net/quakeSource/quakeSourceNetWork.php
arrayIndex = (oldArrayIndex+1) % 64 ;
arrayIndex = (oldArrayIndex+1) & UPDATE_MASK;
Which came from:
Network Model (Part 3 of 5)
The array cycle with the famous binary mask trick I mentioned in Quake World Network (Some elegant things).
I believe it spelled "aneurysm". They were discovered by Aneurysm Bevin, evil inventor of British death panels.
echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
Are programmers really that clueless that they don't realize MOD N can be optimized with AND N-1 ??
you forgot about the part where gcc compiles both variants to exactly the same assembly...
Not a programmer. Did gcc do that back in the Q3 days or does it do it now?
Correct.
Compilers do it NOW but they didn't always use to UNLESS you turned optimizations on. Debugging un-optimized code is a lesson in pain. Especially when you are trying to debug a real-time system and can't due to performance issues.
Consider the case of somebody who doesn't (yet) have a job in a given industry. A job seeker will want a portfolio to present to those responsible for hiring, and I don't see how anybody will pay a job seeker to build a portfolio.
That trick is only guaranteed to work if N is a power of two. It's much better to just use mod and let the compiler figure out how to optimize, lest you run into mysterious bugs when someone changes N.
So what?
You want to build an app for IOS, sell it for a buck or 5 and act like a pro.
If you want to give it away as portfolio material so someone might give you a job. The stop whining and spend the $100 as a cost of education. Maybe you'll get a job or maybe not. But its still a drop in the bucket compared to the amount of money you don't make by not having a job, or the amount of money you spend getting an education.
If someone is passing you on the right, you are an asshole for driving in the wrong lane.
I would think that a game or demo developed while studying would be a good start.
I agree with this. However, Slashdot user CronoCloud has told me that certain games that I have made available on my web site would be a net negative in my portfolio for various reasons. What aspects are video game companies looking for in the games and demos in one's portfolio?
I was an APL biggot in the late 70's and early 80's. I could get more done in an hour than an excel expert, a gui expert, a numerical analyst, a text manipulator expert could do if given a Monday Morning assignment.
I finished a project to convert several thousand TSO and JCL scripts in about three hours that in the contest with the System Programmers, took them about 10 days.
The SP guys wanted something that was low overhead. I needed something NOW. Surprisingly, my solution worked and was used for another 10 years in the department, until that support person retired. At that point, the language also retired with him.
I am trying to resurrect my skills in APL development. It is a language for fun and profit. No, it is not about Quake, but I could not figure out how to introduce a new topic.
Leslie Satenstein Montreal Quebec Canada