Question submitted by Anonymous (19 June 2000)
|Return to The Archives|
|What kind of hybrid engines (combining different techiques like bsp trees, oct trees and portals) is it possible to make? The idea behind this is to make a flexible engine for different types of scenes (indoor, outdoor etc.)|
Sorry, folks, but this one's just as much for me, as it is for you. I
don't often get personal in this column because it's not the proper forum
for such things. However, in this case I'm going to make an exception...
Many, many moons ago I was hired for my first professional programming job. It was a small company named FACS -- a contract house that specialized in financial work (FACS stood for Financial Accounting Computer Services). However, I wasn't hired to do finance software, I was hired to write computer games.
When I showed up for work on the first day, I was 19 and had a large enough ego to cover every man woman and child north of the Mason-Dixon line. I had never met anybody that could program half as well as I could. I obviously wasn't looking hard enough, because by the time my first day at the new job was over, I had experienced my first of many humblings.
My first project was a port of Activision's "Apache Strike" from the "Fat Mac" to the C-64 (boy, those were the days :). We weren't given the source code, we had to create a specification based on playing the game and ::shudder:: reading the manual. This particular game was half-screen 3D graphics (line drawn with hidden line removal) and too many sprites for the C-64's hardware to handle.
Did I say "too many sprites for the C-64 to handle"? One day, I watched one of the programmes (Richard) break the record for C-64 sprites. The hardware could handle eight, I think the record was somewhere near 24 at the time (using Display List Interrupts to cheat the hardware.) Richard had that C-64 chugging out 40 sprites!
Shortly after that, I witnessed one of the most amazing games I'd ever seen... something like Marble Madness (also on the C-64.) Not only was the game itself amazing, but this game was written entirely in the C-64's monitor! (for those of you not familiar with the monitor, it would be equivalent to writing a full game in ASM code in DOS's debug program.)
One day, while faced with a particular challenge, I asked the project manager (Howie) the following question: "Can we do this?" His reply was simple and to the point: "That's the wrong question. The real question is, how are we going to do this?"
I hate to sound pathetically cliche, but the fact is, Howie's response changed my life. I've never looked at a problem in the same way since that day. I used to see problems like that as brick walls -- you knock it down if you can. Thanks to Howie's response, I now look at problems as challenges. There is a solution, it just needs to be discovered.
When you start thinking of things in this way, you start to discover that you question every single limitation you're ever faced with. Just because some chap from the patent office says you can't go beyond the speed of light shouldn't ever stop you from trying. You'll probably learn something even if you fail, but just think -- what if you succeeded?
If you haven't noticed, I have answered the question. Don't ask about limitations. Accept EVERYTHING as possible, and accept failure only when you must.
Response provided by Paul Nettle
This article was originally an entry in flipCode's Ask Midnight, a Question and Answer column with Paul Nettle that's no longer active.