Engines

Yeah, engines, again :wink:

For my current project I’m using LibGDX, before that I was using LWJGL, but there was a lot of tedious work to do on your own so LibGDX was really refreshing to use.

Now this game will be a multiplayer game. Single player will only be there for training and tutorial. So obviously the network gaming part has to be really good. I already put a lot of work into it and it is quite decent, but I still run into tricky problems over and over again. So I begin to think that these are actually problems that people have solved already. And that’s were engines come to my mind. LibGDX already being a very well developed engine, but there are more professional and mature engines like the Unreal Engine out there.

They also ship with fully integrated multiplayer logic. So for this project I will not switch, but for a later project it seems to me that also with LibGDX you have to do a lot of work that has already be done and should be easier to deal with.

I started this project (long time ago :wink: ) with Java, because I knew that language best, but I’m a little bit in doubt that it’s the best (in terms of efficiency during development) choice for indie developers, because you are always on a tight budget and time plan.

I don’t have real question here, but I’m just interested in why you use Java/LWJGL/LibGDX/… for your project and if you run a business using Java for your game projects?

First of all LibGDX is a library of game development extensions. Not a full engine.

I just LWJGL because I love Java, even though many people “talk sh*t” about it.

I work on games (that I never finish) for fun on my free time. Originally I was going to develop my personal game engine in c++, however it just wasn’t as fun for me. I rather work on game mechanics than worry about garbage collection, although I do enjoy developing a clean program in c++. Just not games.

And if someone says the Java is not efficient for game dev they’re nuts. Well, at least if you’re an indie developer. As an indie developer the perks of another language is quite irrelevant.

This is all my own opinion. I am not that great of a game developer as its just a hobby of mine.

I do believe Unreal Engine is the best choice in game dev at large.
For the time being I am using libgdx because otherwise C++ … although using the UDK is a subset and has everything you need - I guess my main reason is I am knowledges ans experienced with libgdx, with UDK I would have to start from scrap. Might happen but not today. Also I like Java and Java IDEs.
If you wanna stick with it longer, in the case of networking there would be KryoNet. Limited but something you may use when doing client-server

For my opinion - sure, Java very good language for development and has many good IDE’s like IDEA.
LibGDX in not an engine instead of JME :slight_smile:

I’ve started wrote my own 2d game engine base on JOGL and this C++ tutorials https://www.youtube.com/playlist?list=PLSPw4ASQYyymu3PfG9gxywSPghnSMiOAW. Some classes for vector math can be used from LibGDX or JME. I don see problem with this.
For network programming, I guess, I will used event driven model and used good library like this: https://github.com/reactor/reactor.

Also I prefer to use dependency injection (libgdx is really not for this thing) and other modern programming stuff.

@ii8: I actually use DI with the spring framework in combination with LibGDX. Works well, but you will have problems to build for android (and also web I think).

@KudoDEV: It was a hobby for me too, but I try to make a living out of it now, so I have to think about economic investment of my time :wink:

@Cero: I really love java as a programming language, but as a single developer the time investment is really big for making a game. I underestimated that a bit, but we (me=dev,infrastructure; friend=gfx and art in general) are on a good way with our first (real) game. So my thoughts were economically motivated. I spent a hell lot of time with optimizing the network code for example (I tried KryoNet and Netty - now I’m using a combination of Netty and Kryo for serialization), while this is probably something I wouldn’t have to have dealt with with the UE. But I still need to find out if this is true. UE4 is now free to download, so I got it and will try to do a simple client/server networks game with it.

As the others allready said, Libgdx is not an Engine but a Framework. It’s biggest advantage is the easy cross-plattform-development, which you won’t get with the engines you mentioned.
Also, using Libgdx does not mean you cannot use any other lib. So if you don’t want to implement networking yourself, you could use KryoNet or some other network-engines. If you need physics, you can use Box2D (for 2D) or Bullet (for 3D).
Maybe the “Big engines” like Unreal Engien and so on have better support for all of those things, but also the engines/libraries/frameworks i mentioned have a good wiki and active community.

@klaus LibGDX is good, but not excellent ;D I’ve started hate it after moment when I need to create UI)) Sometimes I a bit fastidious ;D
Only one thing which I need in libgdx is SpriteBatch, which i’ve implemented with tutorials in 5 hours from scratch.