   [java] is java2d good enough for this?
  I already made some games using Delphi and Omega libraries for DirectX support.I have experience in side scrolling platforms games, with several scrolling layers, effects, and complex internal arquitecture.Now I would like to start new projects, and I'm considering moving appart from Delphi, which, by the way, I've mastered.I like C++. I know some C++. But now I'm working as Java programmer full time, and so, I'm getting quite lot of practice on it.I wonder if standar java2d api is good enough to make 2D side scrolling action games, with moderate complexity (long levels, doozens of sprites, ...).The point is... if I have to learn JOGL or something like that, I rather learn to use PLIB or allegro, or something like that, and use C++. I've got little time to work on this, and I need to be efficient with time use. Another way is to stick with Delphi, but it might be a good moment to move into C or java.Thanks in advance   
  Last time I was tinkering with Java2D I found you could draw about 2000 sprites at 60fps on my old 800Mhz PC. In real terms that works out at four layers of 32x32 tiles completely covering an 800x600 screen, which is more than enough for a good game.You have to stick with some restrictions to get though - no sprite rotation, single bit alpha and images under 256x256. But that's not really too restrictive IMHO. If you're going to do this look into the BufferStrategy class and creating compatible/automatic image (IIRC you want the createCompatibleImage call).   ;  Thanks for the info.Anyway, is there any java library appart form JOGL, to develop 2d games?I'm not even sure it JOGL can be used for 2dI heard of JWJGL, but don't know much about it, appart from what it is said in its web site.   ;  There's Slick;  A friend of mine is working on a 2D game engine for Java, I've tried it, and I like it. However it's lightweight, no super fancy effects but definitely worth a look.DownloadDocumentationAn example of what the engine looks like when used:/** * @(#)LlamaOne.java * * LlamaOne application * * @author Instinct * @version 1.00 2007/8/3 */ import llama.*;import java.awt.Color;import java.util.Random;public class LlamaOne{    public static void main(String[] args)    {    GraphicsDisplay g = new GraphicsWindow(640, 480);    g.setClearColor(Color.BLACK);   Random gen = new Random();   while (g.isRunning())    {    g.clear();   g.drawOval(gen.nextInt(g.getWidth()), gen.nextInt(g.getHeight()), 50, 50);   pause(500);    g.flip();    }   System.exit(0);    }   public static void pause(long millisecs)    {    long ticks = System.currentTimeMillis();while (ticks + millisecs > System.currentTimeMillis()) {}    }};  as I see, Slick seems cool, and it is a wrapper of LWJGL, but I'm not really sure about what does it mean. A wrapper? I wrapper for me is when you encapsulate a basic data type like "int" in a class like "Integer".So.. what would be the difference between LWJGL and slick (a wrapper of it). Should I take it a highr level of abstraction (not probably correct)also, I'm not sure if I understand the difference between a lightweight library and one that is not lightweight... heavyweight components use a specific method for rendering, while lightweight relies on java API methods. But,.. whta implications does it have?could anyone give a very brief explanation so I can keep on investigating?[Edited by - patroclus2 on August 22, 2007 4:56:48 AM];  Slick is a 2D library that hides all the nastiness of doing 2D in OpenGL.  Slick is also designed to be as much like the Java2D API as possible, so those familiar with it can make a smooth transition.  Basically you get the simplicity of 2D while getting the acceleration of 3D.   ;  The "lightweight" in LWJGL is not the same as the "lightweight" in AWT vs Swing. I would say it's lightweight in terms of features, because it does not add too many new features on top of wrapping a couple of libraries. But I think the association they are trying to go for is "lightweight means fast". As for Slick, it's not merely a wrapper since it's trying to offer more features and a higher level of abstraction. On a side note, as far as I know, Java2D is usually accelerated with DirectX but can also be accelerated using OpenGL.   ;  So, Slick is a wrapper of LWJGL, because it hides some of its complexity and works on higher level of abstraction. That makes sense now.About the lightweight... I'm not sure if I understand the implications. Can you still use Swing GUI when rendering in OpenGL using LWJGL, Slick or JOGL ?;  You should be able to. I haven't tried since I never had a need to do it. I've read that it should be easier with JOGL than with LWJGL. However, the question is do you really need to? With Slick, you can use the Slick gui package (somewhat limited but you can extend it), with JOGL or LWJGL you can use FengGUI or roll your own. Swing seems a bit too heavy on features to use as a game UI. Also, I'm told that it's not possible to completely control when and how Swing is re-painted and how it processes events.   