Where To Start
Yes, I want to write my own 3D games
GameEngine provides ALMOST everything you need to write 3D games and other audio/visual applications. It provides a complete application framework, supports 2D 'head up displays', it has a very fast physics simulator, the ability to easily play (and mix) movies and music, a 3D worldspace partitioning system, managed instancing of 3D assets, and more.
But it does not provide the 'game logic'.
You must write an executable program which contains the game logic - which PROGRAMMING LANGUAGE you choose for this is not important.
Without further ado, let's start looking at what our 'Game Client Exe' might look like :)
At minimum, your game will consist of three items:
#1 - Launcher Stub (program entrypoint)
#2 - Your Game Class
#3 - Your Player Class
GameEngine is presented in the form of a DLL which exports just one function. The name of the function is 'Launch', which looks like this:
Launch proc uses ebx pGE_EventSink, pPlayer, pSerial, bWant3DAudio:BOOL
Your Launcher Stub must load the GameEngine DLL, obtain a pointer to the Launch function, and make a call to the Launch function, passing appropriate input parameters. This call will not return until the application has terminated.
GameEngine will notify your game of various events via the event handling methods defined by a class called GE_EventSink. Your game's main class must be derived from GE_EventSink, however you are certainly free to add your own methods and data variables. Your game's logic will be implemented within the event-sinking methods of your 'GE_EventSink-Derived Game Class'. From within these methods, you have full access to all the functionality of GameEngine.
You'll probably want to define your own Player class for each game you write. It must derive from a class called GE_Player. Here is where your game can store 'per-player data' and such. Every game is going to need at least one Player, representing the person currently playing the game, ie, the 'local user'.
GameEngine does not currently require a Serial, so ignore the pSerial parameter.
If you are planning on using 3D audio in your game, make sure to pass TRUE for the bWant3DAudio parameter of the Launch function. If you pass TRUE when the local system is not capable of 3D audio, GameEngine will use 2D audio instead.