Saturday, October 07, 2006

Idea: OSGi based game engine

There has been a little talk in the Eclipse related blogs about Eclipse's relationship with games. Which currently seems to be minimal. Here's an interesting idea for a new Eclipse Technology project: an OSGi-based game engine. It could be named EDGE for Eclipse Dynamic Game Engine. Another (sub-)project would add developement tools.

A project like this should define API/interfaces for sub-systems that are required by most game engines and create exemplary open source based implementations. There are some fine open source engines out there (there are others, but these are the ones I know about):
  • OGRE graphics engine. Someone else develops a Java wrapper for it
  • ODE physics engine. There seems to be a plethora physics engines out there lately, but I'm not sure how many are open source. I remember that ODE is one of them. It has a Java wrapper too
  • OpenAL 3D audio library. I think there are Java wrappers for this too, but you'll have to find the links yourself.
Maybe there are even pure Java solutions out there that are better to use in Java? I looked into game engines before I became a Java fan, so I'm not very aware how good the Java ones are.

Other things needed:
  • entity/actor system
  • a scripting language
  • the glue to hold it all together
  • 2D graphics engine (start simple)?
  • extensions for specific genres
There are efforts like this out there, like Yake (although I'm not very familiar with them), but we all know there is no other component platform like OSGi (+ Equinox) :)

10 comments:

Anonymous said...

I have been thinking about exactly the same thing, so finding this post was exciting!

Instead of OGRE, I suggest LWJGL. Actually, why don't we make the rendering choice an extension point. Depending on which extension is used, different rendering engines can be used.

I have an engine underway that is heavily MVC and I am learning OSGi/Equinox right now. Once I have my bearings on the stuff, my team may be moving the engine to the Eclipse framework.

Have you made any progress on this?

Villane said...

I haven't actually made any progress beyond what I wrote in here about trying LWJGL in SWT:

http://villane.blogspot.com/2006/11/using-opengl-in-swt-with-java-5.html

I would very much like to work on something like this, but at the moment I don't have much time for it. There's just always so much work to do and so many ideas to put in code :)

But I hope that if I have more time (maybe in 2007 or 2008), I can join whatever project is working on this. Actually, this probably wouldn't be good as an Eclipse project straight away -- I think it should start somewhere else and mature a bit before going into the Eclipse incubator.

Also, my opinion is that this engine wouldn't be useful just as a technology integration/component platform, but it should also provide something new, like a really solid and extensible object-oriented framework for describing game entities (abstractly) for gameplay programming and scripting.

Note: I haven't got that much experience in complex 3D game engines. Actually I have really no 3D skills at all (I'm mostly interested in the areas that don't deal with graphics or physics). I have worked on many small personal projects in the Pascal days, and have worked with UnrealScript quite a lot.

Anonymous said...

I am in the game field itself, and have a small budget for R&D that I can put to work on the OSGi game engine. We are currently rolling out several games on our jMKGE engine (Java MangoKiwi Game Engine...inventive name, yes?). As those games go into production, we'll be able to start on the OSGi effort. I'm thinking LGPL for now.

btw, how easy/difficult is it to get LWGJL on SWT/Eclipse? jMKGE uses LWGJL and I plan to use LWJGL for future Eclipse work as well.

Anonymous said...

JOGL might be a good idea besides LWJGL. I have graphics knowledge myself that comes from experience back when I was in the games industry as a game developer, but mainly in C++ though I'm actually interested in trying out what has been mentioned. Diwant, what can you share on the part regarding using a script for game logic. Is jMKGE currently using one and which one?

Kai said...

Hey, I'm one of the developer of ogre4j. We released new versions of the wrapper and we are planning to implement basic eclipse plugins on that wrapper. First one will be a OGRE meshviewer for Eclipse based on a jFace like UI-Toolkit.

Anonymous said...

Terenceou,

We are employing python for our scripting in jMKGE and will likely use the same in our OSGi efforts.

There are many scripting languages available for java game engines including Lua, Groovy, Rhino, Jython, and JRuby. We use Jython because we knew python. It is simple enough to pick up if you don't know it and offers a lot of power for rather prettiful code.

What else would you like to know about our scripting engine?

Aaron said...

Not sure how relevant it is to what you're wanting, but there's a Java Game engine called GTGE (http://goldenstudios.or.id/products/GTGE/) that looks pretty good. I just downloaded it and have been reading the tutorials. It's not nearly as comprehensive as MS's XNA, but it's better than writing it all from scratch. :)

home for sale costa rica said...

Hi, i'm really interested in this post...I want to know more about "Idea: OSGi based game engine".

Thats exactly what I was searching in this time...

Thanks!!!

Viagra Online said...

Thanks for the information. It would be nice to make a open source game with existing engines but I would like to do mine for the scratch.

Unknown said...

Niz, I bought the book you mentioned on trust, but it seems to be mainly about erections with very little content relating to OSGi game development at all :'(. Are you sure this is the right one? Perhaps you have some other suggestions? I eagerly (and turgidly) await further recommendations.