Although I know this is the Java-Gaming forum and I do not want this to become a "Which is better" debate.

I was curious, as we all like to learn and explore, What other non Java frameworks and languages have you tried out and what are your thoughts and experiences on it?

How does it compare against your Java experiences? Have you learned anything that you brought back to your Java Programming? Approaches/Style?

I personally love LibGDX quite a lot and Java, its my #1. I have never found anything that quite meshes with my workflow quite as well. Everything from Eclipse/IntelliJ IDEA, auto complete, refactoring support, compile hot swapping <3, suggested 'fixes', etc...However I do from time to time, go and explore alternatives, for learning and exploratory purposes.

I know quite a few people I am sure have played around Unity3D at least a little bit.I have tried Unity3D(C#) several times before and just never liked it? Maybe its because I didn't have the workflow set up properly? Things like intellisense or the time it takes to modify code, compile, and see outcome. Although this is easier in unity3D, when I last tried it, the built in text editor had no real support, so I was pushed to use an external compiler/IDE which just slowed my 'instant feedback' that I have come to know and love.

I recently was exploring SFML(C++) and liked it a fair amount, its probably my fav C++ game framework at the moment. I had some issues with visual studio with it, such as slow compiling times and other issues. However after switching over to Code::Blocks all my issues went away. Code::Blocks and C++ doesn't seem to have some features and functionalities that I've come to use and love in Java/Eclipse/IDEA.

I have toyed around with ActionScript, Flixel, and FlashPunk and liked them all a fair bit. Though there is always something that pushes me away from it?

Though I've considered and been wanting to explore some OpenGL libraries/frameworks, equivalent to LWJGL, such as OpenGLUT, FreeGLUT, GLUT, or Suggestions?

Things I hope to explore at some point:XNA?MonoGame?SDL?DirectX?pyGame?Source Engine?

Edit:Please try and NOT make statements like "X is better than Y", or "A is faster than B", or "Q sucks", "I hate Z" or worseKeep it to reasons why you didn't personally like it, or you did personally like it.

Editx2:If this thread gets even slightly out of control or too much 'fanboy' 'hate' 'troll' I will ask a Mod to move to Chitchat Monster or delete thread.I am just hoping for some insightful thoughts and experiences, and not a 'debate'

Due to all the crap around Java (*cough*, *cough*, *applets*, *cough*), I have been considering learning other similar languages in case of the event that not enough players have a JVM installed. Although then I guess I could just include a local JVM.

I had a look at Python, but the thing about indenting instead of parentheses put me off.

I haven't found anything else I liked the look of. Turns out that it's hard to find an OOP language with nice syntax and decent garbage collection.

As much as I like to do things myself, I hate all these languages/development environments that have so many trivial things you need to do before you can even worry about programming.I want to be able to start coding on a new project within a minute of opening my IDE.

@HeroesGraveDevWith the Applet/JVM issue. Is one of the reasons I started to look at AoT for my Java stuff. I was one of the lucky few who got Excelsior JET for $10 a while back.

Also one reason why I like LibGDX, GWT, and deploying to mobile (android/iOS) to avoid 'security warnings' and some peoples fear and misunderstandings of .jars (Given the time, its why I would bundle to exe for windows launcher, even if its still using local JVM)

I currently am teaching an Object Oriented Programming(C++) course at my university and I wanted to show them what inspired me into programming and game development. It is written in Java. And stupidly the classroom's computer doesn't have ANY JAVA JVM installed on it! and my laptop only has HDMI out, and projector only accepts VGA. Sigh the world is against me!

Although I've pretty much only tried java, I agree with HeroesGraveDev on the point of Python. The simplicity, even if just of the hello world code, really turned me from it.

@namrog Do you have an online version of that course or something? When I started programming I jumped right into Java so I don't have any traditional/theoretical training that you would get at a college.

I've tried Unreal, Unity 3D and C++ with GLFW. The main reason I tried them was because they're the industry standards, and because Java isn't compatible with consoles. I thought that it would be a great advantage to learn them good and maybe one day get a job in the industry. But I quickly figured out the bad side behind this.

I gave up on Unreal and Unity 3D because I'm a guy that like having that low level control with OpenGL. I tried GLFW, and while it's an API with mostly the same purposes as LWJGL, I felt like C++ was fighting me as a developer. Therefore I returned to my dear Java. I did some reflection on this later; Why I tried these solutions. The main answer was, as said, the industry. I figured out though that the experience from developing a game isn't platform/language specific, and that I should just pick the language I was most comfortable with. Therefore, Java.

Unlike LibGDX/GWT, there is no JS bloat and you better control over JS in the browser (things like DOM and Canvas).

JavaScript is a powerful language once you really get the hang of it. Until then, though, you will probably hate it. (There's always CoffeeScript and others for that...)

Live-reload in your browser means no compilation. Java has hot swapping but I found that never played well with OpenGL (for example, it wouldn't re-compile shaders, it lead to some texture artifacts, etc).

THREE.js is (IMHO) much easier to work with than LibGDX's 3D API or jMonkeyEngine.

It can be delivered to a wide audience; and even mobile is pretty easy to target. This will only improve as mobile and touch devices begin to support more HTML5 features, like WebGL.

Unity is great if you actually want to make a fully fledged and cross-platform game. The problem is, most of us here are tinkerers and programmers, and would rather create a game on our own engines and get our hands dirty with low-level stuff, even if it takes us an extra year. But, for start-ups and dev companies, Unity is a godsend.

No one has messed with C#? It's a very viable language, and great for programming games. The syntax is very similar to Java. That's kind of the reason I didn't try to get deeply involved with it, though. I don't really need 2 different languages that acted so similarly to do the same thing. That, and I'm not a .NET person.

I did do some game programming in C#/.NET/XNA, and it was quite easy to get started with. C# is really a nice language, not so much different from Java in my experience. However, C#/.NET/XNA also means doing things "the Microsoft way", which in my experience means: if you want to do something non-standard you are in deep trouble.

Javascript/HTML5 sounds nice and promising, and I do follow the developments there. However, I still have my doubts about the performance and ease of development there. So far I simply have not seen a JS demo in the browser which was not 10+ years behind in performance compared to Java (e.g. "cool, we have Doom in JS!" )

Anyway, use the tool to suit your purpose. I use Python now and then for quick jobs, e.g. for writing a simple script to crawl some websites. It's quite an elegant language, and it can be really productive to work with. I worked with C and C++ but that felt too much like working in Assembly. Just too much additional stuff to keep track of for my tiny brain. So I settled on Java: a nice compromise between performance and ease of development. It's also very possible to do a user-friendly deployment of Java applications on several different platforms with a little effort.

Hey Davedes, thanks for the links. However, these links kind of make my point: it's promising and worth following, but not a serious competitor for Java when it comes to making computer games. - Link 1: "sorry, you need Chrome for this." In Chrome it looks pretty but quite low-detail (as in: low polygon count) and performance is not great. - Link 2: again, good looking but only 2 cars and some primitives, render cutoff of 5 meters. - Link 3: tried both in Chrome and Firefox, hangs in both (not responding/shader compile error) while loading.- Link 4: awesome idea. However, crashes in Firefox for me, doesnt do anything in Chrome for me other than "shader error" and the "busy" circles turning forever.

Don't get me wrong, I love the idea of Javascript + WebGL and maybe in a couple of years it will really be something. But currently it's just some tech demos with lots of cross-browser incompatibilities and issues showing less-than-impressive performance and capabilities.

Bummer the sites aren't working for you. They are all very responsive on my computer and with Chrome, FF, and Safari.

It's true that there are not too many WebGL games at the moment, and most focus on low-poly art styles. The point of showing, say, the car example, is not to say look how amazing this demo is, but to say the technology is there: FBOs and multiple render passes, post-processing shaders, programmable illumination & reflection, VBOs for rendering, etc. These features were simply not realistic 10 years ago, let alone within a web browser. So to say that JS isn't making anything more than DOOM is a bit of an exaggeration.

Unfortunately, not many game dev companies have the confidence to drop too much money on WebGL. So we aren't seeing many games with high production costs, beautiful graphics, and endless content. Maybe this will change as the technology evolves.

As a Opera user I dont see WebGL as a viable solution right now.If WebGL would work everywhere without problem then yes. But I am also primarily interested in more complex games and not casual games which most web/android games would be.But hey I'm probably going to check out threejs at some point since I do a lot of Firefox OS programming and get better in javascript - although I hate javascript now that I know it.

I have often played with the idea to really try some C++ game development... and I will eventually.It's just... what library ?I did something in SDL once but that seems horribly outdated for today.Also I would like to not use OpenGL directly, too much work.Might as well just check out Unreal Engine...Best case would be Libgdx in C++.

Then again what would be the point in using C++ at all ? Well I need to learn it anyway probably if I want some industry jobs - in that case Unreal engine would be best anyway.

I did C++ on Windows before I started to use Java; did DirectDraw, Direct3D and OpenGL stuff (I prefer DirectDraw/Direct3D because its slightly more OO). Always low level, never any high level "engine" stuff except for me diving into the source code to figure out how certain things were done. I went through my own engine building phase like most people, until I saw the light and I started to put the focus on the games.

I did quite a lot in my C++ days, but it was cumbersome and fragile to do, and debugging was hard; I once spent a month trying to figure out a crash that had something to do with misuse of DLLs - not continuously of course, I was busy working around that crash until an accidental debug step into code of the standard lib showed me a comment that explained all to me where books and MSDN had not. The bug was solved and I liked C++ on Windows a little less yet again.

The turning point for me was when I decided to port a piece of game I had done in C++ and I had something up and running using Java, without late hours of debugging and without inexplicable crashes and memory leaks, in a fraction of the time it had taken me to build it in C++. And that is including the time I needed to figure out how to use LWJGL properly. I never turned back, except to port over more code.

I tried C and C++. They are awkward programming languages (I don't like the preprocessor, the strength and weakness of C). Nevertheless their compilers create the fastest executables and for me this is the only reason to develop in C/C++. To make it short I don't know of any tool, framework or library that would make me want to program in C/C++, but if I had to choose I would take the Qt Framework with the QtCreator IDE, because of the clear API, good documentation, platform independence and good refactoring capabilities of the IDE (personal experience).

But I like speed (or at least the idea of it ^^). So I tried D. It has a syntax as good as that of Java, low level control, optional GC (garbage collector), the ability to use C libraries and more and more and more. It was very promising. The derelict project makes possible to use GLFW and other libraries needed for games. So I made some tests concerning the daily use of the language and it turned out that the usability of D was indeed very good, but the speed of the executables (compiled with dmd 2.062, i386) was behind that of Java. I didn't see the point to change to D. Java was faster and had better tools.

I also tried other languages like Go (version 1.1) and Chapel (version 1.7.0), but not metioning the missing tools they couldn't deliver the performance they promised. (Go has multithreading disabled by default? I don't know... And Chapel had real performance problems in multithreading >.<)

By the way, the development of the XNA framework is discontinued [extremetech.com]. One can use MonoGame, a free implementation of the XNA API. It's actively developed and not touched by the XNAs stagnation [thread 1, thread 2].

@namrog Do you have an online version of that course or something? When I started programming I jumped right into Java so I don't have any traditional/theoretical training that you would get at a college.

To be honest, there are probably better things out there. But some of the notes are posted online, though its an in class lecture course.

If you want to do the assignments and send them to me, I'd be glad to grade them and give you a 'grade report document' the same that any student in the course would. For a pseudo college c++ experience.

Though to be fair, there is a ton of resources online and elsewhere that are probably better, but this isn't too bad.

I originally started out programming with C++ but abandoned it when I started java. I have also used Unity and the Source engine which were ok for what I was doing with them. The only other framework/engine that I would have used would be UDK which is unnecessarily complicated.

If you want to do the assignments and send them to me, I'd be glad to grade them and give you a 'grade report document' the same that any student in the course would. For a pseudo college c++ experience.

I'll work my way through those, about time I learned a bit about a non-Java language anyways. Gonna be bogged down by tests and SAT and what not but I'll send you some assignments if I can. Thanks!

C/C++, I used the CodeBlocks IDE at first, but I hated that IDE, so I was going back to Eclipse (they have a C/C++ IDE also), so once that problem was solved I started to code a platformer with SDL/OpenGL, I can't say that I don't like it, but the compiler flags, and importing libraries really pissed me off in the beginning (didn't understand it). After that it was quite fun, its a little bit less flexible, because memory management is something you don't have to worry about in Java, but C++ is another language... (Take 2D arrays, and giving them as a parameter to a function for example).

Further Java/C++ are really similar, made a network application, it is really the same as Java-networking. But I ended up with a silly UDP-problem which was no problem local, but over internet (really only over internet, not local) it was behaving really weird (client received first msg from server, nothing more, had nothing to do with firewall/ports, it is really the code/C++).

So I headed back to THE platform-independent, which I really appreciate now, as I had to do it all in C++ myself (my networking was working on Linux/Windows).

I've done many years of C# and Java programming. Scala is a big leap from both. A few Reasons?

- Properties. Java has this horrible convention of writing getters and setters _everywhere_. C# has this half fix of "properties" which are redundant with regular fields or variables. Scala implements this the right way. I won't explain the full thing here, but it really is far more elegant than either Java or C#.

- Generics. Scala arrays use standard generics syntax and casting rules without any performance hit. C++/C#/Java all have this legacy with completely different syntaxes and completely different casting rules for no reason other than legacy. Additionally, C#/Java are prone to array casting runtime bugs that Scala catches at compile time. In hindsight, C#/Java made a mistake by making arrays covariant, but they can't change due to legacy.

- if/for statements can return a value. No need for special ternary operator when you can use an if expression.

- LINQ: Notice how Scala can do everything C#'s LINQ can do with the core Scala language without pulling a C# move and bolting a completely separate disjoint language syntax on top of the core language.

I did about a year ago. It looked pretty good but the installation was a nightmare. The installation file messed with strange files on my computer. I ended up having to uninstall the software by using the terminal and deleting and restoring files.

Haha, that reminds me of something Riven said some time ago about adding a confirmation dialog to the appreciate button

Quote from: Riven

Do you find yourself accidently smiling at a person, then walking up to him/her, explaining how it was a mistake and you merely wanted to express a neutral facial expression?

That being said. Unluckily there isn't any magic bullet when it comes to other frameworks. Advanced applets are going to die quite soon though (if they didn't already some time ago) so I think that the best thing to do is to do AOT compiling or at least bundling the jar (and possibly jre) into executables with for example Launch4J.

I started off programming in Javascript making simple things,using JQuery for animation. I cant stand looking back on code I've written.Also used Unity(JS), I liked it alot and got pretty good with it.Its lame having to do models, textures, art, and other stuff when you just want tocode. Thats why i moved to 2d.

java-gaming.org is not responsible for the content posted by its members, including references to external websites,
and other references that may or may not have a relation with our primarily
gaming and game production oriented community.
inquiries and complaints can be sent via email to the info‑account of the
company managing the website of java‑gaming.org