the DX pipeline

This is how DirectX works. Geometry data is used for realtime rendering!

The graphics card has own CPU.

< IndexedFaceSet solid="true" coordIndex="0 1 2 3 -1 4 7 6 5 -1 0 4 5 1 -1 1 5 6 2 -1 2 6 7 3 -1 4 0 3 7 -1 ">< Coordinate DEF="coords_ME_Cube"point="1.000000 1.000000 -1.000000 1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 -1.000000 1.000000 -1.000000 1.000000 0.999999 1.000000 0.999999 -1.000001 1.000000 -1.000000 -1.000000 1.000000 -1.000000 1.000000 1.000000 "/>< /IndexedFaceSet>

This is how 3D geometry data looks like (for a simple cube).

This is how a simple 3D scene looks like (on paper).
How to get this result on screen?

There are many pre-requisites:

-Installing Visual Studio + DirectX SDK
-Making some demo source codes work to figure out for instance how to build source codes correctly, which directories to use etc.
-Indentify suitable 3D editing software
-Understand fundamentals of the DirectX rendering pipeline
-Create suitable 3D objects for demonstration purpose (if this is not done inside the source code).

For instance when examining the triangles demo, including variants that blend colors between the corner points, it is interesting to understand why the colors are actually mixed together, and how this can be controlled.

Actually I want to re-program this game in 3D. It is originally a 2D game using isometric projection. All bitmap graphics!

-Memory layout (how can ingame objects be stored in memory, containing for instance position information?)

To develope an actually working game no 3D grapics are required, to develope basic functionality it is sufficient to render some 2D text instead of 3D buildings. Later the placeholders can become replaced with real 3D objects!

-What is the best way to represent the game data using modern C++? There should not be too much learning effort for some obscure technology. To test functionality, simple tree and list views are used, even if later during developement, they are not required anymore.

The AI in this game is rather simple!

Does it make sense for instance to develope a scripting system for game rules and events, and how can it actually access the game data? Hardcoding the AI in C++ seems to be the easiest way but source code increases more and more.

These are some thoughts I am considering before to start writing code. How many buildings can be constructed? Some 100? Some 1000? Maybe a million? The original game allowed some 100 buildings, and moving units limited to 99.

It is also an important descision if to use the original game AI, to modify it a little, or to use something completely different.

Leave a Reply

Your email address will not be published. Required fields are marked *