Tooling
- spookyboo
- Silver Sponsor
- Posts: 1141
- Joined: Tue Jul 06, 2004 5:57 am
- x 151
- Contact:
Tooling
I started again with a small project. It is a wizard that generates a GUI framework (Qt, WxWidgets), with all the plumbing (C++) code. Its purpose is to quickly create a framework as a basis for GUI-based applications. It can also be used for fast prototyping. The application below was created in 5 minutes.
The wizard reads a template with a predefined layout, which can be visually modified (menu, toolbars, etc.). The idea is, that creation of a basic framework must be as simple as possible (transforming it to a real application is the tricky part).
Plans are to integrate it with Ogre, create property widgets with binding for Ogre objects, adding gizmo's, etc ...
It is still very much work in progress.
The wizard reads a template with a predefined layout, which can be visually modified (menu, toolbars, etc.). The idea is, that creation of a basic framework must be as simple as possible (transforming it to a real application is the tricky part).
Plans are to integrate it with Ogre, create property widgets with binding for Ogre objects, adding gizmo's, etc ...
It is still very much work in progress.
Gui generator tool https://github.com/spookyboo/Magus ==> Windows binaries https://github.com/spookyboo/Magus_bin
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
-
- OGRE Expert User
- Posts: 1227
- Joined: Thu Dec 11, 2008 7:56 pm
- Location: Bristol, UK
- x 157
Re: Tooling
Very interesting. Once I finish porting your PU to Ogre 2.0 I was going to look at Ogitor to see if you could be used to do some thing like this, ie be the building blocks for a custom engine sandbox. I shall keep a close eye on this thread
- c6burns
- Beholder
- Posts: 1512
- Joined: Fri Feb 22, 2013 4:44 am
- Location: Deep behind enemy lines
- x 138
Re: Tooling
I have a version of PU runtime lib working in 2.0. It's pretty hacky, but I have the billboard renderer working which is all I use. If you are interested I can start another thread about it and further explain the hackiness.al2950 wrote:Very interesting. Once I finish porting your PU to Ogre 2.0 I was going to look at Ogitor to see if you could be used to do some thing like this, ie be the building blocks for a custom engine sandbox. I shall keep a close eye on this thread
Anyway, on topic now ... this GUI toolkit looks really cool for tools programming!
- Thyrion
- Goblin
- Posts: 224
- Joined: Wed Jul 31, 2013 1:58 pm
- Location: germany
- x 8
Re: Tooling
maybe i choosed the wrong language with WPF...
my thoughts were:
- wpf is easier, faster to develop than Qt, WxWidgets
- there is an exisiting pattern(PRISM) for easy modular programming
- i would need an editor mainly to manage my game data (material scripts are just files, too)
- for the ogre specific parts i wanted to use existing things like the ogitor functions (just the code behind without the gui)
- mogre was not up to date and seems dead
conclusion:
.Net for GUI application and C++ for the Ogre3d specific parts
so far i have an interface between C++ states and the wpf GUI. I' am just passing my flatbuffer binary data from the c# part to the c++ part.
Currently cant show the viewport working ... (trying to port the c++ part to ogre3d 2.0 and move ogre into a thread) but the 3DViewer works with D3D9!
it's just a single person spare time project so maybe it will never be finished (but opensourced XD)
my thoughts were:
- wpf is easier, faster to develop than Qt, WxWidgets
- there is an exisiting pattern(PRISM) for easy modular programming
- i would need an editor mainly to manage my game data (material scripts are just files, too)
- for the ogre specific parts i wanted to use existing things like the ogitor functions (just the code behind without the gui)
- mogre was not up to date and seems dead
conclusion:
.Net for GUI application and C++ for the Ogre3d specific parts
so far i have an interface between C++ states and the wpf GUI. I' am just passing my flatbuffer binary data from the c# part to the c++ part.
Currently cant show the viewport working ... (trying to port the c++ part to ogre3d 2.0 and move ogre into a thread) but the 3DViewer works with D3D9!
it's just a single person spare time project so maybe it will never be finished (but opensourced XD)
-
- Orc Shaman
- Posts: 737
- Joined: Fri May 31, 2013 2:28 am
- x 65
Re: Tooling
hmm...maybe not...https://github.com/SonyWWS/ATF/wiki/WPF-Applicationmaybe i choosed the wrong language with WPF...
open sourced first class level editor... maybe you can combine...
that would make it not cross-platform...but the 3DViewer works with D3D9!
can't you just grab the handle and use external window?
wow, looks like you have lots of spare time ... it looks quite advanced, did'nt realize your that serious...it's just a single person spare time project
on every place i've read about open sourcing a project, one advice keeps showing up...so maybe it will never be finished (but opensourced XD)
open source as soon as possible...preferbly from day one...
who knows maybe it won't be just a single person's project, and maybe it will be finished( what ever that means for software products... )
the woods are lovely dark and deep
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..
coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos
but i have promises to keep
and miles to code before i sleep
and miles to code before i sleep..
coolest videos link( two minutes paper )...
https://www.youtube.com/user/keeroyz/videos
-
- Minaton
- Posts: 933
- Joined: Mon Mar 05, 2012 11:37 am
- Location: Germany
- x 110
Re: Tooling
I would say WPF is good to develop fast gui applications. But if you like to develop cross platform like ogitor you have to use wx or qt.
-
- OGRE Expert User
- Posts: 1227
- Joined: Thu Dec 11, 2008 7:56 pm
- Location: Bristol, UK
- x 157
Re: Tooling
That may not be strictly as true as it was as .net is now going open source and cross platformTransporter wrote:I would say WPF is good to develop fast gui applications. But if you like to develop cross platform like ogitor you have to use wx or qt.
- Thyrion
- Goblin
- Posts: 224
- Joined: Wed Jul 31, 2013 1:58 pm
- Location: germany
- x 8
Re: Tooling
i know ATF, and already ignored it, because it's windows forms and is just providing a basic framework that i already have (more or less).hmm...maybe not...https://github.com/SonyWWS/ATF/wiki/WPF-Application
open sourced first class level editor... maybe you can combine...
For me it looks outdated. What i would realy like to do, is replacing the current editor base with the "wpf isolated shell"
yes that was the decision i had to make ... but i am developing on windows only anyway .. so i made it (doesn't mean i cannot develop for other platforms).that would make it not cross-platform...
if windows 10 will go the shop/subscription only route, all desktop apps will a have hard time -_-
do you mean like in windows forms and a panel? that's not possible with wpf (Airspace issue, there is no good solution expect the 3DView)can't you just grab the handle and use external window?
not realy.. and it is getting lesser and lesserwow, looks like you have lots of spare time ...
i am serious in making a game, made with my own dirty hands, that i can be proud of itit looks quite advanced, did'nt realize your that serious...
i will as soon as possible ... no one want to work with shit code even don't compile.open source as soon as possible...preferbly from day one...
are you interessed?
- Herb
- Orc
- Posts: 412
- Joined: Thu Jun 04, 2009 3:21 am
- Location: Kalamazoo,MI
- x 38
Re: Tooling
The concept behind this tool is great. It's taken a lot of work for my current project (using Ogre / Qt / cmake) to work well together with a build system that will work cross platform on both windows and linux.
- Thyrion
- Goblin
- Posts: 224
- Joined: Wed Jul 31, 2013 1:58 pm
- Location: germany
- x 8
Re: Tooling
sry, i've got a bit offtopic ...
what tool do you mean? from spookyboo? currently i see only a dockingpanel, nothing that's suggesting a build system? O.oHerb wrote:The concept behind this tool is great. It's taken a lot of work for my current project (using Ogre / Qt / cmake) to work well together with a build system that will work cross platform on both windows and linux.
- spookyboo
- Silver Sponsor
- Posts: 1141
- Joined: Tue Jul 06, 2004 5:57 am
- x 151
- Contact:
Re: Tooling
Thats not the tool. That's the output
Gui generator tool https://github.com/spookyboo/Magus ==> Windows binaries https://github.com/spookyboo/Magus_bin
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
- Herb
- Orc
- Posts: 412
- Joined: Thu Jun 04, 2009 3:21 am
- Location: Kalamazoo,MI
- x 38
Re: Tooling
Right, that's why I indicated concept.
@spookyboo - I take it this is an opensource framework? If so, any plans to share the repo link to take a peek? I know it's a work in progress, so it's fine that it's not complete. I'd like to see your approach so far.
@spookyboo - I take it this is an opensource framework? If so, any plans to share the repo link to take a peek? I know it's a work in progress, so it's fine that it's not complete. I'd like to see your approach so far.
- spookyboo
- Silver Sponsor
- Posts: 1141
- Joined: Tue Jul 06, 2004 5:57 am
- x 151
- Contact:
Re: Tooling
Finished phase 1 of Magus (the GUI wizzard). Features added:
Add/delete docking windows
Add menu, toolbar and tabs on each window
Add default actions (About box, Reset window layout, ..)
Add transformation widget to toolbar (more to come)
Load and save projects
Generate a complete Qt Gui framework project (.h / .cpp files)
An icon set (specific for 3d applications; of course it is also possible to use your own icons)
Still a lot to do, but the basics are in place.
Next steps for phase 2:
Add Ogre rendering widget
Add property widget with binding for Ogre objects.
Phase 3 and further will contain gizmo's, node editor, Wx generation, C-make files, etc. I share it until it becomes more mature.
A preview:
The Magus application
http://www.fxpression.com/temp/magus.png
The generated output
http://www.fxpression.com/temp/editor.png
Add/delete docking windows
Add menu, toolbar and tabs on each window
Add default actions (About box, Reset window layout, ..)
Add transformation widget to toolbar (more to come)
Load and save projects
Generate a complete Qt Gui framework project (.h / .cpp files)
An icon set (specific for 3d applications; of course it is also possible to use your own icons)
Still a lot to do, but the basics are in place.
Next steps for phase 2:
Add Ogre rendering widget
Add property widget with binding for Ogre objects.
Phase 3 and further will contain gizmo's, node editor, Wx generation, C-make files, etc. I share it until it becomes more mature.
A preview:
The Magus application
http://www.fxpression.com/temp/magus.png
The generated output
http://www.fxpression.com/temp/editor.png
Gui generator tool https://github.com/spookyboo/Magus ==> Windows binaries https://github.com/spookyboo/Magus_bin
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
-
- OGRE Retired Team Member
- Posts: 972
- Joined: Mon Jun 02, 2008 6:52 pm
- Location: Berlin
- x 65
Re: Tooling
I am still a bit confused about what this does
So this is a Qt GUI toolkit that creates a Qt GUI toolkit framework for something with 3D/Ogre functionality... right?
From a user perspective, I would ask: Why not create the latter directly with Qt?
After all, the user must have Qt anyway to compile the framework. And I doubt you want to match the flexibility of QtCreator itself.
I ask because at some point we will probably want to create some kind of editor for our game... and most certainly use Qt for that.
So I wonder how we could probably save us some work with this.
So this is a Qt GUI toolkit that creates a Qt GUI toolkit framework for something with 3D/Ogre functionality... right?
From a user perspective, I would ask: Why not create the latter directly with Qt?
After all, the user must have Qt anyway to compile the framework. And I doubt you want to match the flexibility of QtCreator itself.
I ask because at some point we will probably want to create some kind of editor for our game... and most certainly use Qt for that.
So I wonder how we could probably save us some work with this.
- spookyboo
- Silver Sponsor
- Posts: 1141
- Joined: Tue Jul 06, 2004 5:57 am
- x 151
- Contact:
Re: Tooling
This is to make a quick start. Select a template (an application with 4 docking windows for example) and mark the checkbox on which window you want to have an Ogre widget (or maybe on a specific Tab you just created). Choose 'Build' and a project is generated for you, with all the code you need to get started. Open the project in qt creator, run it and your basic application runs fine. This can be done in seconds. It saves you at least 1, 2 days. Of course you can use Qt designer but that takes more time.
Gui generator tool https://github.com/spookyboo/Magus ==> Windows binaries https://github.com/spookyboo/Magus_bin
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
-
- OGRE Retired Team Member
- Posts: 972
- Joined: Mon Jun 02, 2008 6:52 pm
- Location: Berlin
- x 65
Re: Tooling
Sounds good!
As long as you can still use QtDesigner after that quick start to flesh everything out, this may indeed be very useful.
As long as you can still use QtDesigner after that quick start to flesh everything out, this may indeed be very useful.
- spookyboo
- Silver Sponsor
- Posts: 1141
- Joined: Tue Jul 06, 2004 5:57 am
- x 151
- Contact:
Re: Tooling
I prepared a zip file with the magus exe (32 bits; windows only). Please take a shot and try it. It is not complete, but it gives an idea of what it does. Some pointers.
If you build a Qt project, the generated .pro file makes a few assumptions about the Ogre include and lib locations. Edit the .pro file if needed.
The ogre root can be changed in the global.cfg (no configuration screen yet). The property 'ogre_root_env' refers to the environment variable. If there isn't one, it uses 'ogre_root' as the root.
The generated c++ code is written to c:/temp/magus_out/. This is configured in the global.cfg (and can be changed; property 'output_dir').
The icons used in the application are defined in icons.cfg. The icon directory is also defined in global.cfg. You can freely add/replace with your own icons.
Load the project in Qt Creator and Run.
It does not generate Wx code at the moment. I am considering generation of html/webgl code.
The wizzard can be downloaded at: http://www.fxpression.com/temp/magus.zip
Please note that it is work in progress and is isn't a magic bullet. It forces a certain layout (but usable in most cases) and generates a basic framework. It doesn't generate a the whole application for you (although I I'm adding new building blocks to make life a bit easier).
The image below illustrates what the application (called Magus) does:
If you build a Qt project, the generated .pro file makes a few assumptions about the Ogre include and lib locations. Edit the .pro file if needed.
The ogre root can be changed in the global.cfg (no configuration screen yet). The property 'ogre_root_env' refers to the environment variable. If there isn't one, it uses 'ogre_root' as the root.
The generated c++ code is written to c:/temp/magus_out/. This is configured in the global.cfg (and can be changed; property 'output_dir').
The icons used in the application are defined in icons.cfg. The icon directory is also defined in global.cfg. You can freely add/replace with your own icons.
Load the project in Qt Creator and Run.
It does not generate Wx code at the moment. I am considering generation of html/webgl code.
The wizzard can be downloaded at: http://www.fxpression.com/temp/magus.zip
Please note that it is work in progress and is isn't a magic bullet. It forces a certain layout (but usable in most cases) and generates a basic framework. It doesn't generate a the whole application for you (although I I'm adding new building blocks to make life a bit easier).
The image below illustrates what the application (called Magus) does:
Gui generator tool https://github.com/spookyboo/Magus ==> Windows binaries https://github.com/spookyboo/Magus_bin
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
- spookyboo
- Silver Sponsor
- Posts: 1141
- Joined: Tue Jul 06, 2004 5:57 am
- x 151
- Contact:
Re: Tooling
I've integrated Ogre 1.9 and now work on the asset widgets. Asset widgets are used for editing properties (the generic asset widgets and Ogre-specific assets are completely separated, so the generic ones are also usable for non-Ogre projects. The figure below is completely generated. Just 8 lines of C++ codes are manually added to create the camera and entity widgets and binding an Ogre camera and Entity to them.
Stay tuned...
Stay tuned...
Gui generator tool https://github.com/spookyboo/Magus ==> Windows binaries https://github.com/spookyboo/Magus_bin
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
HLMS editor https://github.com/spookyboo/HLMSEditor ==> Windows setup https://github.com/spookyboo/HLMSEditor ... e?raw=true
- jacmoe
- OGRE Retired Moderator
- Posts: 20570
- Joined: Thu Jan 22, 2004 10:13 am
- Location: Denmark
- x 179
- Contact:
Re: Tooling
Very spooky!
Definitely going to shave a lot of work when you want to do some quick tooling/experimentation.
Definitely going to shave a lot of work when you want to do some quick tooling/experimentation.
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
- cybereality
- Hobgoblin
- Posts: 563
- Joined: Wed Jul 12, 2006 5:40 pm
- x 12
-
- Gremlin
- Posts: 196
- Joined: Tue Jan 27, 2009 12:27 am
- x 24
Re: Tooling
Can you explain a bit more ? It's really interesting. Someone could even extend it to generate a layout for my upcoming Ui system also, one day.spookyboo wrote:I've integrated Ogre 1.9 and now work on the asset widgets. Asset widgets are used for editing properties (the generic asset widgets and Ogre-specific assets are completely separated, so the generic ones are also usable for non-Ogre projects. The figure below is completely generated. Just 8 lines of C++ codes are manually added to create the camera and entity widgets and binding an Ogre camera and Entity to them.
Stay tuned...
You say just 8 lines of C++ code must be added, that means a lot of stuff is predefined to interact with Ogre specifically, right ?
What's the process for these properties widgets ? How complicated is it to set these up, wire them to the Entity and Camera ?
What about the tools ? Because first you said it's just a template that you have to flesh out (like, create an Icon for move tool, and then fill the behavior in the C++ editor), but now it seems that you made a great leap forward and it generates much more than the template, since you just have to add 8 lines of code ?
I'm really curious to know more
Let us wonder about the utility of Qt creator !