In order to get some distance from my current smart home project, I dealt with Java3D. I wanted to find out if it was possible to develop a 3D game with it. In theory, it should be possible to make a game using a 3D API based on OpenGL, like Java3D is. However, Java3D has a not unimportant catch: its complexity. Perhaps this is also the reason why there are so many beginnings and advances on the internet by some courageous developers who received little or no feedback on their projects. Many questions remained unanswered - on stackoverflow.com.
I know Java3D is old. But that is precisely why one would have to find countless answers and examples on the Internet - especially about 3D games. But that is not the case. So why? When I started to investigate whether and how it is possible to develop an FPS, I always found the same examples, but never a coherent project.
The basics of three-dimensional computer graphics are difficult to understand at the beginning. In addition, Java3D comes with the complexity of a 20 year old API (and at that time APIs were not lightweight or agile). All of these are reasons why software projects are unsuccessful. And now it was clear to me why Java3D was probably hardly ever used for games in practice.
One could say that 3D computer graphics require knowledge of "difficult" mathematics, because the nature of things requires it. Likewise, one can always argue that a lot of programming experience is required and the necessary resources. And that all of this always makes a project complex. But: complexity can always be broken down, difficult math can always be simplified. Successful APIs support such principles from the start. Because success can only be achieved if there is broad support.
Java3D had a difficult start. It could never keep up with the speed of C or C ++ projects. Now you could say that this was already a knockout criterion. But this argument could be used for any software. Since Java is quite popular in software development, this doesn't seem to be a valid argument. And there are always 3D games that do not have too high demands on performance. So why is Java successful, but Java3D is not?
One reason could be that Java sets the hurdles for entry very low. (Compared to setting up a C compiler.) The first program takes three lines of code. In addition, there is no need to worry about pointers and hardware requirements. Java owes its success to precisely these facts: simplicity. If you can't keep up with the performance of C ++, it has to be simple - and platform-independent.
If you look at Java3D in the next Parts of this blog series, you will painfully miss exactly this Java simplicity.
I know Java3D is old. But that is precisely why one would have to find countless answers and examples on the Internet - especially about 3D games. But that is not the case. So why? When I started to investigate whether and how it is possible to develop an FPS, I always found the same examples, but never a coherent project.
The basics of three-dimensional computer graphics are difficult to understand at the beginning. In addition, Java3D comes with the complexity of a 20 year old API (and at that time APIs were not lightweight or agile). All of these are reasons why software projects are unsuccessful. And now it was clear to me why Java3D was probably hardly ever used for games in practice.
One could say that 3D computer graphics require knowledge of "difficult" mathematics, because the nature of things requires it. Likewise, one can always argue that a lot of programming experience is required and the necessary resources. And that all of this always makes a project complex. But: complexity can always be broken down, difficult math can always be simplified. Successful APIs support such principles from the start. Because success can only be achieved if there is broad support.
Java3D had a difficult start. It could never keep up with the speed of C or C ++ projects. Now you could say that this was already a knockout criterion. But this argument could be used for any software. Since Java is quite popular in software development, this doesn't seem to be a valid argument. And there are always 3D games that do not have too high demands on performance. So why is Java successful, but Java3D is not?
One reason could be that Java sets the hurdles for entry very low. (Compared to setting up a C compiler.) The first program takes three lines of code. In addition, there is no need to worry about pointers and hardware requirements. Java owes its success to precisely these facts: simplicity. If you can't keep up with the performance of C ++, it has to be simple - and platform-independent.
If you look at Java3D in the next Parts of this blog series, you will painfully miss exactly this Java simplicity.
Dead Ends
Many simple questions about Java3D got only one or few answers with complex source code.
Kommentare
Kommentar veröffentlichen