I've been looking around the net for months now in an attempt to find the most appropriate tool for my needs. I haven't had a lot of time to devote to the creation of systems that could possibly already exist, however, now I do.

That being said, I've been drawn to 2 or 3 APIs/Engines thus far. The bulk of my experience lays with Java due to the exposure during my time in high school and college (of which I am currently a senior in, if any of you are wondering!) but I have used Python, C, C++, C#, and even a little Ruby and PHP for site needs.

Now, I've sought the power of OpenGL and LWJGL because of the platform independence and the obvious success of things such as Minecraft being used in a Web, Linux, Mac, and Windows environment. This is all due to Java, LWJGL, and a very interesting game concept. I've used the Slick2D API which is built upon LWJGL and I would like to continue with it if there is promise of no limitations on what I intend to create. I need a powerful, platform-independent 2D/3D graphics library, an input-monitoring system with perhaps even controller support, and networking capabilities beyond that of the standard (Java, or other language) library.

I've also looked into both the Torque Game Engine as well as the UDK and, to be honest, the UDK looks quite perfect. However, my goal for the end of this project is for the user to be able to host a multiplayer session which other players can join via IP or hostname, the world be a unique generation for each "new game", but still not limit the game in such a way that would not allow complex system to be implemented. Now, nothing would be limited if I simply used the UDK source, but I will not make such a commitment without first consulting the experts.

TL;DR - This is not intended to be a, "Which engine should I use? I like Java but wahhh I'm scared to write real code!" I have written my own engine (2D) and it has not been as successful as current ones, but it's done what I wanted it to. My only question is: Is the UDK sufficient for my needs; if not, I believe that the Slick2D API could be. I'm an aspiring Computer Science major from Michigan Tech, so learning and developing something new would not crush my world, haha. I would just like to hear what the beating heart of SE has to say on such topics. My plan for this project was 2D purely to control scope creep and not overwhelm myself.


PS - Also, I've done research on all programming topics associated with this development: creating standalone listening servers, PCG, complex item/inventory/reward systems, advanced dynamic RPG level systems and dynamic storyline systems. I'm not a super-noob. Just a curious individual.

  • \$\begingroup\$ Hey Randal, welcome to the site (or at least your first post). If you don't intend for the question to be "Which engine should I use?", what exactly are you asking? I assume you've read the FAQ on "Which technology to use" questions, and how they're off topic. While your question is a reasonable one, it seems to be asking for a discussion. The FAQ also lists some places where discussion type questions can be asked if that is what you're looking for. \$\endgroup\$ – MichaelHouse Dec 27 '12 at 18:41
  • \$\begingroup\$ I did rigorously read the FAQ prior to this post and attempted to phrase it in such a way to deter discussion but request answers from people who have used the APIs in question. I apologize if the question seemed ambiguous. \$\endgroup\$ – Radai Dec 27 '12 at 19:34
  • 1
    \$\begingroup\$ @Radai Then answer this. How can anyone know the future? This is a highly speculative question. You want others to assure you that you take minimal risks. Yet with any non-commercial library -- OR commercial library for that matter -- you are taking a risk. That is the best answer you will get, unless you meet each of the LWJGL developers personally. \$\endgroup\$ – Engineer Dec 27 '12 at 20:07
  • \$\begingroup\$ @Nick I get what you mean, and that's totally true. I'm just asking for reflections from people who have used the libraries in question. \$\endgroup\$ – Radai Dec 27 '12 at 23:21

If you're looking to develop your game development skills with a 2D game, I highly recommend using LWJGL/Slick2D. Slick2D is a great library that makes making games really easy, and allows you to get experience with putting together all the other aspects of the game instead of just wrapping your head around graphics (which is a huge task). Additionally, I feel that (in my humble opinion), Java is a really good language for Networking. However, if your game is highly physics-based you might have some trouble since Java isn't really a targeted environment for that kind of development. There are some libraries like JBox2D, but they generally lag behind their C/C++ counterparts by quite a bit. Also know that Slick2D is SOLELY a 2D library - don't expect to do a 3D game with it (note you can use LWJGL with the slick_util library to do this though).

The Unreal engine, on the other hand, is going to be a serious leap up in difficulty. If you haven't developed at least a medium-size game before, I would steer you away from this choice. This engine offers high-end features intended for a high-class game. Learning all of these features for graphics/physics are probably beyond a beginner at game development. Also, this isn't really intended to be a 2D development platform, since it's aimed at high-end development (just look at the showcase - if your game doesn't really fit in with those games, UDK probably packs more punch than you need). However, programming with UDK would give you good experience programming a high-end game engine, and definitely stretch your skills - just be ready.

I'd propose a third option, and that's to use a C/C++ solution that really fits your game needs. I'd suggest checking out libraries like SDL and SFML which offer a lot of Java-like functionality and rather mimic what you'd be getting with Slick2D, but also allow for 3D options, C++ physics engines, and good experience programming in C/C++.

Hope that helps!

  • \$\begingroup\$ I appreciate the take on the UDK and I feel that the goal of my game would make more sense in a 2D world as manipulative environments and procedural generation of 3D worlds is...rough. I'll definitely check out the SDL and SFML libraries as well. Plus I also like pixel art and 2D or even 2.5D gives me a good base for that art style. Thanks for the quick and informative response! \$\endgroup\$ – Radai Dec 27 '12 at 19:26
  • \$\begingroup\$ Also, on the question of if this is a constructive question, perhaps it would have been better to ask "Which library will be better/easier for programming a 2D game in?" or something along those lines ;). \$\endgroup\$ – Max Feldkamp Dec 29 '12 at 2:37

Not the answer you're looking for? Browse other questions tagged or ask your own question.