Project PLASMA FPS 2004: Thread 4

Blitz3D Forums/Blitz3D Programming/Project PLASMA FPS 2004: Thread 4

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Whats in the Works:

Improved Engine Resource management using Managed ID referencing. This is implemented in most of the code modules and new ones will include it. What is Managed ID Referencing? Well, in a nutshell, I use Blitz custom Types to package every 'object' in the engine. An array of types is used to store and reference each object by an id (index) number. A specific MAX number of objects is defined for ids.

A FILO stack is used to track what objects IDs are in use or not in use. IDs are push and popped of the stack as needed. I found this form of management to provide the best flexibility and control for both dynamic and predetermined events. I will be setting up objects to reference others by id. My work with Databases is a heavy motivator for this implementation. Its also known as "Table Oriented Design."

Blitz3D Catagory Code Modules. These are modules that package many of the Blitz2D/3D Catagory Objects (ie: Mesh, Sound, Texture, etc) into its own code module for use by the engine. These 'catagory objects' will contain pratically every Blitz property needed to define Brush, BSP, Camera, Entity, Light, Listener/Audio, MD2, Mesh, Mirror, Pivot, Plane, Sprite, Surface, Terrain, Texture. I have found it much easier to edit catagories only referencing or copying them as needed for other objects.

Improved Bot AI. Using both Recorded Waypoints and Pathfinding Algo for collision avoidance. I'm going to extend seek and destroy algo to seek out specific waypoints. A variety of Game objects/items can be placed at the 'target' waypoint in which bots seek them out. I have not quite worked out the collision bug in my A* so I'm considering a rewrite. Bots will need some form dynamic pathfinding in order the their behavior to seem more realistic.

Improved level Loader. Implementing modular Loader functions in the code modules. Loads game data in ASCII format from CSV and Data files. Managing the level data in CSV is relatively easy. In fact, I'm using Microsoft Excel as level editor to modify the CSV contents.

Improved Type Writer][ Code Wizard. I use this utility to generate code, saving much time. The improved version generates initialization, update, destruction, csv loader/saver object functions for use with Level Loader, Editor, and Game Saving. All is that remains for the coder is to write is the modifier and interactivity object functions and modify as necessary. The functions produced are are specifically designed to support the Main.bb framework. Checkout the help file here.

Game Objects: Doors, Ladders, Lifts, Spawners, Keys & Switches, Props, Soundfields, Lights, HUD(Gadget), and Special FX (Particles, Flares, Decals, Dynamic Light Maps) Code Structure (Blitz Type) have been defined and written. Just need to write needed modifier and interactivity functions for Update functions.

Guns & Ammo Code pending. (In need of Futuristic weapontry (ie: LaserGun, PulseRifle, and PlasmaCannon) with reload and recoil animation if possible:) I anticipate the implementation of ammo will be similar to particles, however, they will use meshes w/ more polys and have properties for damage effects, etc.