There are two MSVC projects: one for the engine, and one for your game. They are in one workspace. The "nothing" game (the game that does practically nothing) is provided - the skeleton. You make your game by inserting your code into the skeleton, make your classes, build your structures, etc.
You generally should not bother about "the engine" project nor the engine sources. If you do, be very very warned - you'll lose your time, your money, your life will be ruined and you'll eventually go to hell.
The directory structure:
src is where all the source files live. The subdirectory game there is where we advise you to place your game code. The initial game skeleton is there also.doc is where all the documentation lives.tex is where textures for your terrain, entities and graphical indicators live. Texture formats supported: bmp, jpeg, tga (can be with alpha), png (can be with alpha), dds.efx is where D3DX effect files live. They are set up for common things, change them only if you have lots of time to spare and want to tune the visual aspects of your game.mesh is where 3D meshes live. There are some simple common meshes, and we strongly advise you to be happy with these :) The mesh format supported is .XThe initial game skeleton initializes the terrain, adds some entities to the world and sets them running around. It also creates the camera and controls it via user input.
There's simple entity class CMyEntity that extends base CEntity class, and also contains velocity, general purpose bit flags and a "decider" stuff - pointer to IDecider and a counter. Entity flags indicate whether the entity always stays on the terrain surface, whether it is affected by gravity, whether it touches the terrain at a moment, and whether it is killed and should be removed. Entity has single update() method that does the "physics" for the entity, keeps it in valid map boundaries and processes logic via decider.
Entity decider is an example of logic processing implementation: it gets called based on a counter (for example, every 3 updates) and it can do whatever it wants with the entity (change it's size, color, velocity, flags, see grids, etc.). You're not forced to using a IDecider - it's just an example.
Also there's game class CMyGame that extends base CBaseGame class. This is your "game", whose methods are called by the engine for some tasks (eg. initialization, game logic, input processing, etc.).
Prev: Introduction.
Next: Complete game example.
1.2.17