Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (513)
Games in Android Showcase (121)
games submitted by our members
Games in WIP (577)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  Is Java Missing its Window of Opportunity with Gaming?  (Read 3739 times)
0 Members and 1 Guest are viewing this topic.
Offline gene9

Senior Duke


Medals: 10



« Posted 2012-12-28 18:14:49 »

C++ is really terrible for cross-platform development. The core language is 90% full cross platform, but the instant you add networking or GUI or 3D or an installer or multi-threading, you generally use extremely platform dependent libraries. On top of this, the C++ dev environment on Linux is exceptionally tricky and difficult to work with.

Java seems to have a real opportunity here:

- it has excellent runtime support on Windows/Mac/Linux
- you can easily bundle a JRE so that you don't expect your users to understand and maintain that themselves.
- Runtime performance is excellent. It's generally only ~20% slower than C++. I know performance is *extremely* complicated and not so easily summarized, but that is a reasonable high level approximation.
- The dev tools and experience is dramatically better in almost every way. The language is much nicer, it is more complete (stuff like networking and threading is built-in), IDEs are nicer, build tools are nicer (Gradle + SBT are far better than makefiles), debuggers and profilers are better. Debugging memory leaks, and array out of bound writes is orders of magnitudes better.
- Scala. Scala is dramatically more elegant than the Java/C# breed of languages. This has practical benefits in terms of maintenance and higher level reasoning as well. Many more builder type programmers don't appreciate this type of high level stuff, but some do, and I suspect this will grow.

The negatives are:

- Java has a bad image. People don't like it for only semi-valid reasons. For example, people had some bad experience with the Java web plugin, which is valid, but are soured off on the whole Java ecosystem which really isn't valid. People also have bad experiences with "enterprise" Java or JavaEE or JPA or Spring or Struts, which I think is valid, but is turned off of everything else, which isn't valid.
- There is no momentum behind Java. 95% of the game programming community is primarily C++ or JavaScript or Objective-C. Java is off the radar. People don't understand it and aren't excited about it and don't even learn it.
- No game programming infrastructure for Java.
- Java doesn't have a good route to iOS or consoles. Even C++ is better for these.

Anyway, I fell like the Java community should seize the opportunity while it is here.

Offline Jimmt
« League of Dukes »

JGO Kernel


Medals: 136
Projects: 4
Exp: 3 years



« Reply #1 - Posted 2012-12-28 18:21:48 »

Seize what opportunity? Everyone here (almost everyone) is already a game programmer, and if you  look at the games in the showcase and WIP and featured sections a lot of them have executables/a .jar file for all the major platforms.

Quote
There is no momentum behind Java. 95% of the game programming community is primarily C++ or JavaScript or Objective-C. Java is off the radar. People don't understand it and aren't excited about it and don't even learn it.


How is Java off the radar? According to this http://langpop.com/ Java is in the top 3 for nearly all catergories. I have friends that have no idea what objective-C are but almost everyone knows what Java is. Not to mention that Java is considerably easier to learn than C++ and C (not easier than javascript, obviously).

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html has Java at second as of December 2012.

Java certainly has a bad image though, if you looked at the comments of any report of the AtomicReferenceArray security bug you would have seen everyone saying that they were going to uninstall Java.
Online HeroesGraveDev

JGO Kernel


Medals: 269
Projects: 11
Exp: 2 years


┬─┬ノ(ಠ_ಠノ)(╯°□°)╯︵ ┻━┻


« Reply #2 - Posted 2012-12-28 19:05:05 »

Javascript may be easier to learn, but any small mistake results in the program silently failing, leaving you to try and work out whether you made a mistake in the design, or the code.

I hate that.

C/C++ is a mess. Coding is fine, but looking at someone else's (or your own) code to work out what somethig does is a nightmare, especially with C++. (I have never used C/C++, but there hae been times I tried to convert the code to Java.)

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Dregron
« Reply #3 - Posted 2012-12-28 19:27:41 »

Don't really think java is missing its window with games because of they way the languages is it's self because its Easy to learn, easier to find solutions to your problems, Easy to show of your programs. So in my opinion people are finding their way to us with just finding someone with the same issues.

I've programmed a game in c++ and trying to get some help with something is a lot more difficult, which in my opinion that is going in the wrong direction things should be getting easier not harder. I know they are library's etc but they are still a lot more to when your just wanting to put something online or trying to find a fix for a problem you have been getting with the your code.

I also think it counts on developers showing off good quality programs that interest people and make people wondering how it was done.

Bit of a noobie but that's my thoughts Smiley

The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.
Offline namrog84

JGO Ninja


Medals: 46
Projects: 4


Keep programming!


« Reply #4 - Posted 2012-12-28 20:07:43 »

Quote
95% of the game programming community is primarily C++ or JavaScript or Objective-C

I disagree
there is for starters a stupid amount still written in actionscript (for flash) and such, kongregate, armorgames, etc... are all hugely popular and many people have used actionscript to ios/android compileables

also you forgot C#, although a lot of tools are written in C#, I think with C#there are a whole lot more out there than you may realize.
Especially with the growing popularity of Mono, Unity, and other cross compile platforms.

I'd say there is a lot more Actionscript then there is ObjC or Javascript for games anyways. And C# is up in that mix pretty good too.

"Experience is what you get when you did not get what you wanted"
Offline princec

JGO Kernel


Medals: 409
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #5 - Posted 2012-12-28 20:22:08 »

Generally, agreed on all points, and sadly, all well known points for about a decade, in one form or another.

Chief among the problems is the lack of portability of Java. Ironic. It just isn't available everywhere, unlike all the other languages. I'd say that was more of a failing of the open source community for dropping GCJ development in favour of VM solutions in OpenJDK. AOT compilation is very useful for all the places VMs aren't going to be, such as iPhones and XBoxes and PlayStations. And yet it died on the vine. Odd.

As for lack of tools and infrastructure... well, they're never really going to arrive, if the issue of portability isn't solved.

Cas Smiley

Offline gene9

Senior Duke


Medals: 10



« Reply #6 - Posted 2012-12-28 21:30:25 »

Javascript may be easier to learn, but any small mistake results in the program silently failing, leaving you to try and work out whether you made a mistake in the design, or the code.

Sure, that's obvious. But programming language platforms are driven more by how well they let you access your user base rather than programmer level concerns. Programmers generally don't like JavaScript/ECMAScript because of the language syntax itself, but because of how easy it is to deploy and reach users.

ActionScript: Yes, this is really popular too. I forgot this one.

C#: I definitely didn't forget this. For games, C# is definitely more popular than Java, but less than C++. However, C# and Xamarin/Mono are associated with a certain type of Microsoft-militancy that I'm not comfortable with. I give the Xamarin guys huge credit for making viable C# inroads with things like PlayStation Suite and Google NaCl and I'd love to see Java related companies and players more active in that.

How is Java off the radar? According to this http://langpop.com/ Java is in the top 3 for nearly all catergories.

Java is extremely popular in certain communities. Game development is just not one of them. The entire big data community is largely centered around Java. Much of the cutting edge search community is Java-centric. The alt-language community is extremely exciting and very JVM centric. There are also a ton of boring crusty legacy Enterprise IT jobs using Java.


If I was more passionate about this, I would focus on one of two areas:

- Work on custom Java VM's to run on iOS or PlayStation or google NaCl
- Work on a Scala-centric 3D game engine, that shows extremely high performance, latest OpenGL features, full Mac/Windows/Linux/Android support, and a high level of programming elegance that C++/C#/Java developers are not used to.
Offline Nate

JGO Kernel


Medals: 150
Projects: 4
Exp: 14 years


Esoteric Software


« Reply #7 - Posted 2012-12-28 23:00:54 »

We've got 500 games showcased over here. Funny that is more than JGO's 346. Cool

I do think it is true that many people don't understand how nice developing games in Java can be.

Offline Riven
« League of Dukes »

JGO Overlord


Medals: 818
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #8 - Posted 2012-12-28 23:12:54 »

@Nate: that nicely shows how people using tools to get a job done are more productive than people creating tools on the job.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline matheus23

JGO Kernel


Medals: 110
Projects: 3


You think about my Avatar right now!


« Reply #9 - Posted 2012-12-28 23:17:45 »

@Nate: that nicely shows how people using tools to get a job done are more productive than people creating tools on the job.
ATM just getting libGDX with "my libs" working, after saying:
"I just spent about 3 weeks trying to write something like an engine...
*day passed*
Oh what a great game on android? I want to do that too. But I need to get my engine done first...
*downloads libGDX*"

See my:
    My development Blog:     | Or look at my RPG | Or simply my coding
http://matheusdev.tumblr.comRuins of Revenge  |      On Github
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline ReBirth
« Reply #10 - Posted 2012-12-29 04:41:25 »

BadLogicGames already spent their valuable time and efforts to this, no need to reinvent the wheel.

Offline sproingie

JGO Kernel


Medals: 202



« Reply #11 - Posted 2012-12-29 07:26:07 »

GCJ was a steaming pile of garbage that only gave java a bad name on platforms that used it.  It doesn't even run as fast as modern VMs, though it does at least start up faster.  For casual games it's not necessary, and for AAA games it would never have been adequate.
Offline Nate

JGO Kernel


Medals: 150
Projects: 4
Exp: 14 years


Esoteric Software


« Reply #12 - Posted 2012-12-29 07:27:01 »

@Nate: that nicely shows how people using tools to get a job done are more productive than people creating tools on the job.
Agreed. It's hard, I fall victim to the same crap. I've been building tools for years. Sad I hope to break out of this hell and get something done soon!

Offline princec

JGO Kernel


Medals: 409
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #13 - Posted 2012-12-29 10:09:48 »

GCJ was a steaming pile of garbage that only gave java a bad name on platforms that used it.  It doesn't even run as fast as modern VMs, though it does at least start up faster.  For casual games it's not necessary, and for AAA games it would never have been adequate.
It just needed work. Admittedly a lot of work, but nothing entirely insurmountable.

Cas Smiley

Offline badlogicgames
« Reply #14 - Posted 2012-12-29 13:30:15 »

Excelsior could make a metric ton of money with an AOT VM for arm ala Mono. Oracle could also extend it's influence by doing something similar. Instead they have this crap now, and JavaFX on Rasberry PI.

It's really sad that WORA is no longer the mantra in the JVM world. I couldn't care less about Java, but the JVM is a piece of technology that's worth getting to run everywhere.

http://www.badlogicgames.com - musings on Android and Java game development
Offline princec

JGO Kernel


Medals: 409
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #15 - Posted 2012-12-29 14:04:21 »

There's no real difference from our perspective whether WORA means "write once, compile once, deploy everywhere" or "write once, compile to each target" - the differences between the platforms themselves make it nontrivial in the first place. I just simply prefer to use one language, with one set of libraries (more or less), that works the same way whether it's AOT or JIT. So far I have to be honest and say that JIT is still not living up to the hype and AOT still has a considerable edge and always has, in most real-world situations.

Dmitry did mention that they might be looking at ARM in the not-too-distant future I think, but they need to get expertise in ARM architectures first.

Cas Smiley

Offline nsigma
« Reply #16 - Posted 2012-12-29 14:06:38 »

... and JavaFX on Raspberry PI ... the JVM is a piece of technology that's worth getting to run everywhere.

But JavaFX on the PI does mean an ARM JVM.  Good to see there's now a preview of JDK8 for ARM with hard-float support.  I wish they'd hurry up with the hard-float Java 7 build that's been promised.

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline gouessej
« Reply #17 - Posted 2012-12-29 14:11:40 »

@Nate: that nicely shows how people using tools to get a job done are more productive than people creating tools on the job.
I hope there will be some exceptions.

... and JavaFX on Raspberry PI ... the JVM is a piece of technology that's worth getting to run everywhere.

But JavaFX on the PI does mean an ARM JVM.  Good to see there's now a preview of JDK8 for ARM with hard-float support.  I wish they'd hurry up with the hard-float Java 7 build that's been promised.
OpenJDK has worked on Raspberry Pi for a long time now, Xerxes used it at Siggraph 2012. We don't have to wait for Oracle.

Offline badlogicgames
« Reply #18 - Posted 2012-12-29 14:42:14 »

There's no real difference from our perspective whether WORA means "write once, compile once, deploy everywhere" or "write once, compile to each target" - the differences between the platforms themselves make it nontrivial in the first place. I just simply prefer to use one language, with one set of libraries (more or less), that works the same way whether it's AOT or JIT. So far I have to be honest and say that JIT is still not living up to the hype and AOT still has a considerable edge and always has, in most real-world situations.

Yeah, i'd be down with compiling to each target, no issue with that. I guess Jigsaw kinda goes into that direction to some degree. Whether something's JIT or AOT compiled doesn't make a big difference in the grant scheme of things to me as a developer, as long as performance is reasonable.

Dmitry did mention that they might be looking at ARM in the not-too-distant future I think, but they need to get expertise in ARM architectures first.

I remember you quoting him saying something like "give us a sum with a couple of zeros and we'll look into that". To bad they didn't look into it earlier, i think that would have been a real oportunity. Might still be, but it's no small effort. If Xamarin can pull it off, they should be able to pull it off as well.

http://www.badlogicgames.com - musings on Android and Java game development
Offline nsigma
« Reply #19 - Posted 2012-12-29 14:46:56 »

OpenJDK has worked on Raspberry Pi for a long time now, Xerxes used it at Siggraph 2012. We don't have to wait for Oracle.

Sorry, should have been more specific - I meant including HotSpot.

Praxis LIVE - open-source intermedia toolkit and live interactive visual editor
Digital Prisoners - interactive spaces and projections
Offline princec

JGO Kernel


Medals: 409
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #20 - Posted 2012-12-30 10:58:48 »

Indeed, OpenJDK on the Pi is so slow it's little more than a curiosity. Hardfloat hotspot just around the corner though. I can wait.

Cas Smiley

Offline gouessej
« Reply #21 - Posted 2013-01-03 00:25:06 »

Indeed, OpenJDK on the Pi is so slow
It's a bit exaggerated, you could run some nice 2D Java games on it.

OpenJDK has worked on Raspberry Pi for a long time now, Xerxes used it at Siggraph 2012. We don't have to wait for Oracle.

Sorry, should have been more specific - I meant including HotSpot.
What about Shark JIT?

Offline Roquen
« Reply #22 - Posted 2013-01-03 09:41:29 »

I had the impression that shark was more or less dead since the redhat dude changed positions...is this incorrect?
Offline princec

JGO Kernel


Medals: 409
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #23 - Posted 2013-01-03 10:04:47 »

All of these mickey mouse techs all lead down the same path - incompatibility, hair pulling, and above all... shite performance. There's only one bad boy in town and it's the Oracle embedded JVM for ARM hardfloat, and that's just around the corner. I'm sure I could make a 2D game with Zero and OpenJDK... if I didn't mind it running at 15fps. Which I do. A lot.

Cas Smiley

Offline Antiharpist

Senior Newbie


Medals: 2



« Reply #24 - Posted 2013-01-08 06:07:56 »

The real downside for Java to me is the lack of support for accelerated graphics on the Mac platform. Apple has a terrible JVM, and even though it mostly works, you won't be doing anything silky smooth if you stay native to Java (no JNI). I went ahead and wrote a bunch of C++ wrappers for all of the Java objects I use just to future proof.

My friend who does graphics and design on our project uses a Mac, and while the editors and engine works, it works like shit. Until we have really great JVMs on all platforms, we're f**ked. Sorry, but it's true. At least with something that compiles to machine code, you're solid.

I see Java as a development platform, but these days, with as many platforms as there are, any language you write in might as well be pseudo code. I plan on releasing in the Lingua Franca for any given platform, which is probably some variant of C.

Antiharpist

No, no, it's greater than keen; it's cugat.
Offline princec

JGO Kernel


Medals: 409
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #25 - Posted 2013-01-08 08:35:29 »

Er... the JVM on the Mac is state-of-the-art. And it's got both LWJGL and JogAmp. And JavaFX too I believe.

Cas Smiley

Pages: [1]
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

theagentd (20 views)
2014-10-25 15:46:29

Longarmx (53 views)
2014-10-17 03:59:02

Norakomi (47 views)
2014-10-16 15:22:06

Norakomi (35 views)
2014-10-16 15:20:20

lcass (39 views)
2014-10-15 16:18:58

TehJavaDev (69 views)
2014-10-14 00:39:48

TehJavaDev (69 views)
2014-10-14 00:35:47

TehJavaDev (61 views)
2014-10-14 00:32:37

BurntPizza (74 views)
2014-10-11 23:24:42

BurntPizza (47 views)
2014-10-11 23:10:45
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
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
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!