I've been learning what I can about various 3-D engines / Game engines out there, and bouncing around ideas about what I want to do with it. I have several ideas I wanted to improve on, as well as two projects I want to start.
First, the engines I've studied over the last few weeks are downright incredible. When you think about the state of technology, it's rather amazing that individuals living today are simply a few months of study, a couple hundred dollars of software, and an imagination away from creating their own worlds... potentially with a reality as intricate as the real one.
Ogre 3-D is phenomenal... and phenomenally complex. It's overdone for all except perhaps the most abstract and complex artificial creations. Yet even so, it would only take two or three weeks to familiarize one's self with the code, tutorials, and community to begin forging ahead with nearly any 3-D creation.
JMonkey Engine is another awe inspiring system... and it's incredibly simple. I had a simpleGame implementation, with an animated character running around a mirror up and running within an hour of downloading the SDK (and all the attendant Java madness.)
Panda3D is another great engine. Python is a great language. Easy to read, simple to write, and very powerful. The engine itself, along with the community, are an oasis in a very dry world.
I've explored alot of other engines (and have a whole ton of crap to delete from my hard drive to show for it.) Apocalyx is possibly the smallest and simplest engine I came across that is worth mention. The Baja 3D is similarly easy to use, however it is not yet developed enough, nor stable enough, for common use.
Now, however, Irrlicht is a delight to use. I see some high-handed mud slinging and e-p33n waving over the merits of various engines, but it simply comes down to this: use the tool/s best suited for the job at hand. Irrlicht happens to be the easiest c++ engine with modern capabilities... or the fastest easy engine to use. It takes hours to understand and begin creating a project, and the support is great from what I've seen thus far.
My 'job/s at hand' are fairly simple to begin with, I think. The first thing I want to do is create an IDE/Coding utility, which parses source code, fills in formatted tags in preceding //comments, then reads the whole of the code into a 3D environment. One would code an application by manipulating code objects around a central 'application' object, allowing simple use of gigantic libraries.
My idea for the central application object would be a dodecahedron, each of the faces representing a different discrete aspect of a program. Not all programs would utilize all faces, but every possibility would be covered. I'll post another thread detailing the design doc sometime later.
Read: a formatted database consisting of any and all useful code gathered from across the internet. I hope to be able to import any given project, such as Irrlicht, into the system, and have it's API automatically mapped into a toolkit, from which I can drag and drop functions, objects, and so on, without ever actually dealing with the source code at a text level. The philosophy behind such an effort is simple: programming languages are abstractions whose goal is to move programming itself to a higher level of understandability.
While programming sea-changes have almost always consisted of linguistic phenomenon (the move from assembly to c to java or python or cobol, for example,) I envision a visual paradigm, effectively black-boxing that information which should remain black-boxed while exposing the underlying systems in the clearest possible manner. UML is one area in which the underlying precepts have been explored, yet none have taken advantage of the full range of implications.
Coding is restricted, in my humble opinion, by the need for intimate system wide familiarity with the code one uses. By visually exposing the system, an immediate, intuitive grasp of the arrangement and logic can be had, and use can be made of the code that's already been written, leaving the algorithmic implementation as the only work to be done (the logic and flow of the program one wants to design.) The difference between this and scripting paradigms, however, is that logical mappings can be made language agnostic, and one could make use of any importable system through visual manipulation and minimal text coding.
Anyway, I plan on implementing irrXML, any of several c++ source code profilers, Irrlicht3D, a compiler, and some other packages.
My other project is a game idea, and I'm waiting on building my IDE before I dive into that, even though I have dozens of pages of design docs and random notes
I'd love some input on the IDE thoughts... everyone I've discussed it with has either been uninterested or opposed to the idea of visually designing programs.