I have said this project is written i java, right? Common knowledge is that java:
- run on any platform
- is slow
- is easy to decompile
Plattform independeceAs far as this project goes, it wont run unless the graphics are accelerated. Antialiasing, bilinear filtering and such isn't cheap. My laptop turns of acceleration when it's about to run out of battery, and it's really noticeable. Framerate drops to half. So, the part about plattform independence is out the window. Sorry. This game will run on windows (and maybe linux some day). Another reason for this is coming further down this article.
Performance
Java isn't slow. Maybe not as fast as c or c++, but it is starting to catch up. Some benchmarking
even show java to be faster, but as I understand it, that was under special conditions. However, the bottleneck (graphics) in my project is handled by openGL or DirectX. And then I am as fast as any game. On my machine (a P4 3GHz with a ATI Radeon 9800) I get the maximum 80 fps.
Reverse engineeringI don't like the idea that my game can be easily decompiled and altered. It has nothing to do with copyright (well, maybe a little bit). I don't want to spoil the game experience, by allowing people to have infinite xp and equipment. Or reading the mission files and finding the secrets, or altering them. This is why I descided to pack everything up in an .exe. Not that it will stop a hacker, but not every java programmer can take it apart in 10 minutes.
Excelsior jetThis is a company/product that takes a java project and compiles it into a windows or linux binary. This has the following advantages and drawbacks:
- Java bytecode is hidden from decompilers.
- Resources, data files, images and sound are protected.
- More accessible, no need for the player to install java.
- Faster, no need to interpret the code at runtime or before (jit). It is already compiled into native code.
- Not platform independent, but who use their unix machine to play games anyway?
http://www.excelsior-usa.com/jet.html