🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: alt.games.quake
5 messages
5 total messages Started by Veli-Pekka Tätilä Mon, 11 Dec 2006 17:40
Engine Changes in Q2: Masters of Doom, Daikatana
#75591
Author: Veli-Pekka Tätilä
Date: Mon, 11 Dec 2006 17:40
59 lines
4556 bytes
Hi,
I was reading the book The Masters of Doom the other day, which details the 
lives of the two Johns Carmack and Romero as well as their games like Wolf 
3D, Doom and Quake. In general the book deals with tech topics a little 
vaguely but managed to explain concepts like binary Space partitioning and 
surface caching adequately enough. However, there was one particular detail 
in the context of the Quake 2 engine that made me curious as a fan of FPS 
games and a recreational programmer.

Quote from the Masters of Doom:
February 1998, he got what he had been waiting for: the Quake II code. It 
was the stuff that would enable them to put the completion of Daikatana into 
high gear. But when Romero opened the file, he took one look at the code and 
froze. Oh my God, he thought, what had Carmack done? <big snippage> The 
engine was completely different than what he had expected. All this time 
he'd had his programmers preparing Daikatana in a way that would make it 
easy to switch over to what he assumed Carmack's new engine would require. 
But it turned out that Carmack had trashed his expected direction and 
instead produced a structure of code that caught Romero completely by 
surprise. It certainly wasn't done to dupe Romero into a delay, it was just 
Carmack making his own idiosyncratic, intuitive leap-a leap that, once 
again, cramped Romero's grand designs.
End quote.

The above was especially vague and left me wondering what was the big hurdle 
in the Quake 2 engine compared to Quake 1. I'm guessing it is something 
architectural if it lead to major problems. I know very little about 3D 
engines, per se, apart from gaming experience, Duke3D's build and con files 
plus FraggleScript in Doom Legacy, so this is guess work.

My number one guess would be that the engine was deeply and elegantly 
object-oriented as opposed to procedural. That might require a major 
architectural change. Particularly if it affected AI, that is in stead of a 
huge, explicit if, elseif, elseif, else control flow construct it woulde be 
done differently. That is writing callback functions for particular events 
that occur to the actors. Technically it could look more functional (a bunch 
of function pointers) or object-oriented namely inheriting a pure virtual 
base class to use the C[++] terms here.

Another vague guess would be that the graphics in Quake 2 were more agnostic 
in terms of the underlying rendering system making the code more abstract 
and harder to understand initially. After all, Quake only did software 
rendering originally. But Quake 2 supported, as far as I can remember, 
software rendering, a subset of Open GL called mini GL, and Direct3D and or 
glide considering Voodoo cards were around (I used to have one myself).

Well, hope someone here knows enough of the engine internals to answer this 
question. I could take a look at the source but its probably hard to get 
into and I might not find the answer after all if its something completely 
unexpected. So, thought I'd be lazy and ask here in stead, <smile>.

PS: Just noticed this group is moderated according to the description though 
a little silent. To the moderator: if this one needs a Semi OT or OT tag, 
just lemme know and I'll fix that.

-- 
With kind regards Veli-Pekka Tńtilń (vtatila@mail.student.oulu.fi)
Accessibility, game music, synthesizers and programming:
http://www.student.oulu.fi/~vtatila/
Re: Engine Changes in Q2: Masters of Doom, Daikatana
#75592
Author: Matthew Vaughan
Date: Wed, 13 Dec 2006 09:15
23 lines
2431 bytes
"Veli-Pekka Tńtilń" <vtatila@mail.student.oulu.fi> wrote in message 
news:elk56p$8d8$1@news.oulu.fi...

> PS: Just noticed this group is moderated according to the description 
> though a little silent. To the moderator: if this one needs a Semi OT or 
> OT tag, just lemme know and I'll fix that.

I can't answer your question about Q2 other than poorly-informed 
speculation, but I can say that this newsgroup isn't actually moderated. And 
I think your question is perfectly on topic anyway. I'd be very curious to 
hear any informed answers.

If you have time to peruse some old posts (not as many as it seems since 
many are repeates with a small update added), you might be able to glean 
some possible answers from John Carmack's archived plan files, such as at:
http://finger.planetquake.com/plan.asp?userid=johnc

I was just reading some and wow, the nostalgia! Some really interesting 
stuff in there. I suspect the major changes would be more along the lines of 
a reorganization of the map formats and unification of the rendering 
pipeline. (Being Finnish you might find amusing Carmack's description of 
Thresh from when he won the Ferrari. I can explain further if you don't know 
who/what I'm talking about.) 
Re: Engine Changes in Q2: Masters of Doom, Daikatana
#75593
Author: Veli-Pekka Tätilä
Date: Thu, 14 Dec 2006 21:23
101 lines
5436 bytes
Hi Matthew,
Replying out-of-order, as it makes more sense and prioritizes the most 
interesting stuf first.

Matthew Vaughan wrote:
> I suspect the major changes would be more along the lines of a
> reorganization of the map formats and unification of the rendering
> pipeline.
Good guesses, thanks. I'll read up more on rendering. As I said, I don't 
know an awful lot about graphics being more an audio and music guy.

> (Being Finnish you might find amusing Carmack's description of
> Thresh from when he won the Ferrari.
> I can explain further if you don't know who/what I'm talking about.)
Please do elaborate. Yup you noticed the fi Suffix ok in my e-mail and both 
Wiki and the book Masters of Doom do tell about the Ferraris and some cool 
tune-up activities. Here's the closest quote I could find:

Quote from Masters of Doom:
Twenty elite gamers had been flown in and were competing under a giant 
screen that showed the game. The two top contendersŚa stealth Asian American 
teenager nicknamed Thresh and a Floridian beach bum nicknamed 
MerlockŚtwitched over their PCs as they fought. <snip> With the crowd 
cheering, they battled as their match played out on a large overhead screen. 
Thresh could see the reflection of the Ferrari in his monitor as he closed 
in for his final slaying, winning the deathmatch thirteen kills to one.

Carmack walked onstage and handed Thresh the keys. "So how are you planning 
on getting the car home?" he asked. "I don't know," Thresh said. "I guess 
I'll ship it." Carmack came back a half hour later and handed Thresh five 
thousand dollars in cash to cover the costs.
End quote.

> If you have time to peruse some old posts <snip> you might be able
> to glean some possible answers from John Carmack's archived plan
> files, such as at: http://finger.planetquake.com/plan.asp?userid=johnc
Hey, I'll take a look. The book Masters of Doom, in which I learned most of 
what I know about the two Johns, in addition to their Wikipedia articles, 
had some quoted plan files as well. Quite a todo list in this one and 
efficient, too. Guess its good enough in crunch time if you happen to be the 
lead programmer and have Carmack:ish work-hours, <smile>. On a side note, 
I'm learning some POSIX programming here and made a pretty Carmack-inspired 
to do list for myself, which I normally skip, but have found very helpful so 
far.

Anyway, here's the plan:

Quote of Carmack's plan from Masters of Doom:
Login name: johnc In real life: John Carmack
Directory: /raid/nardo/johnc Shell: /bin/csh
Never logged in.
Plan:
This is my daily work ...
When I accomplish something, I write a * line that day.
Whenever a bug / missing feature is mentioned during the day and I don't fix 
it, I make a note of it. Some things get noted many times before they get 
fixed.
Occasionally I go back through the old notes and mark with a + the things I 
have since fixed.
-- John Carmack
= feb 18
* page flip crap
* stretch console
* faster swimming speed
* damage direction protocol
* armor color flash
* gib death
* grenade tweaking
* brightened alias models
* nail gun lag
* dedicated server quit at game end
+ scoreboard
+ optional full size
+ view centering key
+ vid mode 15 crap
+ change ammo box on sbar
+ allow "restart after a program error
+ respawn blood trail?
+**-1 ammo value on rockets
+ light up characters
End quote.

> "Veli-Pekka Tńtilń" <vtatila@mail.student.oulu.fi> wrote:
>> PS: Just noticed this group is moderated according to the description
> I can say that this newsgroup isn't actually moderated.
Yup, seconds after posting I saw my original post in this NG, so I guessed 
that much. Good to know for certain.

> And I think your question is perfectly on topic anyway.
Mostly. But someone could argue this is more about the Quake engine, and how 
it relates to Daikatana, as opposed to the Quake game as conveyed by the 
name of this NG. I'm not that picky but thought better safe than sorry as a 
new-comer here.

> I'd be very curious to hear any informed answers.
I second that.

-- 
With kind regards Veli-Pekka Tńtilń (vtatila@mail.student.oulu.fi)
Accessibility, game music, synthesizers and programming:
http://www.student.oulu.fi/~vtatila/ 
Re: Engine Changes in Q2: Masters of Doom, Daikatana
#75594
Author: McG.
Date: Wed, 20 Dec 2006 09:16
36 lines
2704 bytes
"Matthew Vaughan" <matt-no-spam-109@NOSPAM.hotmail.com> wrote in message 
news:457fdb6a$0$69003$742ec2ed@news.sonic.net...
> "Veli-Pekka Tńtilń" <vtatila@mail.student.oulu.fi> wrote in message 
> news:elk56p$8d8$1@news.oulu.fi...
>
>> PS: Just noticed this group is moderated according to the description 
>> though a little silent. To the moderator: if this one needs a Semi OT 
>> or OT tag, just lemme know and I'll fix that.
>
> I can't answer your question about Q2 other than poorly-informed 
> speculation, but I can say that this newsgroup isn't actually 
> moderated. And I think your question is perfectly on topic anyway. I'd 
> be very curious to hear any informed answers.
>
> If you have time to peruse some old posts (not as many as it seems 
> since many are repeates with a small update added), you might be able 
> to glean some possible answers from John Carmack's archived plan 
> files, such as at:
> http://finger.planetquake.com/plan.asp?userid=johnc
>
> I was just reading some and wow, the nostalgia! Some really 
> interesting stuff in there. I suspect the major changes would be more 
> along the lines of a reorganization of the map formats and unification 
> of the rendering pipeline. (Being Finnish you might find amusing 
> Carmack's description of Thresh from when he won the Ferrari. I can 
> explain further if you don't know who/what I'm talking about.)
>
This is one of the most endearing excerpts and is from the first .plan 
:)  [snif] I'm touched, and also kinda glad the first language I learned 
was assembly on the Z80  :o)
"...I have a strange mixture of pride and shame when I think about the 
people that have actually started learning programming in my crappy 
little qc language."
Oh, but it's fun :)
McG. 
Re: Engine Changes in Q2: Masters of Doom, Daikatana
#75595
Author: McG.
Date: Wed, 20 Dec 2006 09:32
84 lines
5487 bytes
"Veli-Pekka Tńtilń" <vtatila@mail.student.oulu.fi> wrote in message 
news:elk56p$8d8$1@news.oulu.fi...
> Hi,
> I was reading the book The Masters of Doom the other day, which 
> details the lives of the two Johns Carmack and Romero as well as their 
> games like Wolf 3D, Doom and Quake. In general the book deals with 
> tech topics a little vaguely but managed to explain concepts like 
> binary Space partitioning and surface caching adequately enough. 
> However, there was one particular detail in the context of the Quake 2 
> engine that made me curious as a fan of FPS games and a recreational 
> programmer.
>
> Quote from the Masters of Doom:
> February 1998, he got what he had been waiting for: the Quake II code. 
> It was the stuff that would enable them to put the completion of 
> Daikatana into high gear. But when Romero opened the file, he took one 
> look at the code and froze. Oh my God, he thought, what had Carmack 
> done? <big snippage> The engine was completely different than what he 
> had expected. All this time he'd had his programmers preparing 
> Daikatana in a way that would make it easy to switch over to what he 
> assumed Carmack's new engine would require. But it turned out that 
> Carmack had trashed his expected direction and instead produced a 
> structure of code that caught Romero completely by surprise. It 
> certainly wasn't done to dupe Romero into a delay, it was just Carmack 
> making his own idiosyncratic, intuitive leap-a leap that, once again, 
> cramped Romero's grand designs.
> End quote.
>
> The above was especially vague and left me wondering what was the big 
> hurdle in the Quake 2 engine compared to Quake 1. I'm guessing it is 
> something architectural if it lead to major problems. I know very 
> little about 3D engines, per se, apart from gaming experience, 
> Duke3D's build and con files plus FraggleScript in Doom Legacy, so 
> this is guess work.
>
> My number one guess would be that the engine was deeply and elegantly 
> object-oriented as opposed to procedural. That might require a major 
> architectural change. Particularly if it affected AI, that is in stead 
> of a huge, explicit if, elseif, elseif, else control flow construct it 
> woulde be done differently. That is writing callback functions for 
> particular events that occur to the actors. Technically it could look 
> more functional (a bunch of function pointers) or object-oriented 
> namely inheriting a pure virtual base class to use the C[++] terms 
> here.
>
> Another vague guess would be that the graphics in Quake 2 were more 
> agnostic in terms of the underlying rendering system making the code 
> more abstract and harder to understand initially. After all, Quake 
> only did software rendering originally. But Quake 2 supported, as far 
> as I can remember, software rendering, a subset of Open GL called mini 
> GL, and Direct3D and or glide considering Voodoo cards were around (I 
> used to have one myself).
>
> Well, hope someone here knows enough of the engine internals to answer 
> this question. I could take a look at the source but its probably hard 
> to get into and I might not find the answer after all if its something 
> completely unexpected. So, thought I'd be lazy and ask here in stead, 
> <smile>.
>
> PS: Just noticed this group is moderated according to the description 
> though a little silent. To the moderator: if this one needs a Semi OT 
> or OT tag, just lemme know and I'll fix that.
>
> -- 
> With kind regards Veli-Pekka Tńtilń (vtatila@mail.student.oulu.fi)
> Accessibility, game music, synthesizers and programming:
> http://www.student.oulu.fi/~vtatila/
>
>
Moderated??  alt.games.quake in all the years I've been hanging around 
has been an open, unmoderated usenet discussion group.   Google groups 
should have a.g.q. fully archived :)
I think the biggest problem JR may have run into was two fold, 1) the 
engine is not DOS based and (if what JR was expecting was later in Q2 
development) there was a major shift in the game AI that resulted in an 
obviously new .dll that was quite different and resulted in major change 
in the engine code.  These are just guesses.
If JR had been expecting something based on qc, JCs own language, then 
JR got a *HUGE* surprise when he looked at the new q2 code.   It was not 
based on quake C but rather on C+, native Windows, module oriented, 
.dll's, and needed a compiler to hack :)  Clearly this one change from 
DOS to a Windows language would be the monkey wrench in the gears.
McG. 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads