I don’t even know how to start this thread, I don’t even know how much merit the idea itself has.
I guess i’ll start off by introducing myself (you may skip this part). My name is David Arayan (or DrHalfway) and earlier this year I deferred from uni (temporary leave) to work on a Game Project full time with my good friend. The project itself is coming along nicely and is nearing completion. We basically wanted to break into the Android market for games, the idea was to be able to make enough to sustain ourselves like we would with a full time job and at same time work on a “Dream Game” that we both had.
The initial idea of our Game Engine was to create a basic scripting language that works around a scripting module that comes with the engine. This idea was unfortunately scrapped due to time constraints, so currently we code our logic entirely using java syntax and special tags which our parser recognizes and converts directly into engine-call code.
While our Dream Game is years away, and will possibly require a complete new game engine I had this idea of a Universal Programming Language which i’d like to discuss in this thread, and would also like to know if the idea itself has merit since it is such a massive undertaking.
The idea of the UPL itself is simple, provide some form of easy to use syntax which mainly borrows from the best features of the most common languages around, code in that syntax and generate equivalent Java - C - C++ and C# code. The idea doesn’t generate bytecode or native code directly, it is basically converting UPL code into one of the supported language codes and using the equivalent compiler of that language to compile into bytecode/native code or whatever machine code.
Ever since I mentioned the idea to my friend, he thinks its not really a programming language, but rather a scripting language, since we generate syntax for other languages, not the bytecode/native code directly. On a casual basis, I draw diagrams and come up with ideas for the syntax itself and the idea seems to grow on me more and more as time goes past. Thinking from a higher level, once the syntax is complete, it will be possible for example to create entire game engines using UPL and directly generate and compile into one of the supporting languages. Of course, UPL will need to come with its own library of containers, and will possibly be able to also create a common interface for performing openGL calls (and if the language in question supports it, will perform direct openGL rendering) or switch back to a software based renderer.
So now the idea itself grows even larger, becoming more of a language to be used by graphics programmers rather than a language to be used for general software development. Most language specific features can even be imitated.
So here is the great idea! code this UPL, then code the Game Engine for our dream game on top of it, and who knows? it could later be converted to some kind of library that comes packed with the UPL itself, allowing for rapid development of games that can run on one of the supported languages that UPL supports.
I understand that this is a massive undertaking and a huge challenge that will require extensive planning and documentation beforehand, not to mention possibly years of dedication to actually develop the thing. I’d like to discuss if this idea has merit, and would it actually be useful? or is it reinventing a well invented wheel and would be a complete and utter waste of time? or maybe i’m just way over my head and possibly underestimate the complexity of the idea that is brought forward. Discuss, Rant, Comment, fire away!