Hey philfrei!
Very nice of you to put all that info up. I might be able to do the same about a few things for example: using launch4j.
I also figured out (about half a year ago) how to use Graal.js instead of Nashorn for your javascript engine (if you’re using JavaScript in your java-app, Nashorn is deprecated and there is no alternative bundled with the JDK at the moment). At the time this was hard to figure out. All the examples assumed you wanted to use the GraalVM etc. and Maven for build/deploy which I don’t. With me you just put some Graal jars on your classpath and you can use it. I’ve been using it in my game since seemingly without problems. I think they’ve gotten a lot further with it though and there might be ‘official’ examples on how to do this now.
Another thing I generally see a lot of ‘confusion’ about (although maybe not on this forum) is Swing. People seem to think there’s something magic about it or that you have to use it (if not using something like JavaFX). My game runs purely on AWT there’s no Swing used. If you’re not using some other Java 2D/3D library I don’t understand why you would ever want to use Swing. Also as far as I’m aware: Swing is pure Java and purely build on top of AWT. 20+ years ago, in the company I worked for me and a few others build a component library (like entry-fields, lists, tree-views etc.) that had to look different from the AWT standard our selfs. With AWT there was only the AWT default look that supposedly would look the same across platforms (but it was far from pixel perfect) otherwise the components would look like what was common on the platform. There was no Swing. I guess a lot of companies did something similar to building there own components. Then Sun came out with their own solution to this called ‘Swing’. But i.m.o. Swing is for business (form like) application and then still a bit over-engineered (with a ridiculous amount of abstraction 90s style).
There’s a lot of little things I figured out about AWT too over the last 3 years: Some probably obvious: e.g. just because image rendering can be accelerated by your GPU you cannot accelerate any of the transformations (rotation etc.). How is that for JavaFX? I’ve never used it but from some of the code I see it’s more like for example OpenGL where there’s a ‘scene’ and sort of a rendering pipeline. So I assume it does accelerate transformations. Other things are some tricks on how to get bilinear-interpolation working. That fillRect is a lot slower than rendering an image etc.
Anyway as you can tell, I’m kinda excited about finding anybody at all still interested in using Java for games. It’s kinda sad what happened to Java and how a lot of people now think it’s not a good platform but are happy to use C#. I think a lot of this business and development career-boy oriented stuff like preaching about beans, spring, swing, design patterns, scrum, Maven, XML, etc. Have made it so Java is viewed as too verbose. Then what Google did with Android Java has i.m.o. hurt Java a lot. I think it’s strange google won that. I seem to remember Sun successfully sued Microsoft over introducing differences in JView (which was the Microsoft Java jvm at the time) that would cause developers to start coding for these differences and effectively split up Java in a microsoft version and a Sun version. Everybody seemed to be on board with Sun at the time. Years later: Google rips out the entire class library and effectively splits Java development in two and everybody is on Google’s side. Whatever.
Hey do you have a twitter account? Mine is @mosgrom