id Director and a Texas state of mind
August 4, 1997
by Alex Zavatone
Pat says, "It's kind of like walking through a Museum of Modern Art... you wander around looking for direction, confused by strange sites and ideas, struggling to make sense and understand. But every now and then, you find yourself confronted with genius." This is Zav's Brain.
Editor's Note: Common decency prevents us from illustrating any of the ideas in Zav's Brain.
Offerings to the Gods... Dateline: Halloween 1997
After driving 1802 miles in 2 days I figured that if I didn't write this article, Pat would have me fired. Not Good. So the phone rings and I crawl off of Don's couch and find out that American McGee of ID Software is on the phone. I wake up REAL fast, confirm that it is not 10am but 1pm and arrange my visit to the Gods of 3D Gaming. I am the first grader on his first field trip to the zoo.
But "why" you ask? Isn't this forum about Director issues?
One of the things that I try to do is embrace those people and companies who "do things right." ID is the living embodiment of "doing the right thing" when it comes to creating the most impressive type of PC gaming to date. I try to write software that sucks less. Their software not only doesn't suck but has invented an entire genre of gaming.
Carefully I tend to my offerings. One real Cuban cigar from Havana. One titanium watch from Copenhagen that says ID Swiss on the Bezel and 2 rolls of yet to be developed film, with the Quake II logo photographed on everything interesting from San Francisco to Dallas. Luckily, I manage to catch the guys going out to a smoke break as Carmack is pulling in in his bright red Ferrari F40. I remember Brian Hook's quote of how wonderful it is to be working for a programmer who "gets it". Obviously, I don't get it. Not yet anyway. Gifts are gifts but what is so great is about how they can create such world shattering software and how can 'lil ol' me tries to understand part of that picture.
American shows me around. I resist, no fight, my natural urge to schmooze and only talk about bemeers with John Cash. We all sit down as American shows me the world builder dev tools and Cash bugs him about a misspelling in the game text for Quake II and we look at the final stage of the game. I want to get it.
The previous night/early morning somewhere in either New Mexico or north western Texas, desperately trying to stay awake, my mind was filled with the architecture of the Director and also of Quake. The art of designing a complex system that is elegant and easy to understand is where the genius lies. Carmack deserves his F40. Architecture is everything.
My time at ID is short and naturally not long enough. I'll have to chat with McGee over dinner and at Don's & Justin's latest "Big Dallas Bash". These guys are LOADED because they got it and are doing it right - or at least right enough. Part of that picture I do get and it is this: when designing a project, you must know enough about the whole thing to build a solid architecture or design. Look, you do not build a house without a blueprint do you? Many of us have come the way where we had a buncha wood, a few nails and a hammer and we have learned to build a house the wrong way. We may build nice houses but there are better ways to do it. The blueprint is your program's architecture. Think about the support structures of the house and the foundation, then the wiring/plumbing to make it work and finally, the walls and paint.
House: |
Program |
Blueprint: |
Architecture |
Foundation: |
Handler structure or class structure |
Frame: |
Handlers built within that structure of methods for your classes |
Wiring/plumbing: |
The meat - the code within your handlers |
Paint/walls: |
Graphical User Interface that ties into everything that is going on behind the scenes. You could think of one |
To extend the paint/walls metaphor let's add a light switch and note that that represents a button that ties into the electrical system or the methods for your classes.
How you build a complex system or a complex production in Director based on this information? Storyboard it out till you have enough to specify an architecture. Then fill in your "classes" or major functional areas. From there, figure out what handlers need to belong in those classes and then add the code to the handlers.
For example you may have a sound class that plays sounds in different channels and determines the volume depending on how far a character is away from it. Along with a "DrawToScreen" class that takes care of what sprites are in front of each other. Another class or series of classes would be for the GUI (Graphical User Interface) and the handlers within could take care of buttons, dialogs and the like. This class could easily call the handlers in the DrawToScreen for display purposes. Once the structure and purpose for all your classes and handlers is clear on paper and in your head, all that has to be done is to write the lingo that makes it happen. IMHO, this is many levels easier than coding the whole thing one line at a time.
What a day huh?
Now American was very gracious to allow a visit from such a shady character as myself and on a "no visitors day" so first of all, I wish to extend him a big California "thanks dude". Second of all, you're late and it's dinner time. You said Sushi?
Copyright 1997-2024, Director Online. Article content copyright by respective authors.