Damn, I missed this oportunity. NASA could have really helped me out.
I've been working on a Open Sourced game platform for a few years now, and I was schedule to release a 0.1.0-alpha by the beginning of next month (december). But I have had so manny setbacks (do to the everyday life) that it'll probably be at mid-January.
A few years ago I was talking to an awesome developer that I knew. We were talking about Linux. He made a statement that really stuck to me. He said "I love Linux. It's such a great platform for developers, and some day for every day users. But they're missing something that to me is important -- games. I really don't like to be rebooting and switching OSes just to play a simple game. This is specially anoying at work. I like Linux, but until they get their act together with the game situation, I'm sticking with Windows". I though damn, if the Open Source community doesn't find a way to bring the programmers that like Linux but also like their games, we're missing out on alot of available intelligentsia
And then it hit me. BOOM! "Hey buddy, you're part of the community, too. Don't just be a freeloader, do your part". I also realized that the best way to accomplish this is not to pull any punches, or to do things half-assed. We would have to go for a head shot.
I personally think the way to do this is to go beyond developing a framework, like what Ogre3d is, and instead develop an entire environment, similar to what the Unreal Engine is. Computing power always catches up, but if we design hard-to-use tools, few of us will us them. Don't get me wrong, Ogre3d is good at what it does, but I don't want to spend a week to load a mesh. They key is to have the proper balance of ease of use and power. Games are such enourmous beasts, for the most part, that I believe we have to lean on the side of 'ease of use' so that people can attempt bolder projects and know that the software is doing its best at helping them. Current Open Sourced game toolkits are too difficult to use by teams of less than 5 developers -- that isn't going to work.
I think what we need is a 4 point strategy:
I) A nice Virtual Machine that can be retargeted to different architectures and roles. The one I currenly have is running on Linux, but we, of course could retarget it to FreeBSD; Windows; Mac; as plugins in browsers, Like Flash; on portable devices; etc.
II) Game development is too big for us to continue to use the same tools that we've designed for system programming. The key is to make a language that is designed 100% for game developement. Period. PHP does well because it has one well defined job. The language I have is still missing alot of the constructs we are used to, such as switch statements, but it's definetly shaping up nice.
III) Of course, a compiler that turns that nice language into an equally impresive bytecode. The current compiler I have is still a toddler, so it falls sometimes when it tries to run -- but with enough nurturing I'm sure it will develop into a nice specimen.
IV) And the last, but certainly not least: Community support for addon libraries. 5,000,000 programmers are better than 100 -- with a simple way create native C/C++ classes for the language that allows the virtual machine to do anything the developers want the issue of not having a feasible game platform for Linux and the Open Source Community becomes a non-issue.
I hope developers participate in this project when i release it so that we don't miss oportunities like this NASA thing in the future.
vl@d $: