Worklog for Odds On

Worklog 1

Return to Worklogs

F-Engine 3D(Posted 2004-11-04)
This is an engine I am working on for Blitz3D. It is not aimed for any specific genres, it's merely intended to be a basic engine to make the development of your game that much easier.

The basic idea behind this engine is to get people to finish the underlying structure of their project before they begin worrying about petty details such as the appearance of the menus etc etc.

The engine is made up of a few different parts. Firstly is the "project wizard". This allows you to setup intro sequences, menu layouts (using a treeview), include files / libraries and then compile it into source code.

Next is the generic library of functions to aid in the development of the game itself. The main feature is the entity system which allows you to apply gravity and other simple forces to your game objects automatically.

Below is more detail on how certain aspects of the engine currently work.

Creating Menus
When you are on the Menu tab of the project wizard (screenshot soon) there is a large tree view with a single entry called "Main". This is the main menu screen and you cannot edit/delete this node. Down the side are options to Add / Remove / Rename new menu screens.

When you click on "Add" you will be asked to choose a name for this new menu screen (eg "Options"). It will then create the menu as a child of the "Main" screen. You can then select the newly created "Options" node and create more menu screens as childs of this menu screen (eg "Graphics", "Sound", "Controls").

Below the treeview are several settings for the menu screen, including a button graphic, up / over / down button sounds, and an action to perform when the button is clicked. There are several built-in actions to perform including "Start Game" and "Exit". You can also select a custom written script (B3D source code) to execute when the button is pressed.

That pretty much covers the menu system. It has been designed so you can design your menu and have it in working order in very short time. You can then come back to it at a later date and specify menu button graphics to use etc.

Library of Functions
This is basically an entity system for your projects. It does not interfere with the running of your game in a big way. For example, if you wanted to create a sphere that can be used with the engine you would do something like this:

myobject = F_Entity( CreateSphere(  ) )
The mesh itself is returned by the F_Entity( ) function which means you can treat it like you would any other mesh. The only difference is the name of the mesh contains a Handle to an Entity type so it can be affected by the functions in the F-Engine library.

More info coming soon!