5

Just a quick question, as googling it lead to not any (good) results: Can CryEngine 3 be used from within Java? And if so, would it be a good choice or not?

Currently I am trying something in jME3 (jMonkey) and it seems to be doing pretty well, only I think that CryEngine 3 should be capable of more.

skiwi
  • 66,971
  • 31
  • 131
  • 216
  • 2
    That might be a good question for Crytek, they would have the most recent information about that. – 0xCAFEBABE Jul 19 '13 at 10:24
  • What do you mean by *from within Java*? Start it, or control it? – tilpner Jul 19 '13 at 10:24
  • 1
    @StackOverflowException Control it, pretty much as you can control OpenGL via a wrapper from within Java – skiwi Jul 19 '13 at 10:28
  • Depends, CryEngine is written in C++, so theoretically, writing a awful ton of JNI wrappers, it should be possible. The question is if it is worth the effort... – tilpner Jul 19 '13 at 10:46
  • @Bart Did you even read the question? OP IS using jME3 – André Stannek Jul 19 '13 at 13:30
  • The [CryMono](http://crymono.inkdev.net/) project might be worthwhile looking at, despite being for C# rather than Java. – m01 Jul 19 '13 at 13:32
  • Why was this closed as opinion-based? "Can I use Java to control CryEngine3" is a quite yes or no question in my opinion... – Dan Jan 18 '16 at 10:32

1 Answers1

6

As the Cryengine compiles to DLLs and you can access DLLs via the Java Native Interface. So it shouble be theoretically possible. Considering the size and complexity of the Cryengine3, I'm pretty sure they are at CryEngine 5 or 6 till you have wrapped the necessary functions of the CryEngine 3. Also calling native functions is quite expensive performancewise, so shouldn't expect any great performance. On the other hand till you are finished, processor speed will increased significantly.

Doing games with High-End graphics in Java is usally not possible. While jMonkeyEngine3 seems to be quite good, I'm sure it will not reach the quality of a good professional C/C++(/C#) Engine. When you want to get serious with game development, there are currently two options.

  1. Learn C++ and/or C#. That are the languages usually used for larger games.

  2. Do Browsergames. Than you can do the all the logic on the server in Java and just the presentation in flash or html5. But currently this limits you basically to 2D, because WebGL, etc. are not mature and fast enough to do a 3D game with an high end graphics.

ssindelar
  • 2,833
  • 1
  • 17
  • 36
  • Why did anyone downvote this? – André Stannek Jul 19 '13 at 13:27
  • Maybe because I said something bad about WebGL, some people can get a little angry there. "Random" downvotes, just happen, nothing to worry about. – ssindelar Jul 19 '13 at 13:29
  • I know that it happens, still hoped for a propper explainantion ;-) – André Stannek Jul 19 '13 at 13:32
  • @Casey Well fair enough, if that's the way it is. Any chance you know why there have been no bigger engines made for Java? I think that if CryEngine 3 would've been written on Java, that it would run good aswell. – skiwi Jul 19 '13 at 15:36
  • 2
    @skiwi no major engines are made for java since it is an inherently slower and higher-level language than c/c++. c/c++ compile into native machine code where as java has to be run in the JVM. – Isaac Jul 19 '13 at 15:52
  • 1
    @Isaac I don't think thats completely true. I think it has more to do with history than with performance, at least today. Before Java was mature enough, your only choice was C/C++, so people learned to program enignes in C/C++. They improved their skills, passed them on to the next generation, etc.. JMonkey shows nicely what is possible with Java and that an open source project, without any major games company involved (at least how far I know). If you whould start seriously (as in with money, people and time), I think you could build a good java-based game engine. Similar to Unity3D maybe. – ssindelar Jul 22 '13 at 06:28
  • As an update most [major browsers](http://caniuse.com/#feat=webgl) support 3D WebGL rendering now. – Dan Jan 18 '16 at 10:33
  • Some update: There are quite high-performance and crossplatform Java game engines available now - https://github.com/playn/playn and http://libgdx.badlogicgames.com/ – kensai May 17 '17 at 12:46