Raymond
Demo: Green Dragon

Newer: "Exception handling: C++ STL"

Older: "Character design ideas"

Framework system architecture design ideas

Studying previous code to design engine framework.

Possibly: A Game (framework) class which is initialised and called by the main() loop. But we'll see...

1  GameEngine* game = new GameEngine;
2  game->LoadShader...

I don't necessarily want a new game environment all being created in main().

Inheritance could work:

GameEngine (windowing loop and defines scenegraph, renderer classes)

GameWorld (inherits from GameEngine and allows for scene creation, key handling, renderer selection)

SoftwareTitle.cpp -> Contains ``main()`` Starts GameWorld init and GameLoop. OpenGL + windowing init.

(phoxtrace.cpp)

Each object will contain its own shader program, presumably. Pipelining might make this more efficient.

Renderer (Buffers, Transformation, Shaderprogram)

GraphNode
    SceneGraph (overall transforms, contains nodes)
    SceneNode (objects inherit from this)

Transform : SceneGraph
Model     : SceneNode
Light     : SceneNode

In Interactive3D:

Framework is overrided by a custom game world using object-oriented inheritance.

The Scene Graph

All inherit from GraphNode abstract (as in aforementioned project).

SceneGraphs contain objects, SceneNodes are leafs.

Could create lineage of specialised nodes using object-oriented design:

  • TransformationNode(Graph) For entire branch transforms
  • MoveableSceneNode(Node) For a moveable node
  • TexturedCubeNode(Node) Inherits from MoveableSceneNode.

Hey, this kinda works for skeletons. Each bone inherits from a moveable bone node which keeps track of its own transformations. I reckon... they'd have to be graphs, though. This is very confusing.

Rendering

Renderer class (handles shaders).

SceneNodes call Renderer. Each node can pass its buffer handle, perhaps.

Each node creates and maintains its buffers which are passed for drawing.

(Edit) General architecture for current working demo:

General architecture for current working demo.

Newer: "Exception handling: C++ STL"

Older: "Character design ideas"