Tooling

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
Post Reply
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
Posts: 1141
Joined: Tue Jul 06, 2004 5:57 am
x 151
Contact:

Tooling

Post by spookyboo »

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.

Image
al2950
OGRE Expert User
OGRE Expert User
Posts: 1227
Joined: Thu Dec 11, 2008 7:56 pm
Location: Bristol, UK
x 157

Re: Tooling

Post by al2950 »

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 :D
User avatar
c6burns
Beholder
Posts: 1512
Joined: Fri Feb 22, 2013 4:44 am
Location: Deep behind enemy lines
x 138

Re: Tooling

Post by c6burns »

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 :D
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.

Anyway, on topic now ... this GUI toolkit looks really cool for tools programming! :)
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Re: Tooling

Post by Thyrion »

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)
Attachments
EDitor.png
IDEScreen.png
frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 65

Re: Tooling

Post by frostbyte »

maybe i choosed the wrong language with WPF...
hmm...maybe not...https://github.com/SonyWWS/ATF/wiki/WPF-Application
open sourced first class level editor... maybe you can combine...
but the 3DViewer works with D3D9!
that would make it not cross-platform... :(
can't you just grab the handle and use external window?
it's just a single person spare time project
wow, looks like you have lots of spare time ... it looks quite advanced, did'nt realize your that serious...
so maybe it will never be finished (but opensourced XD)
on every place i've read about open sourcing a project, one advice keeps showing up...
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... :lol: )
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
Transporter
Minaton
Posts: 933
Joined: Mon Mar 05, 2012 11:37 am
Location: Germany
x 110

Re: Tooling

Post by Transporter »

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.
al2950
OGRE Expert User
OGRE Expert User
Posts: 1227
Joined: Thu Dec 11, 2008 7:56 pm
Location: Bristol, UK
x 157

Re: Tooling

Post by al2950 »

Transporter 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.
That may not be strictly as true as it was as .net is now going open source and cross platform :D
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Re: Tooling

Post by Thyrion »

hmm...maybe not...https://github.com/SonyWWS/ATF/wiki/WPF-Application
open sourced first class level editor... maybe you can combine...
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).
For me it looks outdated. What i would realy like to do, is replacing the current editor base with the "wpf isolated shell" :)
that would make it not cross-platform... :(
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).
if windows 10 will go the shop/subscription only route, all desktop apps will a have hard time -_-
can't you just grab the handle and use external window?
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)
wow, looks like you have lots of spare time ...
not realy.. and it is getting lesser and lesser
it looks quite advanced, did'nt realize your that serious...
i am serious in making a game, made with my own dirty hands, that i can be proud of it :)
open source as soon as possible...preferbly from day one...
i will as soon as possible ... no one want to work with shit code even don't compile.
are you interessed? :)
User avatar
Herb
Orc
Posts: 412
Joined: Thu Jun 04, 2009 3:21 am
Location: Kalamazoo,MI
x 38

Re: Tooling

Post by Herb »

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.
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Re: Tooling

Post by Thyrion »

sry, i've got a bit offtopic ...
Herb 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.
what tool do you mean? from spookyboo? currently i see only a dockingpanel, nothing that's suggesting a build system? O.o
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
Posts: 1141
Joined: Tue Jul 06, 2004 5:57 am
x 151
Contact:

Re: Tooling

Post by spookyboo »

Thats not the tool. That's the output :D
User avatar
Herb
Orc
Posts: 412
Joined: Thu Jun 04, 2009 3:21 am
Location: Kalamazoo,MI
x 38

Re: Tooling

Post by Herb »

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.
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
Posts: 1141
Joined: Tue Jul 06, 2004 5:57 am
x 151
Contact:

Re: Tooling

Post by spookyboo »

Finished phase 1 of Magus (the GUI wizzard). Features added:
:arrow: Add/delete docking windows
:arrow: Add menu, toolbar and tabs on each window
:arrow: Add default actions (About box, Reset window layout, ..)
:arrow: Add transformation widget to toolbar (more to come)
:arrow: Load and save projects
:arrow: Generate a complete Qt Gui framework project (.h / .cpp files)
:arrow: 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:
:arrow: Add Ogre rendering widget
:arrow: 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
TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin
x 65

Re: Tooling

Post by TheSHEEEP »

I am still a bit confused about what this does :D

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. :)
My site! - Have a look :)
Also on Twitter - extra fluffy
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
Posts: 1141
Joined: Tue Jul 06, 2004 5:57 am
x 151
Contact:

Re: Tooling

Post by spookyboo »

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.
TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin
x 65

Re: Tooling

Post by TheSHEEEP »

Sounds good! :D

As long as you can still use QtDesigner after that quick start to flesh everything out, this may indeed be very useful.
My site! - Have a look :)
Also on Twitter - extra fluffy
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
Posts: 1141
Joined: Tue Jul 06, 2004 5:57 am
x 151
Contact:

Re: Tooling

Post by spookyboo »

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.
:arrow: 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.
:arrow: 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.
:arrow: 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').
:arrow: 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.
:arrow: Load the project in Qt Creator and Run.
:arrow: 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:
Image
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
Posts: 1141
Joined: Tue Jul 06, 2004 5:57 am
x 151
Contact:

Re: Tooling

Post by spookyboo »

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...

Image
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: Tooling

Post by jacmoe »

Very spooky! :)
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.
User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm
x 12

Re: Tooling

Post by cybereality »

Very cool, man!
N0vember
Gremlin
Posts: 196
Joined: Tue Jan 27, 2009 12:27 am
x 24

Re: Tooling

Post by N0vember »

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...
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.

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 !
Post Reply