среда, 10 февраля 2010 г.

Design components, subsystems and modules...

Hi all,



Unfortunately, at the last couple months I haven't enough time to proceed with development of 3D game engine, and appears to me I wont have enough time in nearest future, but... I really need to continue work on this project, otherwise my IQ/skills/ goes down ... in other words without such work I feel myself really upset...




Brief: Today I'll provide a list of useful design components and subsystems, which will be implemented or used. Also I'll specify the data format which will be used for storing meshes and animations.

It is obvious thing that we need to store and manage either internal 3D engine data (meshes, skeletons, events, and so on) and Game Core data (gameplay entities, in-game events and so on) somehow. So the common used design components are:
  • linked list -- e.g. used for queues;
  • indexed array;
  • Z-ordered list (or array indexed by Z-value);
  • ring-buffer;
  • whatever?
We will need following subsystems either for 3D engine layer and for Game Core layer to parse *.ini files, printout variety of debug-purposed info (which could be filtered somehow in run-time)... So the list of common subsystem:
  • debug/log subsystem -- is used to provide debug messages output;
  • *.ini file parse subsystem -- is used to load configuration and other game data from *.ini files;
  • whatever?
3D engine specific subsystems and components:
  • mesh loader (+ skeleton loader if mesh file format requires it);
  • texture loader;
  • animation loader;
  • scene management subsystem;
  • rendering subsystem based on OpenGL (3D scenes, 2D scenes, fonts, textures etc..);
3D engine external data format:




So, with new approach it make sence to provide a bit more detailed diagram of data flow from game core to 3D renderer layer. I need to figure out the minimum set of data, which has to be passed from game core layer to 3D renderer layer.



to be continued...

WBR,
Vadim

Комментариев нет:

Отправить комментарий