Java for real-time applications
Anyway, please excuse the poor title choice but my post does cover several things.
Since there are a lot of C++ programmers on here (who, stereotypically hate java) I thought I'd ask...
Background: I've been playing around with C for a couple of years, currently almost at the end of my first of four years in a Software Engineering degree having only used Java since the start of 2008. And getting rather competent in it, possibly thanks to my C background.
I've been reading several real-time application development books, some game related, others not -- in this context by real-time I mean things like games etc. Since I've only really played around with C++ for a little while, I can easily read it and reproduce it just there are some several 'dark areas' I'd need to brush up on. I've decided to try make some sort of 3D game engine in Java ... for those of you who have used Java you'll notice how much you get for how little typing you do!
I've also looked in to various benchmarks of C/C++ vs Java. And I've looked at the quake2 Java re-write "jake2". I just love the fact it's portable, and that I don't have to do anything for some platform I've never heard of to play! Granted some JVM emulation to ensure consistancy (such as floats) is going to incur a speed cost as are JNI calls to OpenGL. It should also be taken into account that computer horseys are getting cheaper, and this would definatly not be class as "industrial grade" by todays standards.
Basically I want peoples' thoughts/ideas, such as potential security or performance issues (I've been benchmarking various style of Java coding such as static methods vs instance methods -- the results are a surprise!)... and things I might need to watch for. Sorry for the long post :eek:
I've attached the first iteration of the class diagram (sorry it's hard to read, the diagram is rather big dimension wise and had to be scaled back) , still a lot of classes to add; including various spatial partitioning -- so far an Octree but further research / reading could change that. It's not complete, comments on that as well as the diagram itself (part of my coursework) are appreciated! Note the shaded areas are the 'binaries' where execution starts (2 binaries).