Status of Examples

Discussion area about developing with Ogre-Next (2.1, 2.2 and beyond)


User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5298
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1279
Contact:

Status of Examples

Post by dark_sylinc »

Hi everybody!

Time to make some progress report:
I'm making the preparations for publicly releasing the AZDO branch aka "Ogre 2.0 Final". This doesn't mean it's ready, but rather that it becomes public; as there has been a lot of development that has been done behind closed doors.

You can follow my current TODO list in my trello board.

Right now my biggest issue is that none of the samples work. This is because Overlays now must use Hlms materials, and I didn't port the SDK widgets assets from SamplerBrowser. Furthermore I didn't see if there would be additional issues.

Furthermore, it would be far more useful IMHO if I just provide a couple of samples on how to get Ogre 2.0 Final running, showing how to use the new features and interfaces.

There are several issues I have with the existing samples:
  • They're heavily outdated. I would ditch them all save for one or two exceptions. Rewrite those that are useful (i.e. Fresnel demo, Postprocessing)
  • We need demos that show how to use the engine. Something that is based on a template that is efficient and follows proper practices.
  • We need flashy demos to show the power we can do.
  • The samplebrowser is very professional looking for showcasing. But it is a PITA. It is a huge goliath of base code nobody wants to dig in, newbies don't want to use nor try to understand; it's hard to be used as a base for your own projects, it's hard to use it for sending bug repros; and working on a single sample means each run will try to load all the other unrelated samples. There is barely any isolation, despite being separate DLLs.
The last issue is the one I'm having more trouble with. On one hand, I want a professional-looking sample browser. On the other, I prefer basic tutorial-like demos with separate EXEs; which users can just take the code and use it as a base for their own projects and start working right away (like it used to be many years ago).

I see Havok and they get away with a unified sample browser. However their browser is actually quite simple (text based, no mouse cursor support, there's barely any beautiful widget rendering) and comes together with a 1050-page manual in which every chapter has its own demo showing the feature, and the manual explains how to initialize and deinitialize the physics engine with snippets and all, ready for copy pasting; and you can find in files those snippets in the demo and they look the same. It's the same code! This makes understanding the base much easier.

As much as I want to believe I'm good at writing documentation, maintaining the doxygen, and leaving a lot of the wiki to the community; we can't match an offline (offline = always ready; unlike a wiki which has network latency) 1050-page manual maintained by multiple, dedicated people.
So I'm more inclined to believe that we should go back to basic separate EXEs; and see if we can still port the SamplerBrower to show how it can be done and show the flashy demos; but the basic demos get the high priority.

DirectX SampleBrowser is in the middle between: All demos are simple, separate EXEs. The Browser itself is a simple external native-based GUI that launches the executable. I like this approach. Professional, yet simple.

And then there's Android, where having one app per sample feels too much; unless we research in ways to have a central launcher/project picker, that launches a separate activity for each demo.

Anyone can share their thoughts?
al2950
OGRE Expert User
OGRE Expert User
Posts: 1227
Joined: Thu Dec 11, 2008 7:56 pm
Location: Bristol, UK
x 157

Re: Status of Examples

Post by al2950 »

Firstly I 100% agree that you release or get working a couple of examples of how to use the new system. The Ogre community can do the rest, thats why we are here ;)

The new sample browser was done as a GSOC I believe, and I welcomed it with open arms. However a little while ago I tried to help someone on the forums which required me to look through the source. I think 2 days later I came out not knowing where or who I was!! SdkTrays.h is over 3000 lines :shock:. Anyway I know there are some simple application examples and the ogre tutorials; however, NOT having unified examples seems to cause a bit of confusion.

Could it be possible to re-factor the sample browser so its more modular and the basic example application can be easily understood and reused?

I think its important to realise that one of the first things people do, with any library, is take the shipped example app and see if they can quickly and easily get it to fit their needs.
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5298
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1279
Contact:

Re: Status of Examples

Post by dark_sylinc »

al2950 wrote:The new sample browser was done as a GSOC I believe, and I welcomed it with open arms. However a little while ago I tried to help someone on the forums which required me to look through the source. I think 2 days later I came out not knowing where or who I was!! SdkTrays.h is over 3000 lines :shock:. Anyway I know there are some simple application examples and the ogre tutorials; however, NOT having unified examples seems to cause a bit of confusion.

Could it be possible to re-factor the sample browser so its more modular and the basic example application can be easily understood and reused?
Exactly!
When the GSOC was announced I was "yay!". And the results looked great.
But I don't think refactoring the Sampler Browser to be more modular is the answer. Simply because... it's already modular!
From a technical point of view, it's great: Each sample is self contained in its own shared lib; it provides a shared common functionality (the UI widgets); multiple asset locations.
But it's too complex. More befitting of a finished application rather than a learning tool.

Creating a new basic app with basic user interface (rather than a complex one) is more important when learning.
Users can take the base code for their own project, and use 3rd party or build complex interfaces on top of it.

SampleBrowser already has a complex interface and thus you have to strip it away for your own needs.

I can also take the opportunity to make the samples show how to use the render split rendering technique and fixed timesteps so that game logic runs in one thread, and Ogre runs in another thread.
al2950
OGRE Expert User
OGRE Expert User
Posts: 1227
Joined: Thu Dec 11, 2008 7:56 pm
Location: Bristol, UK
x 157

Re: Status of Examples

Post by al2950 »

I agree, the old system had a couple of simple headers which made the bases for all the sample apps, and this is a better approach in the context of allowing people to 'discover' and learn Ogre. However I feel, in my heart not head, like its a step backwards and I really do not want to play down or insult the excellent work omniter did, although he has not been around since 2013 so maybe we are safe :P

Obviously more people need to chime in, but logically I think creating a new sample set based on some simple headers is the way to go, ie the old way.
NotCamelCase
Greenskin
Posts: 140
Joined: Sun Feb 03, 2013 6:32 pm
x 8

Re: Status of Examples

Post by NotCamelCase »

dark_sylinc wrote:So I'm more inclined to believe that we should go back to basic separate EXEs; and see if we can still port the SamplerBrower to show how it can be done and show the flashy demos; but the basic demos get the high priority.
Here you have my pretty cents :) :

I'd say go for DirectX-style list of sample summary + 1 screenshot/visual giving a hint of what to see alongside the separate EXEs to run (could be a bit more modern UI than DirectX' though :) )

I'd also suggest less samples and a few shiny demos to show off. If I'm a newbie, I'll be more easily impressed with nice and more shiny feature-complete demos to decide to use OGRE and then I'll check out different aspects. For experts/experienced/indie devs, it is both shininess and ease of use of features.
Check out my projects: https://github.com/NotCamelCase
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
Posts: 1141
Joined: Tue Jul 06, 2004 5:57 am
x 151
Contact:

Re: Status of Examples

Post by spookyboo »

Two or three demo's to show off.
In addition I would prefer a combination of a sample/tutorial pack that gradually becomes more complex.
User avatar
Crystal Hammer
Gnome
Posts: 318
Joined: Sat Jun 23, 2007 5:16 pm
x 77
Contact:

Re: Status of Examples

Post by Crystal Hammer »

I agree with dark_sylinc.
I like the old way better too. I.e. the nice, readable, functional base application which is the best way to base your own projects upon.
The new sample browser is a good looking application and it will be a step backwards, but has really obfuscated code, bad for learning, and useless to start your own application.

IMHO some Ogre demos were really old and too basic (e.g. sky box, sky plane, cube, sphere mapping etc.), if those have to be here still, then better could be to merge them into 1 demo showing e.g. various skies, and maybe some material/shader demo.
I think, from the best demos I would name: shadowing, terrain, compositor. Also I hope there will be some new demo showing HLMS new materials.

I am in favor of such bigger demos, which show off decent stuff and let you test few techniques.
But also some very simple demos (tutorials). Good for beginners.

My new idea (for later) would be some Uber Demo. Something that could show off simply everything. One big application with terrain, shadows, water, fog, some items with good materials, vegetation, grass, HDR, bloom, and controling Ogre mascot walking on the scene etc. I hope I didn't mention too many. Probably best if done by the community.
So, just my opinion.
frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 65

Re: Status of Examples

Post by frostbyte »

Probably best if done by the community.
idea 1:create an official ogreDemo git branch with basic/advanced framework and demos/tutorial
bored users will hopefully fork and extend it with their own stuff, other bored users can dig in the codes,
ogre team can pull cool demos/tutorials to the main branch...
maybe devote a forum showcase "room" for ogreDemos community...
anyway general idea is creating ogres own little community "demo scene" based on git...

idea 2: base samples on mygui or some other easy gui lib( sdl2.0? )
one which people will actually use in development...( anything but cegui )
ogre is supported by so many gui framework( with sdl even more so ), i don't see the need to maintain another one...
i understand it's problematic to rely on dependencies and is a step backward ,but i think it's better than trying to maintain OIS and the half baked sdkTrays
for practical application development most users would prefer sdl 2.0 and some "mature" gui lib
I prefer basic tutorial-like demos with separate EXEs; which users can just take the code and use it as a base for their own projects and start working right away
could'nt agree more...sampleBrowser is almost useless for learning and development purpose
We need flashy demos to show the power we can do.
one very good demo should have the needed effect, but i don't think it needs to be a tutorial demo...
for the "flashy" part - ART plays a bigger part than the engine itself;
My new idea (for later) would be some Uber Demo. Something that could show off simply everything. One big application
that will again act as a showcase, it will be even harder to understand/use than sampleBrowser...
Last edited by frostbyte on Thu Jan 15, 2015 6:29 am, edited 6 times in total.
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
User avatar
Thyrion
Goblin
Posts: 224
Joined: Wed Jul 31, 2013 1:58 pm
Location: germany
x 8

Re: Status of Examples

Post by Thyrion »

I like small simple examples. But normally the test cases should be enough or?
If you wan't sweet Eyecandy, you need a good artist or?
User avatar
Klaim
Old One
Posts: 2565
Joined: Sun Sep 11, 2005 1:04 am
Location: Paris, France
x 56
Contact:

Re: Status of Examples

Post by Klaim »

I need to go to bed but just a few comments:

1. I agree with the Sample Browser remarks.
2. I think it could be redesigned to just launch samples processes. It would also help a lot with sample browser crashing when a sample crashes: do like chrome, just monitor the sample processes and that's it.
3. Better demos would be cool but I fear the lack of resources of both the team and the community to do something that big. It would be cool nevertheless.
4. I'm not sure what exactly would be helpful on the ogre side to make things simpler for people to learn it, but I am regularly very frustrated at it's half 90s C++ style which makes a lot of things more complicated than they could (like, managers for everything).
5. I wish I could help a lot, but I'm stuck with my projects ;__; I was wondering if some people made games with Ogre which they would share the code so that it could be used as demo? Mine is not good for this it's not very focused on graphic rendering.

Also, would it help the samples codes if the separate windowing system, resource system and SDL were used instead of the current systems? It seems to me that most of the common sample code is just setting these up. I might be wrong though.
User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm
x 12

Re: Status of Examples

Post by cybereality »

I'm not a hard-core Ogre user, but I do have some feedback.

- The sample browser is too big and unwieldy for learning. I like having separate projects as this is more clear and easier to mod/steal pieces.
- I think there should be at least one flashy demo to sell the engine. Lots of features combined, good artwork.
- I know Ogre is not a game engine, but maybe some of the samples could show how to do common stuff like first-person character control, object interaction, or whatever.
- There are assets in the samples that have to go (as much as I love him, I'm looking at the ninja). Models are different scales, the Helen statue has grotesque facial textures, etc.
User avatar
Zonder
Ogre Magi
Posts: 1168
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 73

Re: Status of Examples

Post by Zonder »

My 2c

* Having a portal into different samples is important. But it doesn't need to be monolithic just a simple app (It could just read a config file)
* Samples use there own project
* Samples all use a simple header like mentioned that has some quick functions to do common things.
* Moving samples into a separate repository might be a good idea so it can have different rules for pull requests also possibly different maintainers.
* Samples I am not sure if we should have samples for simple things like sky boxes for example. These could just be a wiki page explaining the process in a techniques section maybe.
* There should be a show case demo.

Creating a Demo

Maybe create a kickstarter for the demo project for ogre 2 (when it is complete) to fund commercial quality art work and development. This will need research and discussion on what exactly the demo should entail. (Side note the assets should probably use a suitable license so users could reuse them)
There are 10 types of people in the world: Those who understand binary, and those who don't...
User avatar
ghiboz
Goblin
Posts: 205
Joined: Wed Apr 25, 2007 9:47 pm
Location: Centallo (I)
x 2
Contact:

Re: Status of Examples

Post by ghiboz »

here I am,
my little thoughts:
  • create a sample like a basic ogre framework and advanced ogre framework that shows the first steps to build an ogre application
  • for the future a structure like the old sample browser may be good, but imho, only to show the power of ogre, 'cause the code is hard to replicate (due to the plugin samples system)
  • create less samples but greatest, I find hard use the sample code into my project, 'cause seems that only code and feature in the sample is not able to be replicated with some other samples and into my application
  • for the samples, for me, also without gui, or better, without a good looking gui is not a problem
ah, and last but not least I wish a 'sample' to migrate from ogre1.x to ogre2, if is not possible a full thing, at least the big changes, like rendertarget, cameras, etc... :P

bye and thanks to all those that allow ogre growth!
frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 65

Re: Status of Examples

Post by frostbyte »

Maybe create a kickstarter for the demo project for ogre 2 (when it is complete) to fund commercial quality art work and development.
don't think this will pull off( what do donator get in return? ), but i agree that the "flashy" demo art part is better be done by pro artists....ogre "Media" directory could use a refresh as well...( as long as you do not take ninja away... )
maybe instead of $$$ the art-studio who contribute it's art can put a link in the sample browser and get some publicity...really don't know....just thoughts...
i don't even know what dark has in mind when he says "flashy" , does it mean to compete with unreal 4 demos?
might just as well put a link to gRally to function as ogre's flashy demo( wow this looks amazing!!! )

maybe it's better to focus first on small, functional,hackable and well documented( inside code ) tutorial samples
preferably separate exe style, with emphasis on changed and new stuff...( compositor, hlms, buffered queue's etc... )
so existing community can start experimenting :)
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
TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin
x 65

Re: Status of Examples

Post by TheSHEEEP »

I agree with the separate EXEs/projects for demos.
It really is much easier to follow.

And creating a nice little browser used to start these demos is not a problem, that application could simply look into a folder and create an entry for each subfolder (which should contain a description and image to display).
My site! - Have a look :)
Also on Twitter - extra fluffy
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5298
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1279
Contact:

Re: Status of Examples

Post by dark_sylinc »

Thank you very much for all the feedback!

I thought I was going crazy about the Sample Browser. I didn't want to step over omniter's excellent work; and a GSoC. And from a looks perspective it would be a step backwards.
But it seems everyone agrees from a learning perspective it's far from ideal.

I started a few demos, the following ideals are in mind:
  • Attempt to use SDL2 for window and input management. SDL2 is much better at handling windows on Linux.
  • Show how to use the render split threading technique. I have done this successfully in the past. I'm worried that this could increase complexity (yet another unhelpful Sampler Browser...); so I have yet to decide whether it's just going to be one sample showing how to do it, or all of them.
  • Divide samples between API Usage and Showcase (potentially more categories). First one is tutorial-like (i.e. "how to setup..."), Showcase is for the looks and benchmarks.
As for the assets, you're right. I can use a lot of techniques to make something really pretty, and being somewhat of an artist I can model something actually pretty and compelling; but we'll eventually need a pro artist(s) to inject some of their awesomeness.
We're a bit early for that though. I'm hoping that Ogre 2.0 gets enough spotlight to gain some power. With some luck, we can get an artist that decides to "donate"/"free" one of the models they do in their free time (i.e. when they build in their portfolio) and get his name in the samples. But I don't have high hopes for that. Most likely we'll end up having to hire one.
User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm
x 12

Re: Status of Examples

Post by cybereality »

I still consider myself somewhat of an artist as well, even though I haven't been into it for a while.

Could probably whip something up if I had time, but I've got too much other stuff going on (as I'm sure everyone else does).

However, if the idea was to hire a pro artist, I would chip down some money for that.
al2950
OGRE Expert User
OGRE Expert User
Posts: 1227
Joined: Thu Dec 11, 2008 7:56 pm
Location: Bristol, UK
x 157

Re: Status of Examples

Post by al2950 »

I know a few artists that could help at work. If we defined a scene or what models were wanted I am sure they could help.
User avatar
Herb
Orc
Posts: 412
Joined: Thu Jun 04, 2009 3:21 am
Location: Kalamazoo,MI
x 38

Re: Status of Examples

Post by Herb »

The other aspect, is that Ogre 2.0 will require quite a bit of new wiki information as a lot has changed. So, I agree having some showcase demos would be great (to show off engine performance and features), but basic demos that show some basic things or specific features in a stand-alone way are very beneficial to learning and taking as a starting point. Totally agree though with the comments that the sample browser implementation currently makes it hard to separate what code is really needed for a specific example. Looking forward to starting to see how these come along. :D
User avatar
Zonder
Ogre Magi
Posts: 1168
Joined: Mon Aug 04, 2008 7:51 pm
Location: Manchester - England
x 73

Re: Status of Examples

Post by Zonder »

frostbyte wrote:
Maybe create a kickstarter for the demo project for ogre 2 (when it is complete) to fund commercial quality art work and development.
don't think this will pull off( what do donator get in return?
Bad example for how to fund. I was more meaning it will probably need funding in some way to get decent assets :)
There are 10 types of people in the world: Those who understand binary, and those who don't...
User avatar
cybereality
Hobgoblin
Posts: 563
Joined: Wed Jul 12, 2006 5:40 pm
x 12

Re: Status of Examples

Post by cybereality »

I'm just curious, when do you think that OGRE 2.0 will be released?

I get that you can download the code already, I guess I'm asking when it will be "launched."
al2950
OGRE Expert User
OGRE Expert User
Posts: 1227
Joined: Thu Dec 11, 2008 7:56 pm
Location: Bristol, UK
x 157

Re: Status of Examples

Post by al2950 »

cybereality wrote: I get that you can download the code already, "
Thats not actually strictly true, see this post;
http://ogre3d.org/forums/viewtopic.php? ... 25#p511496
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 534

Re: Status of Examples

Post by Kojack »

Yep, basically the most recent 2.0 is currently private, the 2.0 that's public is older and lacking the cool stuff that's been discussed recently. All of us are eager to see what dark_sylinc has managed to pull off. :)

Damn it, I was going to release my upgraded Sinbad mesh, but I just discovered yesterday that the scaling (making him use metre scale) broke his arm animations slightly, his right arm is a little to the side when doing 2 or 3 of the animations. I'm going to have to hand edit his animation curves.
I also noticed that sinbad with two swords has 15 batches. He's got 7 materials and each sword has 4 materials. I'd like to merge them and texture atlas his three textures, but I doubt people are going to render enough of him for it to be a noticeable performance issue. Plus once we get the HLM with PBS, maybe his materials can be improved a bit so keeping them separate will help.

On the positive side, I found out how to remove excess vertex bone indices in blender, so it won't have the "more than 4 weights per vertex" warning every time you load it. :)
frostbyte
Orc Shaman
Posts: 737
Joined: Fri May 31, 2013 2:28 am
x 65

Re: Status of Examples

Post by frostbyte »

I guess I'm asking when it will be "launched."
never ask a programmer this questions..."soon" is the most precise answer you'll ever get.... :wink:
also reread the first paragraph of this thread...
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
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5298
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1279
Contact:

Re: Status of Examples

Post by dark_sylinc »

I'm working as fast as I can. Our release plan can be expressed in weeks (no, I'm not trolling with 1000 weeks :lol: ) but I'm not sure if I'm gonna make it, as there are two major pending issues:
Gles2 support (useful to the material editor)
Samples

On both, I can only work on weekends. Gles2 I was planning on doing certain approach, but found out to my horror that what I needed was just added in gles3 (seriously, gles2 sucks). Now I need to do a benchmark that needs to be run on many devices so I can try various theories to find out the most efficient approach.

On the plus side, I am working on core during the week, and it keeps getting more stable every day.
Post Reply