Fun environment for hobby 3D game?
Can you recommend a game dev environment that is 3D, cross-platform, and (ideally) open-source, while being actually fun to code in?
Defining fun: I love coding in Ruby and Lua. Learning new languages is fun - it might be neat to do a game in Erlang or something. But I hate coding in C++ and am getting pretty tired of Java.
My girlfriend and I started coding a game together as a hobby. It may never see the light of day - we're primarily just trying to have a good time. To that end, we'd like to do it in a fun language.
So we started it in Lua, using the Löve framework, which has been awesome. Unfortunately ... it looks like we're definitely going to need a 3D environment, with proper 3D acceleration. As soon as I started doing a little vector math for lighting some simple 3D meshes, poor Lua was brought to a crawl. We have a very simple demo of structures floating in space ... and we only get 15fps out of it. Ouch.
I've been looking at 3D game environments, but the thought of having to go back to malloc() just makes me sad. Any thoughts? (I'm the other author of this game.) We've investigated many of the 3D game environments out there, but it's been difficult to tell what "supports Lua scripting" means. We don't just want to control particular game elements; we want to write the game itself in Lua, if possible, calling out to an optimized graphics library where needed, only for the rendering. Any thoughts? Luxinia (http://www.luxinia.de/) looks like it might be what we're looking for. Anyone have experience with it? Or possibly using OpenGL from Lua for 3D graphics? How about Unity? http://unity3d.com/ 3D, cross-platform... free... Yeah, Unity is one I intend to look at. It's not immediately obvious from their page what language(s) we'd be coding in, however. From their Engine programming area: http://unity3d.com/unity/engine/programming Since it's .NET based via Mono i'd assume C# but it also says it supports scripting languages: JavaScript and Boo, a dialect of Python. There are a few options, but C# works well. Many of the template implementations are in C#. Fluxus is a 3D game engine for livecoding in Racket. http://www.pawfal.org/fluxus/ Example video:
http://vimeo.com/6744140 In case anyone's curious, the game concept is a sandbox (a bit Dwarf-fortress-like) in space. Instead of excavating Moria, you're constructing Niven rings, Dyson spheres, and other megastructures. I've just recently discovered maratis3d.org .. It's very fun, check it out! Lua-based, open source, cross platform .. if you like Lua I'd recommend ShiVa ( http://stonetrip.com ). It uses Lua as its scripting language. Try Panda3D (www.panda3d.org)