In the end, I don’t want much as a developer.
I want a canvas that I can draw images and text on.
I want the ability to play a sound, and the ability to set the volume of that sound.
I want to be able to respond to keyboard and mouse input.
And I want to be able to set a timer that periodically does something.
And that’s all I want to do.
Also, I’m impatient, and I don’t want to take the time to learn a new tool or API or method of deploying something.
However, at the same time, I want a decent tool for debugging, and a simply way of deploying.
Eclipse, I must say, is a decent tool for writing and debugging code.
Even though the various Java platforms resist anything being easy.
I didn’t mind the android SDK. I was able to get going with OpenGL on it.
The main issue for me was that it took a really long time for the emulator to start up, so android development work would take me quite a long time.
So, I like LWJGL and Slick2D.
And, because I have now taken the time to learn how to structure my Java projects into different packages, I can create my game in such a way where there is very little platform specific code separated from the game code and renderer.
Both the web platform and desktop platform can share a renderer, and the android gets its own renderer, but the underlying logic winds up the same.
Everything else is configuration.
So, a common library of useful classes is one package.
One package is the abstract game logic.
One package is a platform specific renderer.
One package is the overall wrapper for the platform.
(In the case of the Android, the renderer/platform shell can be the same package).
And I feel like I’m “architecting”.
But at the same time, I’ve gone back to basics.
Rather than write most of a usable game prototype, I made HelloLWJGL.
It works in eclipse.
I made HelloLWJGLApplet.
It also works in eclipse.
Next, make HelloLWJGL work as a runnable jar downloadable to Windows, Mac, and Linux.
Next, make HelloLWJGLApplet work in a web page that I upload to my Dropbox account.
And I LEAVE THESE THINGS AS PATTERNS SO THAT I CAN REFER BACK TO THEM AND NOT HAVE TO STRUGGLE SO MUCH.
So I’ve learned the language.
I’ve learned the tool.
I’ve learned the platform.
Now it is time to do some damage.