Page 1 of 1

[GSoC 2011] Visually program procedural cities in Ogre

Posted: Mon Mar 07, 2011 6:50 pm
by kermit666
Hello,

I'm beginning work on a MS thesis project where I'm trying to adapt a visual programming language (https://launchpad.net/vide) for automatic generation of procedural cities. Since I'm still researching I'm not yet sure in which direction the whole thing will head, but for now I think one way to go might be to take a set of premade objects and place them (according to the user-defined flowchart) in Ogre, using node coordinates.

Maybe there already exists some library for procedural map generation in Ogre to start with?

I am wondering whether this topic would have any potential as an Ogre GSoC project?

Dra┼żen

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Tue Mar 08, 2011 11:23 am
by jonim8or
Very nice subject. A friend of mine at the Delft University of Technology has done some research on that topic.
But I'm not sure whether it should be part of Ogre. Maybe it should rather be part of Ogitor or Blender. Is that possible as GSOC?

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Tue Mar 08, 2011 11:32 am
by spacegaier
Well, this is for sure nothing for Ogre core, but would rather be an independent plugin. There is also already a more generic plugin development. Serach for "OgreProcedural". It focuses on primitive objects and not on city generations.

And I am not sure how closely GSoC projects have to be tied to the main dev area (so Ogre core). But if this is not a GSoC type project, it would definetly make a nice addition to our plugin collection over at Ogitor. So we would be happy to see you there then :) .

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Wed Mar 09, 2011 9:43 am
by Zonder
There is also pged geometry I know it's not buildings but the system was designed so you can procedualy generate forests you just place your own algorithm.

And yes it's not somthing for ogre core really but a plugin

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Wed Mar 09, 2011 4:05 pm
by kermit666
Thanks for all the replies! I'll check out the projects and try to find something that fits best.

I know Blender is a part of GSoC. I'm not sure about Ogitor, but probably a plug-in for Ogre would also qualify as an Ogre GSoC project.

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Wed Mar 09, 2011 5:26 pm
by spacegaier
Ogitor is not part of GSoC (yet).

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Sun Mar 20, 2011 8:46 pm
by kermit666
OK, I did some exploration and further consulting with my university mentor...

Our idea was to generate whole scenes directly in Ogre as nodes and entities using small building blocks (such as window, wall & street textures, smaller objects like fire hydrants, lamps...) which would be accessed from the resources/ folder and arranged using various properties such as rotation, position, ...

The reason why we would like to do it like this and not create the whole scene in some external model editor (Blender or, if I understood right, Ogitor) is to be able to generate scenes dynamically - they would be generated differently each time the user visited an area, but according to some description the game designer created using the visual diagram editor.

A team of around 4-6 of us will be working on the project and the idea is to have each person do a certain subtask and exposing it as a C++ API:
- creating a single building (complicated by itself)
- generating the street grid and zones
- adding details to a scene - lamps, trees, fire hydrants etc.
(- creating interiors - this depends on the number of people)

I will be building the visual diagram editor, built in Eclipse GMF, and trying to identify the most important parameters and rules that individual modules should expose to the designer in the visual editor to enable him to express himself the most.

What we hope to have in the end is a plug-in for Ogre in the form of a C++ library enabling the user to input his procedural scene description that can be written as pure code in a text file (C++, or maybe even Python, wrapping up a C++ class) or provided using the Eclipse custom made diagram editor (that will generate the code automatically).

I am definitely interested in doing this as a GSoC project and my mentor approved it. I need to talk to the other team-members, maybe they would be interested as well. We will start work on this very soon, but can probably extend the work even through the summer (to make it a summer of code :) ).

What do you say? Would such a project, an Ogre plug-in, qualify for GSoC?

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Sun Mar 20, 2011 10:02 pm
by jacmoe
I would be an excellent candidate for a component. :)
Not sure whether it would fit as a GSoC project - I'll let the Ogre Team decide that.
Procedural is the future - or so I've heard:
http://altdevblogaday.org/2011/03/20/th ... rocedural/

But, do not cancel the thought of contributing even if this project is not accepted:
We will gladly (I think I can speak on behalf of the Ogre community here) accept a procedural Ogre component/addon/plugin.

I could not only be used for actual games/applications, but also for stress testing.
Would be a matter of feeding it some parameters, flip a few switches and let it generate a huge scene, wouldn't it?

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Sun Mar 20, 2011 10:47 pm
by kermit666
Yes, I would definitely like to work with any community members willing to help us. I'm glad you see the potential benefits of such a project.

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Sun Mar 20, 2011 11:07 pm
by kermit666
And yes, we aim to make creating big maps an easy task, achievable within minutes. Not exactly by setting up a few parameters (that's something projects like Suicidator (http://arnaud.ile.nc/sce/) already do), but by creating some sort of a flowchart* (or altering an existing one) in a visual editor.

__

*This is actually the main focus of the scientific part of my thesis - I believe that a good way to describe complex maps like cities would be somewhere in the middle between parameters (limited expressiveness) and L-grammars used in applications such as CityEngine (http://www.procedural.com/cityengine/features.html) (too complicated for people without a strong background in programming) - using rich visual editors and OO principles. This idea is something that will hopefully evolve during the semester and get a more precise shape as we start building such a system.

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Mon Mar 21, 2011 12:51 am
by spacegaier
jacmoe wrote:We will gladly (I think I can speak on behalf of the Ogre community here) accept a procedural Ogre component/addon/plugin.
Yes, procedural sounds good, but my only fear: This proposal is about a very, very specific type of procedural creation: Cities. So in order to be something that many Ogre users can profit from it would need to be more generic, so some sort of mixture between very detailed implementations such as the city part as well as the more general shapes and stuff as e.g. the "OgreProcedural" addon already provides.

So perhaps some sort of design/architecture with some generic base classes/features that then can be easily extended/enhanced to suit specific needs such as the city generation bit.

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Mon Mar 21, 2011 6:24 am
by jacmoe
That's probably not a big deal, as long as the interface would allow for rooms instead of city blocks, and archways instead of roads, etc.
Then it probably could generate dungeons as well. :wink:

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Mon Mar 21, 2011 11:23 am
by kermit666
Yes, we could probably allow the user to import the modules he/she wishes to use in designing the scene. That would allow for generalisation in the sense that any type of module could be written in the future to allow for other types of scenes to be generated - for example some space station generation. It's hard to predict right now whether this will be possible to achieve in a couple of months, though. But in any case, I think that if some sort of basic city generation would be successful - as a sort of proof of concept example, then a natural way to evolve would be to broaden the domain.

Should I try and put together an official GSoC topic proposal, then? Or is it better to wait for someone authorized to give a "go / no go" decision here?

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Sun Mar 27, 2011 9:04 pm
by kermit666
We formed a team at the University of Vienna, because several of us doing master or bachelor thesis projects showed interest in the same topic - procedural generation in Ogre. There is 5 of us and we started preliminary work already.

We talked between ourselves and everybody would like to participate on this as part of GSoC as well. We'd be willing to work with Ogre mentors and do the additional work (documentation, Ogre plug-in integration) over the summer to comply with the Ogre requirements on top of our university requirements.

If it turns out this doesn't qualify as a GSoC project (either because of the topic or because of the team size) we're going to do the project anyway and would like to keep in touch and include people from the Ogre community. Maybe we could create a subforum or a section somewhere on the Ogre forums for easier communication.

We talked about work organization and positioning within Ogre and like the idea mentioned before of making it a more general procedural generation project that would be capable of customization for specific purposes, with the ability to generate cities being our proof of concept set of modules that we would like to see working.

I attached some rough sketches from our first group meeting. These are roughly the tasks we had in mind for the five of us:
- a visual interface in Eclipse for the generation procedure definition and a generic module interface specification that all the modules need to comply with
- four sample modules:
------------------------------
|-- city layout (roads grid & zoning)
|-- individual building generation
|-- street details generation (positioning lamps close to roads, trees in the park zones, fire hydrants, traffic lights...)
|-- populating pedestrians and cars in the city that move in some patterns (this is an expansion of an existing project at our university)

All five of us plan to submit individual applications (after tomorrow - when they are open) with more details on each of these subprojects (and our own qualifications).

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Fri Apr 08, 2011 6:54 pm
by kermit666
OK, I've put together an official proposal and uploaded it on the GSoC page (though I'm having some trouble with the formatting since I wrote it in LaTeX and didn't have time to convert it to HTML).

Here is the pdf file for now.

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Sat May 07, 2011 11:22 pm
by kermit666
Hey all!

A shame we didn't get the GSoC project (though expected to a certain point). Congratulations to the people who did!

OK, to keep true to our promise to try working on this project as a community project, regardless of GSoC, we would like to open a subcategory or at least a topic somewhere on this forum. What would the best place to talk about additions of this kind be?

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Sun May 08, 2011 8:53 am
by jacmoe
Using Ogre in Practice would be a good choice. :)

Re: [GSoC 2011] Visually program procedural cities in Ogre

Posted: Tue Sep 20, 2011 7:32 pm
by conkienlua
I've found a solution to using a native mouse cursor for ogre. I'm going to use wxWidgets & Ogre together by passing a pointer to the wxWindow into the createRenderWindow as a param titled "externalWindowHandle".

This approach is available as a non working sample from the source based release of ogre. Also more recently used in the Mage project to create a visual scene editor for Ogre.

I initally used the main window hWnd to create the ogre render window but found that the screen coordinates were offset by the toolbar and could not be corrected. So instead I opted to use a nice window manager wxAui that provide dockable