Tales of the Rampant Coyote
Adventures in Indie Gaming!


(  RSS Feed! | Games! | Forums! )

Wednesday, June 24, 2009
 
The Evolution of a Game Engine
Scarily enough, I've been at this game development thing for a pretty long time. I have a few pretty obsolete books on making games in my library. Even discounting the really ancient ones (like Basic Computer Games and a couple of books on Commodore 64 game programming), there are some pretty vintage books.

I've been thumbing through some of these old books recently, including one that I picked up as a professional in 1995 but had hardly ever read. It was Lary L. Myers "Amazing 3D Games Adventure Set." Mainly, the book explained the source code and use of his "Publicware" raycasting engine, ACK-3D, which was a little more sophisticated than Wolfenstein 3D's engine.

The ACK-3D engine was released in the post-Doom era, which made it slightly obsolete even when new. Of course, the engine is almost hopelessly useless in this day and age, fifteen years later, except possibly by some indie developers who embrace the retro ethic (while I believe it uses a different raycasting engine, Terry Cavenaugh and Stephen Levelle's recent narrative game Judith would be a recent example).

But out of curiosity, I went online to see what ever had become of that little engine. How far did it go, and were there any notable examples of its use?

To my surprise, I found out that it is the great-great grandfather of 3D GameStudio. I doubt there's a single line of code in common between the 1993 original source and their latest A7 Engine (which, I should add, seems to be priced appropriately for indies, though I've never worked with it).

I doubt anybody but a code-monkey like me with a passion for game development would also find that interesting, but I thought it was an intriguing bit of history and look at the evolution of a game engine over the years.

Labels:



Did you enjoy this post? Feel free to share it: del.icio.us | Digg it | Furl | reddit | Yahoo MyWeb

Comments:
aaah ack-3d... I remember that and a whole host of other engines. really old stuff like fastgraph, writing your own 3dstudion file reader, scitech mgl, wgt graphics library...

oh my.
 
That was a nice little read. I've actually spent a good amount of time looking into engines but at this point in the game I'm coding most of my games from the ground up for programming experience.

There are a lot of game engines priced well enough for indies but for anyone looking to become a coder I advise you know programming well before using an engine... you will have a hard time doing engine work when your used to having everything done for you.
 
"Amazing 3D Games Adventure Set"

I used to have that book! Or maybe I still do and just can't find it. Anyway it's amazing what the "spirit" of that little engine turned into.
 
RayCasting is probably the best option when it comes to speed/quality for Flash games. My latest game, Rombo, uses a RayCasting engine which is similar to Wolf3D like the one you describe. And my new game under development, Electric Perspective uses a Doom-like raycasting renderer (well not very Doom-like from a technical point of view, but the rendering result is similar).

I tried writing polygon engines in Flash but its too slow for that stuff. In fact its too slow even for raycasting so i had to use double pixels :-P.

Coincidentally, Electric Perspective will be more puzzle and story oriented than action oriented, like the "focus" of ACK seemed to be. I suppose having old looking visuals raises a need for the other parts of the game to be involved :-P.
 
I'm glad I'm not the only old fart who remembers ACK-3D and that book :)

Kostas - you know, I didn't really consider flash or web-based games... though it seems to me that in the era of web-based engines like Unity, it's only a matter of time before that issue with poly rendering in Flash gets addressed.
 
Yes, although it seems like Adobe doesn't want to make Flash too dependent on 3D card features so it can be used in very low spec or badly configured (Intel + default XP/Vista setup) computers and be portable across several platforms (they're looking after smartphones, netbooks and similar devices).

Their new "drawTriangles" joke of an API in Flash 10 provides very little in the way of 3D. It doesn't even take 3D coordinates! I like how they tell in the docs that this was added mostly for 3D, yet the function doesn't use 3D coord and you have to do all the transformation, clipping, etc in ActionScript (or haXe in my case).
 
Post a Comment

Links to this post:

Create a Link



<< Home

Powered by Blogger