After Java

Actually you guys aren’t right about the Unity3D. Most phones will be forced to upgrade to OS 4.0 at some point. And even unity themselves are not sure if the restrictions will apply to them, they are going to have a “discussion” about it with Apple this week.

It seems unlikely Unity can be permitted without a policy u-turn from Apple.

As for JNA: I’m sure there are a few people around who’ve used it. Looks good, but I haven’t really properly looked into it.

TBH I’m not very confident about Oracle’s intentions with java, especially regarding games. The fact that so many key figures have left in such a short time and the recent major f*ckups in the JRE releases is quite telling, but hopefully my gut feeling is wrong and these are just signs of a transition period.

I’m currently playing a lot with Android, and so far I’m quite pleased with it. I wouldn’t mind something like a ‘Android Web Plugin’ or something pushed by google, replacing java applets and desktop apps. Same language that we all love, different platform, and an opportunity to do things better this time and undo some of the mistakes.

I’d really like to see google make their java/dalvik compiler in gwt more independent and robust. Google and Apple have a shared vision of a plugin-free future for the web, and I don’t really see any faults with if html5 can survive the politics intact.

The future of O3D.

Because they own the trademark. Unless they’re on board you can’t call it Java Gaming Engine, and console manufacturers won’t even want to talk to you.

I don’t care how it’s named, as long it’s (almost) the same tech. Console manufacturers won’t talk to most of us anyway. Having JVM wouldn’t change that. Personally I don’t care about consoles either, it’s not good platform for indies and some game genres are impossible or suboptimal due to usage of gamepad.

The 360 is a viable platform for indie developers, they are the biggest game markets. Braid is a good example of a title that would not have been anywhere near as big without it’s 360 release. The fact that Microsoft took their very similar platform and language and built game a development community, libraries, books and distribution channel is why development with C# is so much more popular.

Professional game development houses will also take console game development more serious if it was a mature and viable option for them (although there are several companies who have built JVMs (or similar) for consoles so they can write their game in Java, but these tend to be exceptions to the rule). Without console support it just doesn’t look very attractive to a large studio who wants to release their next title to potentially 5 platforms; 360, PS3, Wii, Windows and Mac OS (where Java will only reach 2). If it’s not good for them then why would it be good for us?

Id and Epic Games certainly talk to graphics card and console manufacturers about future hardware; this is partly why their engines are so well made. Getting game manufacturers on board would boost Java maturity for game development (tools, engines, communities, books, talks, etc) and so boost popularity (more Java game developers). This would in turn trickle down to indie developers improving our community. It certainly would not hurt the community and as an indie you’d be able to say “I use a professional language which has support for the Wii/PS3/360”.

Finally the converse is also true with gamepads. I’d hate to play Street Fighter with a keyboard and mouse.

I’ll probably go the HTML5 Canvas/WebGL route. I write thousands of lines of JavaScript each month… so it sorta makes sense for me to go into that direction.

Yes, though it has limitations. I was talking mainly about fullblown games. There is IKVM.NET project which allows to cross-compile from Java to .NET.

Microsoft can do that because they’re creators of both 360 and C#/.NET. JVM from 3rd party vendor (Oracle) would be always second-hand citizen. Additionally Sun/Oracle are historically very bad at client-side and gaming, so they wouldn’t be even able to create anything that couldn’t be called a shame :slight_smile:

The 360 is not the only way to gain huge marketshare, there is for example Steam. Which is even more interesting now that it will support Mac in very near future.

It’s good for us because we’re not big AAA studios :slight_smile: There are directly 3 platforms very easily reached by using Java (Win/Mac/Lin) which are all important for indie games, additionally Android and some other by cross-compile tools (eg. the 360, though not sure if IKVM.NET is ready for 360 or not). Apart from the link I posted before why you should support Mac/Linux, there are newest stats about the current Humble Indie Bundle deal:

http://blog.wolfire.com/2010/05/Linux-users-contribute-twice-as-much-as-Windows-users
http://blog.wolfire.com/2010/05/The-state-of-Mac-and-Linux-gaming

Heh, saying that is just technical masturbation. It’s totally irrelevant, users don’t care, doesn’t help with getting more sales, etc. and if particular language/platform works well for you use that as long as it allows to reach your goals.

I remember playing fighting games on keyboard and it was quite good, well except the issue that certain combination of keys are blocking each other, but I think that got better long ago. The degradation (if any) is much less than eg playing FPS games on gamepad, not to mention strategy games :slight_smile:

[quote=“jezek2,post:50,topic:35232”]
I couldn’t agree more, and this is why I don’t expect the situation to improve.

My point wasn’t that it helps the users, but that it helps the developers. I don’t think having more books, communities, tools, companies involved with Java Game development is just ‘technical masturbation’. As I said this would trickle down to indie developers.

For example C++ is a very popular language for game development used by lots and lots of studios. As a result there are loads of indie developers using it and this is shown online by the greatere numbers of people using C++ on various indie gamer communities. Go into a book store and you will see far more books on C++ game development then with Java. Search online and you’ll find far more tutorials using C++, and far more C++ game libraries and tools. Regardless of what people think of C++ itself as a language, all this stuff does help to make it attractive.

If FPS titles didn’t work with a game pad then they wouldn’t be hugely successful in the console market. Halo, Black, Goldeneye, Call of Duty, Medal of Honour; the list goes on.

In contrast there are practically no successful beat-em-ups on the PC (and emulators don’t count as those games were never built for the PC). If beat-em-ups did work well with keyboards then I’d imagine they would be more successful.

Can’t agree with this more. I’ve been writing some canvas games for about a year, and honestly it’s a vacation when comparing to developing in Java.

Java still has accelerated drawing, I’ll give it that - but JavaScript is so non-fuss when it comes to coding. Having to use Java and its immutable object properties, etc … is just a drag these days. Also, I’ve developed a wonderful bias for any language that has functions-as-values (yay Lua!). So I guess my problem isn’t with Java specifically, I think I’ve grown tried of static/strong typing in general.

And for those of you who find JavaScript ‘unbearable’ - it’s true that there are some horrific things about the language. So what you need to do is stop confusing “JavaScript problems” with DOM problems, pick up this book (or watch this video), learn prototypal inheritance, and enjoy a nice, easy, dynamic programming language.

I’ve written a lot of JavaScript code, and in my opinion, it’s an utterly bad language. I only use it because there is no alternative.

Why someone would use it for real-time game programming is beyond me, it’s a wacky little scripting language designed for simple browser UI interaction.

Perhaps we should stay on topic. Language flame wars are not all that constructive. Except when we are establishing that perl sux :wink:

It’s not that bad if you bother to learn the language first. Most people don’t, which makes the vast majority of JS code on the web just plain awful.

Everyone just looks at it, thinks it just looks like Java or C/C++, and then they think they know how to use it. And well, that the whole problem. It’s an entirely different language which is actually closer to Scheme than those other two and a half languages.

I agree with Woogley, first class functions are indeed lots of fun. And so are closures. Makes you look at problems in an entirely different way. It’s very refreshing, really.

Of course it isn’t as robust as Java. Or as fast as Java (except for handsets with really bad Java VMs). And the documentation isn’t even remotely as awesome as Java’s (personally I still think Java’s documentation is by far the best there is). But it seems to work ok-ish for small scale projects if you use good tools like Komodo and JSLint.

Thing is, I only got time for really tiny projects. I’m busy with all kinds of silly things 40-60 hours a week, which means there is very little semi-productive spare time.

With Java there is always so much one could do. With JavaScript there isn’t.

It’s like being in charge of 4 groups with 100 people each. How are you going to keep them busy in a meaningful way? If there is only one group with 10 people, things are a lot simpler. There is a lot less you can do and a lot less wasted potential if you let them build something silly in a retarded way.

Yea, I know. It’s probably sorta weird to put it this way, but it’s sorta similar to the “freedom” you get when building a 4k game. All of a sudden bad art doesn’t really matter anymore. And scale went from virtually infinite to bonsai-size (i.e. totally manageable).

Having strict computational restrictions and maaaaybe some very limited multi-threading (WebWorkers) has a similar effect.

Well, maybe that’s just me. :slight_smile:

The high performance javascript engines put the language at a usable speed for gaming, and the language is flexible enough to code in whatever style you want. But, the main reason is to make a plugin-free browser game. That seems like a strange or silly thing today, but we’re thinking forward. Two years from now that might not sound so strange.

Well, I’ve been looking into the whole javascript (and webGL) thing. I’m impressed by how much faster it runs these days and some of the game demos I found out on the web (especially the HTML5 stuff). I’m curious though as to how one could “secure” it for use with “online” functions (like posting high scores, or multiplayer). Seems like anyone could just take a look at the code, save it, edit it, run it again and do whatever they want with any server feedback code.

Is there a way to prevent such easy hacking?

Code obfuscators and server-side security.

IKVM requires the Common Language Runtime (think C# JRE), but the 360 only supports the Compact Framework (think C# JME), so it’s not a viable option for porting Java to run on 360.

One option would be to use XMLVM to cross compile to C# bytecode, but unfortunately the XMLVM guys don’t care about anything other than Java->ObjC so it’s practically non-existent (there was just enough code to get a ‘hello world’ app but only after I’d had to manually fix a whole bunch of compilation issues).

I speak without knowledge here, but wouldn’t converting to J# be less trouble?