Thanks all for looking at my project and commenting about it.
The purpose of the project is
1. Offer someone who is just starting to learn C/C++ to a build graphics applications. streaming io with printf/scanf/cin/cout is pretty boring to convince someone of the fun in building software.
2. Get someone to write more code because it is fun.
3. Heavy use of classes, object pointers, templates, and other object oriented ideas does not bode well for someone just starting to learn an if statement.
4. Reduce someone's learning curve to understand graphics (ie textures,
scene graph nodes, meshs,...)
5. Introduce abstract concepts such as scene graphs tree hierarchy with scene nodes without the need to understand data structure trees.
6. Focus on large software construction and game development. By letting the game library hold the state of varied objects as integers, one can focus on writing more structure with functions and modular design. For instance, the following function is very useful for a fps style game
Code: Select all
bool FireMissileAtTarget(void)
{
// Reference the camera with an id and create a new
// node for the missile and fire in that direction of what the camera
// is looking at by adding an animator to the node.
// Start a task(function) so that after 3s, the missile
// node is automatically unloaded.
// Start another task that repeats every 50ms checking if the missile
// node is close to any target.
}
If we did not have the library hold the state, one would end of writing container classes to keep track of different object. They would need to pass the container classes and objects globally or through excessive function arguments.
The above function could be called in and tested in a repeated task executed every 50ms which checks if the SPACEBAR is pressed and call
the above function .
Although a scripting language like lua could have been used, it would be better to expose someone to languages like C/C++ which is more likely to be in their future(...or through derivatives such as java/c#/objective C/Perl/...).
Hope my arguments make sense....