Speaking of Java, that brings me to an important question. I have started porting the engine from c++ to Java, firstly because jPCT is Java, but secondly because that is the most likely environment it will ultimately be running on in future projects as well. My question is about preventing people from stealing the engine for use in their own projects. Despite the fact that my recent projects have all been free and open source, I am not one of those anti-intellectual-property zealots. I would like to maintain sole control of the technology, at least for now. My initial thought is to hide interfaces to the engine in internal private classes and methods. Does anyone know how secure this is? How difficult is it to partially reverse-engineer Java byte-code to access internal methods? The program would not have to be completely reverse-engineered - merely changing the interfaces from private to public would give someone the ability to utilize the engine in any project.
I suppose if I was completely paranoid, I could interface with the engine via a Perl script server-side, and have the applet communicate with it over a secure encrypted connection. Of course, that would be a lot more work, and perhaps a bit of overkill.