Carmack: Lord of the Games
seer writes: "This article on Red Herring is a nice look at the interworkings of id software, most specifically their famous employee John Carmack. It delves deeply into the fact that id has stayed a very small company and dabbles with other topics such as Carmack's tendency to stay away from Microsoft 'standards' and the whole DooM ]I[ debacle. An interesting read."
This is really an unfair comparison -- you're comparing oranges and apple pie.
From a compatibility perspective, Java is all about cross-platform-binary-compatibility. To do that, it essentially needs to emulate a consistent set of machine-interfaces -- that's where the Virtual Machine comes in. Beyond that, Java is also supposed to be a "next generation" "idiot-proof" language, and to that end it sacrificed speed for safety (of code).
Carmack's code is about source compatibility. So far as I know, the primary language for ID Software's 1st-person shooters is C/C++. That language, to the bane of novice programmers everywhere, has a tendency to make absolutely no assumptions for you, and as a result well-written code can be highly efficent [gaining an immediate speed advantage over comparably well-written Java code]. Of course, it does mandate some level of system-speficic code somewhere in there, but a good programmer (like, for example, Carkack) will encapsulate it behind an #IFDEF or two.
The only thing that really stops people from writing cross-platform code is system-specific libraries (Like DirectX). Once your code is built around something that tends to be as fundamental as DirectX, a transplant to another library for a different platform is no easy task.
Carmack's "common code," is therefore merely smart design. As the article says, he shies away from the system-specific libraries, so porting becomes a much easier task.
"Evil company X is threatening to restrict our rights! Let's all get together to stop--OOOH! SHINEY!!!" -- AC
Having seen Shrek, I know there is more onscreen at any given moment than a single character.
Those apples are nowhere near the size of those oranges.
"Catacomb Abyss Released: Dec 1991 The first FPS."
;)
:)
Not really. The game Dark Side for the Commodore 64 was a fully polygonal, first person shooter, that was released in 1988, i think. The only problem was that it had a framerate of about 3 or 4 fps.
On a sidenote, the engine Catacomb Abyss used was written by John Carmack, and share alot of code with the younger Wolf3D.
Good point, but do you know who made Catacomb Abyss?
That's right, id Software. Seems it all keeps coming back to them. Sp00ky, eh?
[PowerPoint] is a tool for capitalist presentation
The last major code Gates wrote (so I've read) was the software for the Radio Shack portable Tandy TRS-100 (which had a rather long battery life, built-in modem, and was widely used by journalists in its day).
Gates' claim to being able to write tight code is not without support: he did, after all, write much of MicroSoft's original code, which were BASIC interpreters that ran on systems with very very little RAM.
Java, on the other hand, is a GENERAL PURPOSE PROGRAMMING LANGUAGE. You could use it to write ANY of the above kind of games, or a client-server application, or a spreadsheet, or pretty much anything else.
You also need to remember that the Java Programming Language and the Java Runtime Environment (JRE) are totally and completely different things. Java source code can be compiled into native machine code, which will run as fast or faster than comperable C++ code. Other languages ( like Python) can be compiled into Byte Codes and run under the JRE
Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
Romero did not quit. He was fired.
I no longer have the url but John Carmack said Romeo would blow off the day by playing and not coding and would not listen to other employees about idea's for the games. He basically wanted a game with a story and intereactive plot while John Carmack did not. The split grew worse and worse and he eventually refused to work on the same assignments as Carmack and he would do his own thing anyway. Carmack got so pissed that he went to the CEO and made a case to fire him. The CEO who was behind John Carmack all long fired Romeo and another co-worker to set an example. John Carmack is a perfectionists and doesn't like other people getting in his way. But what made it worse was that the whole team went one way while Romeo refused to go with the flow. THis and not the hours is why is he left.
http://saveie6.com/
Uh, NO.
BattleZone in the arcade, and Stellar7 on the Apple ][. same thing.
Feed the need: Digitaladdiction.net
Yep. Compile once, run anywhere =).
(well, it won't work if the mod is distributed as a
For my graphics class in college we had to write an Asteroids program in OpenGL. I decided that it was kind of lame to do all the work to render asteroids and ships in 3-D only to shoot them in a 2-D plane. So I implemented a 3-D space shooter involving asteroids. It soon became apparent that in order for there to be enough asteroids to hit you there had to be A LOT of asteroids. The number that sticks in my head is 400. Since shooting 400 asteroids was pretty dumb I added some Tie-Fighters to the mix and had the objective be to shoot the Tie-Fighters.
All the work in this class was done on Macintosh computers. I was the proud owner of a Mac Performa 6200. It ran at 66 MHz, with no 3-D graphics card. I actually got my little game to run at a reasonable speed on it. Everybody else in the class wrote games that were played in a 2-D plane and many of them didn't run fast even on the brand new G3s that were showing up around campus.
Now for the point of my story. After graduation I went to work for a certain company and they gave my a nice laptop. It ran Windows. I decided it would be nice to try to play my game on it. The port was EXTREMELY easy. I had to add a crappy Win32 main and I had to replace the keypress codes since I hadn't used GLUT for kepresses since it didn't work with multiple keypresses. I also yanked the sound code out since it was Mac specific. But it took only a few hours to have the game up and running.
If you want to see the result you can get it here. Source is there too.
I later loaded Linux on my laptop and ported the game to Linux. It took a bit longer to find working keypress calls. I ended up using SDL without porting the whole game to SDL. The result was a little ugly but the game worked just fine. I haven't invested the time needed to polish up the Linux version is all.
Looking back I know that it would be very easy to write this OpenGL based game in such a way that it would run on all three of these platforms with a simple recompile if I had used #IFDEFs. Being lazy and busy with other things I haven't done that. But it is impressive how portable a game written in OpenGL can be.
Lasers Controlled Games!