I started a project and it seems like I need some feedback during the process :]
You know, when you do it first, you might feel like you do many things terribly wrong, so better get criticized to stop making trash in time )
For now I can tell you little things.
My future game engine has simple name Keng.
First to say, it is 2D.
Second, it >must< have strong OOP. So you can design whatever.
I tend to start with some simple RPG.
How is my engine designed?
There are 3 basic classes:
TObject,
TBasis::TObject,
TComponent::TObject.
Every Object has 4 connections: 2 horizontal - prev and next, 2 vertical - base and sub (all - intrusive lists).
All other classes inherit whether Basis or Component.
Basis is built on Object vertically: it is added as sub to Object, and Basis has Object as its base.
Component is built on Basis horizontally: it is added as next to certain Component in the horizontal list.
Unlike Basis is built freely on any Component, or even on nothing (Null Basis), Component is placed according to its own order index. Basis knows last Components of all order indexes and easily puts new Component in the list before Components with higher order indexes and after lower ones.
Every Component has loopUpdate() method that calls virtual update() method for the Component and each following Component until it reaches the first Basis. So, if you start with the Basis, you make a whole loop, updating every thing.
Now take a look at my implementation please:
https://github.com/trueKrogoth/keng/blob/master/keng/main/obj_basic_types.hpp
(Probably far from the best in many aspects, I would like to know)
Next,
one of important classes is TFrame::TBasis.
First created Frame is gonna be screen (exactly Null Basis). So, whatever you do with your mouse / keyboard / etc is translated to Frame and its objects.
Here is unfinished Frame implementation, but what's more important is that how I design secondary classes. It is somewhat probably very questionable I would like to get an answer about! Feel free to ask anything, I will answer with pleasure. :]
https://github.com/trueKrogoth/keng/blob/master/keng/obj_types/frame.hpp
My Github:
https://github.com/trueKrogoth/keng
(Here is working game with all sources at its current stage)
As it was requested, I put Blizzard(C) for sprites being used :]