Demos
Note: These demos do NOT demonstrate the game engine I have been discussing. They are just experiments with previous methods of object behavior and graphics.
Star Arena 3005 - January 1998
I have always enjoyed full 3D movement, and I really liked the X-Wing series of games when they came out. But I wished the craft moved faster, and that there were more indicators to help during dogfights. Larger quantities of spacecraft wouldn't have hurt either.
So, I came up with Star Arena 3005. It has features some simple jet models flying around in outer space. The computer ships will chase each other down. The function keys allow for multiple views.
The .CFG file is used to set up the size of the playfield and how many ships are on each team.
My biggest accomplishment with this demo was figuring out how to interwine the linked list of game objects along with linked lists that tracked which grid cube they were in to help limit collision detection. This methodology sped up the framerate by 3 times. It also helped with calculating which light sources should light up each object as it is rendered.
Many of the commands from the X-Wing series are available, such as SHIFT A for Attack My Target, and SHIFT C for Cover Me. Two new commands are SHIFT H for Help My Target, and SHIFT P for Protect My Target. There is also a small indicator to show where your enemy is if it is not on the main screen. I later saw that implemented in Freespace, a very well put together space sim!
Star Arena 3005 is solely a single player game.
It supports both OpenGL and Glide, which are separate executables. The Glide version was developed and tested on Diamond Voodoo and Diamond Voodoo 2 cards. I learned the hard way how difficult it is to maintain different graphics sets in a single project!
To run the program, just unzip the archive to any directory and run the Star3005 (OpenGL) or S3053Dfx (Glide) file. You can control your ship with the arrows, but a joystick is HIGHLY recommended, since the craft do travel at high speeds, and good reflexes will be necessary to keep a bearing on your target! The OpenGL version runs in a window, since I had not yet learned how to render a full screen OpenGL application.
DirectX 5.0 is required.
Star Arena 3005 OpenGL (600K)
Star Arena 3005 Glide (600K)
Meteor Belt - January1999
I was playing around with 2D graphics and multiplayer programming, and came up with this demo to prove the concept of synching up session times between host and client, as well as practicing attaching sounds to objects as they travel across the screen.
The ship can't collide with any of the asteroids, but you can shoot them. In multiplayer, ships can shoot each other, but they won't collide or explode. There is no scoring or anything else, since this is just a proof of concept.
To run the program, just unzip the archive to any directory and run the BaseMFC file. Use the arrow keys to control your ship and the space bar to fire. Press Escape to bring up the Windows menu again.
Meteor Belt was developed using MFC as a base for the Windows GUI. It represents my second draft in game engine design, learning lessons in coding and data structure from my first experiment, Star Arena 3005. It is also my first attempt at using DirectDraw to render bitmaps.
The multiplayer TCP/IP host search routine is a little flaky, since the program uses DirectX 5.0. If you use a dial-up connection to access the internet, then using the TCP/IP option for multiplayer may result in strange behavior. IPX is recommended for LAN operation, if you have it installed.
All the sounds were taken from the XWing vs. TIE fighter CD. I hope Lucasarts doesn't mind!
TriGuy - April 1998
My next task was to experiment with rendering a complex 3D model with animation. TriGuy was the result. Actually his name wasn't officially TriGuy, but he acquired it as a nickname from someone I showed him to.
Seeing him run around for the first time gave me that warm and fuzzy feeling that you get from trying to do something and succeeding at it :) Especially because of the further development that I knew it opened me up to.
The A and Z keys control his forward/backward movement.
X and C make him walk sideways.
Space makes him jump.
Ctrl makes him duck.
Shift makes him run.
The Mouse is used to control his direction.
The Left mouse button fires the weapon (an incomplete alpha texture)
The Right mouse button activates vertical pitching.
The F2 key is used to switch views from first person to third person to stationary tracking to stationary. The tracking view is the best view to appreciate him from, if you move him to a black area first.
There is no collision detection on any objects or walls.
I've included only the OpenGL version here.
In the menu, choose Enter Game to get the demo running. Also, similar to Meteor Belt, you can start up a multi-player session and see other players running around with their own TriGuy.
Billiards - March 2003
In the beginning of 2003 I was taking a serious look at collision detection in 2D, and hoped to evolve it to the 3D setting. The 3D stuff hasn't happened yet, but Billiards was the result of my initial experiments. It detects the first collision, moves everything up to that point, applies the collision, and repeats. Collisions are possible against sides, corners and other billiards.
Since it is in Visual Basic, the installation may ask you to re-boot your machine. The full installation is inside a zip, so you will need to extract all of the files to a folder and then run setup. If you already have VB, you can just download the executable and run it directly.