Feb 5, 2013 at 9:57 AM
Thank you for your response.
I must say that some of your arguments surprise me. I thought that C++ was not a strongly hyped language, rather strongly hated (for instance, see the C++ FQA - Frequently Questioned Answers). I don't like C++ myself, I much prefer a statically typed functional or object-functional language, especially languages that follow the traditions of the ML-family. That said, I do appreciate the advantages of C++, and I think those advantages make C++ a prime candidate when choosing a language for a real-time, graphics-intensive game engine. C++ is closer to the metal than languages like Java, and this results in less overhead when using libraries such as OpenGL. The support for manual memory handling can also be very useful when fine-tuning performance, something that is not an option in a purely garbage-collected language. Given that Iji at this point in time is not really a graphics-intensive game, Java is a good choice, and even though it is somewhat verbose, it is often less verbose than C++ and is much easier to program in and get correct. Java can also be run in the browser, though it can be discussed whether Java or html5+javascript are preferrable for that purpose. And then there is emspripten and similar options to consider, of course. It should be noted that it is the plan that ENIGMA at some point will support html5+javascript as a compilation target.
However, the main surprise for me is that you seem to take a language-oriented perspective, so to say. Iji is not a small game, and porting it to a new language is likely to be a large amount of effort as you have said yourself, much larger than the effort of using ENIGMA. And if you use ENIGMA, your work is likely going to not only benefit Iji, but also other games.
I must say that some of your arguments surprise me. I thought that C++ was not a strongly hyped language, rather strongly hated (for instance, see the C++ FQA - Frequently Questioned Answers). I don't like C++ myself, I much prefer a statically typed functional or object-functional language, especially languages that follow the traditions of the ML-family. That said, I do appreciate the advantages of C++, and I think those advantages make C++ a prime candidate when choosing a language for a real-time, graphics-intensive game engine. C++ is closer to the metal than languages like Java, and this results in less overhead when using libraries such as OpenGL. The support for manual memory handling can also be very useful when fine-tuning performance, something that is not an option in a purely garbage-collected language. Given that Iji at this point in time is not really a graphics-intensive game, Java is a good choice, and even though it is somewhat verbose, it is often less verbose than C++ and is much easier to program in and get correct. Java can also be run in the browser, though it can be discussed whether Java or html5+javascript are preferrable for that purpose. And then there is emspripten and similar options to consider, of course. It should be noted that it is the plan that ENIGMA at some point will support html5+javascript as a compilation target.
However, the main surprise for me is that you seem to take a language-oriented perspective, so to say. Iji is not a small game, and porting it to a new language is likely to be a large amount of effort as you have said yourself, much larger than the effort of using ENIGMA. And if you use ENIGMA, your work is likely going to not only benefit Iji, but also other games.