A simple 3D game library compatible with Linux?

Started by
17 comments, last by kop0113 11 years, 9 months ago
Some LibGdx features:

  • sprites
  • particles
  • OpenGL bindings
  • integrated bindings to the C++ physics library Box2D
  • bitmap fonts
  • UI widgets
  • support for tile maps
  • various target platforms like Windows, Linux, OSX, Android and soon iOS
  • audio
  • input
  • Open Source
Advertisement
LibGdx looks good but I would have a slight issue with my game requiring a whole .NET framework to be installed for it to work.
Not saying it is a bad thing and I have seen a couple of the games in the humble indie bundle doing it, but I guess if it can be avoided, I definately would.
Remember Linux doesn't come with as many libraries as Windows by default and it is just such a pain to have to drag so much stuff in just to run a game.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.
It sucks that you are not allowed to strip down the runtime by yourself when you bundle it. At least that will change with project Jigsaw.
On the other hand, big titles take several giga bytes meanwhile, so what are 40MB compressed runtime for an Indie game compared to that ?
About 8 minutes of OGG-compressed music take up about 30MB as well.
That is just the natural evolution.
LibGDX seems nice. But I still don't know. It runs on .NET but it's Java? What is this sorcery.
libgdx runs on the Java platform and can cross-compile to JavaScript.
Also, you don't actually have to use pointers in C++. Using 'new' to instantiate a class is actively discouraged when you can use stack objects and pass by reference.

Irrlicht with c++ also doesn't require any memory management because it is all reference counted whereas java for example still requires resource management with things like files and threads etc...


I'm sorry that I'm off topic as far as OP, but I'm not sure if this is quite right. As far as I can see, there is no way to close an actual File object and if I recall correctly, when threads reach the end of their execution, they die and get recycled.

Yo dawg, don't even trip.

If you are more interested in working on the GAME than learning the language technology,. perhaps try the opensource ZGameEditor. It uses a C like scripting and lets you preview stuff in real-time from within the editor. This speeds up development of the game.
iterationgames.com remember when we used to play ?

LibGDX seems nice. But I still don't know. It runs on .NET but it's Java? What is this sorcery.
IKVM. Java classes loaded into mono or .net. No java runtime required.

It actually only requires java. However iOS doesnt support java which is where IKVM comes in as IKVM will run on iOS and can load the java classes required to use LibGDX on iOS. Theoretically you could choose to use it with IKVM on the other platforms aswell but for mac, windows and linux support you don't need IKVM or .net or mono.
Yes, sorry. My fault for causing this chaos. I meant a Java VM not a .NET VM. :/

That said, it is often even more awkward to get Java installed on a less known version of Linux (or BSD) than it is Mono due to licensing and bootstrapping issues.


As far as I can see, there is no way to close an actual File object and if I recall correctly, when threads reach the end of their execution, they die and get recycled.


In C#, to make sure an open file has been closed, I am quite sure that you need to call Close() on it whereas in C++ (std::iostream), you just let it go out of scope and it will close immediately.

As for threads, it is quite common that they go on forever (such as a polling server) and it is up to the main thread to signal them to close. If some random exception is thrown, so long as the thread is correctly wrapped in C++, it will all clean up perfectly with no extra hassle, however in C#, I have seen some really messy hacks to get round this, usually involving the singleton pattern and a shedload of try catch, finallys.

To bring this slightly back on topic, since the OP did mention JMonkeyEngine he is probably quite interested in using java, in which case I did come across an engine called JCPT (http://www.jpct.net/) which looks extremely easy to use and has good example projects.
http://tinyurl.com/shewonyay - Thanks so much for those who voted on my GF's Competition Cosplay Entry for Cosplayzine. She won! I owe you all beers :)

Mutiny - Open-source C++ Unity re-implementation.
Defile of Eden 2 - FreeBSD and OpenBSD binaries of our latest game.

This topic is closed to new replies.

Advertisement