I'm going to take the plunge and build, frankly, an insane application. I won't get into the nitty gritty, but suffice it to say it's a "world builder" app.
I am just starting to figure out what I'm going to need, tech-wise, to build this thing, and I'd like some feedback from people who may have some experience in interface building, database design, cartography/GIS, graph theory, star-maps, and other such things....
It's got superficial similarities to Campaign Cartographer
Some of my goals include:
1) Cross Platform
2) NON-Native UI (I want something that looks like it would be a NUI
... Something you can drag/drop. Not a ton of grey boring menus. Something more "game interface" than "business interface".
3) CONNECTIONS EVERYWHERE! That is : I need a graph database of some kind, I think. Or something that deals with connections. Some sort of OO/Graph db might work, too.
I envision the ability to make intricate family trees, evolutionary trees, time sliders, highly zoomable maps, parallel timelines, starmaps, image editing (and, eventually, maybe 3d model importing, terrain generation, etc...) GIS/Map Layers of some sort (Not necessary to be literal GIS, but I figured if the Tech exists, and there are libraries, why not incorporate it? But it might be overkill)
I have even toyed with the idea of a hosted service for world-builder enthusiast to upload their worlds to share with others and maybe even participate in joint world creation.
So, with the above in mind here's some tech I'm seeing that I think might suit my purposes, but I want to know what people think in terms of ease of use, capability and such things, even information regarding licenses... pretty much whatever your thoughts are on these techs...
Or something along these lines with some flat or customizeable UI, that doesn't force me to use the native UI elements.
* GRASS GIS
and related, but not necessarily a database (though I think Rexster is a graph-db server?)
(a suite of tools that are related to graph databases, including a query language, a special graph server, and other utilities. Includes hooks for many graph-oriented databases.)
I don't know if a graph database is the most appropriate type of database, but based upon my desire for tightly integrated linkages between objects, places, times and such, I feel like dealing with graphs is very important in this tool.
However, I feel that since I'm going to be doing much to have the ability to create "objects" (essentially similar to Role Playing Game Character sheets), that perhaps an Object Oriented database might work. This is why Hypergraph is on the list.
That said, hypergraph information seems to be fairly sparse from what I can gather. Neo4j seems to be the defacto "king of the hill" for graph DBs at this point, and it has a lot of hooks for different languages.
One other concern I have is that I don't really know Java, and it slightly intimidates me, but it seems that a LOT of this tech uses Java. I'd prefer working in Python, C# or if necessary C++ as a last resort. Or if I can mix match as needed that's fine, too.
I have Awesomium listed more as an example. I guess I'm not 100% averse to HTML5/JS UI work, but I think I'd rather prefer something a bit closer to "native" (let's not argue about whether Java/C# is "more native" than JS, please).
As for development, depending on the language, what are the best open source tools for development? I've used Codeblocks in the past for C/C++, I've used Monodevelop for Unity3D. I've used Notepad++... Is there any editor that's good all around for all languages, or are some better designed for specific languages?
If I try to plan in advance for an online service to eventually be tied into this thing, what are some pitfalls I should try to avoid earl on, what should I build in before hand to make it easier?
I am planning on making things very component oriented/plugin style architecture/expandable... Any tips on that? Design patterns, etc...