<3 <3 <3
Interest
While I am a bit saturated for projects at the moment, I have some design ideas that could work brilliantly with this and I have been researching a lot of libraries and related software and the main project I'm working on has UX and feature ideas that can possibly translate to this as well.
Skills
I think I can at least help with prototyping it:
- Javascript and related tech
- Python and
- C would be what I could work with best (my C is really rusty though).
Design proposal
edit - As far as worldbuilding is concerned, I think Dwarf Fortress has a parameter model for world generation that can be used as a starting point for what to include and how to present the options. It uses a layer based approach to building the world, much like TimB's series of questions, which would let us leverage them algorithmically. DF also has a good degree of scope in its world generation, even going as far as simulating civilizations falling and rising, wars and legendary figures.
Obviously, as overactor suggests, it should be modular - a set of specialized software that outputs maps as images (where that is relevant) and data held in something like an sqlite db. These programs can easily be built in C and since they'd be command-line, they'd also be easy to port between platforms. Mingw-w64 can be used to cross compile to windows, so we can keep it all under one compiler (gcc).
We can make it scriptable in Lua for configurability, if it's in C or Javascript (there's a lua vm compiled from the C sources for Javascript). I think this would be idea - just export an api object to that and control the whole thing.
For the interface, we can use a xulrunner app (since xulrunner is crossplatform) which should allow quick prototyping for the ui, leveraging web technologies, even for the rendering. Common formats should be used and they won't be a problem with this. The huge advantage of xulrunner is that, using chrome priveleges and XPCOM, you can build an app that has all relevant native capabilities - save files arbitrarily, call programs as backends, run scripts, whatever.
There's already lots of libraries in javascript to help out and an sqlite compile from the C sources to js, so that can carry over, cross-platform.
As far as the UI design is concerned, it would require some basic drawing tools, which can already be plugged in using existing libraries and may require some clever UX to make sure it isn't overwhelming, if we're going to place everything in the GUI.
There's plenty of CV and OCR libs out there, we can probably make something configurable by hand so that, for example, you can import an rpg map, tell it how to interpret it (elevation etc.) and then figure out where rivers would go. Simple, but it can be handy - or at least cool.
The feature set would have to be defined better for clearer design, but overall, I think if we keep everything nicely separated, it should allow us to work at our own pace, knocking out one piece at a time.
The features I think can be cleared the easiest would be:
- Terraforming (landmasses etc.)
- Geological resources
- Bioming
- Population/resource estimation (maximum, minimum sizes, growth rates)
and I think we can leverage this for questions (along the lines of "How can I practically model x
in my world?") and leverage questions for computational approaches (especially the more practical and handwaivey ones).
We can always use evolus pencil for UI designs, when we reach that point (i'd prefer it best to build bottom-up). It's cross-platform, exports to both images and its own format to maintain the widgets in place.
We can also always build a web app - all of this can be done in javascript, but it would be quite bulky and I hate bulky web apps.
if the mess above suggests I'm too much of a noob, I'm ok with getting excluded because of that