Answer the question
In order to leave comments, you need to log in
Answer the question
In order to leave comments, you need to log in
1) Java and even more so python (even pypy) suck in performance, because they have a lot of overhead. And this is not even about a virtual machine or an interpreter, but about the explicit ability to place objects on the stack. To allocate memory on the stack is one machine instruction in one cycle, and on the heap it is a large chain of calls, in the worst case, reaching the kernel space.
Unfortunately, java and python do not have a manual memory management facility. Although there is an offheap project for scala, it's a bit of a dead end.
One of the most popular libraries for Python is NumPy. And it's written in C.
But there is a middle ground: the engine is written in C++, but has an API for another language. An example of this is Unity, which itself is written in C ++, but the logic is implemented in C #.
And almost all the engines you listed live on the cutting edge of graphics technology. Often, even the most powerful processors and video cards are not enough for them. Remember the Crysis jokes.
2) Garbage collection can block all application threads. Because of this, you will have constant friezes.
Why are none of these engines written in Java or Python?
Mainly for performance reasons, look at dlang for comparison.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question