I'm creating 3D Game Editor for my own use. As rendering i took Ogre3D
and MFC
as UI.
I faced with architecture problem.
I am using Document/View architecture and for each Doc. i create new SceneManager
and for each View i create own viewport, camera, my own local Input manager which send input data to local camera. Also it's sending input data and pointer to SceneManager
to global ToolManager
which contains some base tools like Move
, Select
etc. and the pointer to active tool, if it's NULL he is sending input to SelectTool
by default.
I'm only at start but i'm thinking of the future. I think that this strategy of passing some data to the global manager is not so good how it looks now. Can you give me some design advices or articles and share with me your experience.
Thank you for your time.
Edit:
I think that plugin architecture would give a lot flexibility and it`s like all editors do. But i never before faced with that. So i will try to tell u what i think about it. Host App contain
- PLuginManager:
- load/unload plugins
- base interface to add frame/window and other UI
- base interface to communicate with other plugins
- EventListener
- collect all events and EventListeners
- send specific events to it listener
It's all what host app contains. But, how to implement it? I mean all communication. How to load and save files. Edit object with different plugins. I'm thinking to use QT, is it better than MFC or wxWigets.
Can you give me some advices please.