Engine Progress (uzurpator)
Posted: 14 Mar 2007 15:23
This topic i shall use to report my progress on implementing the engine on my side (I ecourage XerusTC to do the same). Once we have more or less complete framework, we can switch to one of the engines and continue work just there.
Anyhow.
My engine is composed of three parts.
Server - a part that is responsible for pushing the game forward and for synchronising clients
commLink - a layer that organises the client-server communication.
Client - a console which displays messages and graphics.
The whole game is build on a 'streaming processing' idea. in short - it create several threads ,called executors, which traverse a container of tasks in seach of a task that can be performed. The tasks may be interdependant (ie task 4 can be performed only if task 7 was completed). The processing is finished once all tasks are completed.
This approach has the advantage that it does not pose much overhead on single cpu and scale very well with the number of cpus. Read: the game is going to be massively multithreaded and will scale very well with 2 and quad core computers of tommorow.
The graphics:
For the graphics I am using Ogre 1.4 - Eihort. This is a very advanced, fast and mature graphics engine.
For input i use OIS - a library which was made specifically to capture OGRE.
A toolset is composed of Boost - a multi-platform library that can be considered a 'taste' of the C++0x - the next revision of C++ standard.
---
What is done:
1. Setup of envirnemnt
2. Land generation engnine (common with TTD patch)
3. Frame building scheme for both client and server
4. Very, very, very basic commLink
5. Ogre and OIS initalisation and running.
Current work - making of land generation use parallel_for to speed up the process on multi core, create an actual map, display the created map in a way similar to the ancient terrain proto.
Anyhow.
My engine is composed of three parts.
Server - a part that is responsible for pushing the game forward and for synchronising clients
commLink - a layer that organises the client-server communication.
Client - a console which displays messages and graphics.
The whole game is build on a 'streaming processing' idea. in short - it create several threads ,called executors, which traverse a container of tasks in seach of a task that can be performed. The tasks may be interdependant (ie task 4 can be performed only if task 7 was completed). The processing is finished once all tasks are completed.
This approach has the advantage that it does not pose much overhead on single cpu and scale very well with the number of cpus. Read: the game is going to be massively multithreaded and will scale very well with 2 and quad core computers of tommorow.
The graphics:
For the graphics I am using Ogre 1.4 - Eihort. This is a very advanced, fast and mature graphics engine.
For input i use OIS - a library which was made specifically to capture OGRE.
A toolset is composed of Boost - a multi-platform library that can be considered a 'taste' of the C++0x - the next revision of C++ standard.
---
What is done:
1. Setup of envirnemnt
2. Land generation engnine (common with TTD patch)
3. Frame building scheme for both client and server
4. Very, very, very basic commLink
5. Ogre and OIS initalisation and running.
Current work - making of land generation use parallel_for to speed up the process on multi core, create an actual map, display the created map in a way similar to the ancient terrain proto.