Defection To Mono

[quote]Yes, there’s an OSX implementation.
[/quote]
Well I don’t have it, and I bet 99.999% of your OSX customers won’t have it… so for sure you are forced to distribute it with your game. So what you say, you can make a cut down version… sure then you have to support a cut down version on all platforms along with your LWMGL implementation. The only advantage over Java is your download times… which we all know are rapidly becoming inconsequential since everyone is moving to high speed access. It jsut makes no sense to me to put any effort into mono. You know it’s future is doomed from the start because MS will be sure to doom it when the time is right, and you already have everything working in Java. It just makes no sense at all.

It’s funny how the same sort of whiners that claim Java isn’t “open source” have no problem supporting the work of the devil (I AM anti-microsoft with very good reason, I’ve seen what they’ve done and it pisses me off.) with their own CLR implementation, when they CAN just as easily make a runtime that runs java code.

Has the Java generics implementation actually caused you REAL problems? Or are you just complaining because it isn’t perfect and it might cause a problem for you maybe 0.01% of the time?

When you claim that you aren’t going to be getting Java on a console EVER in a capacity that you can use, do you know that or are you speculating? And even if you had Java on the consoles TODAY, do you have a way of getting your game on to the console? How many consoles are set up to download games from the net? Every console owner I know has to go buy/rent a DVD or CD.

I’ll agree with one point though… the GTG appears to do nothing from this point of view. They have no time to maintain this site, they were asked to keep us up to date with a weekly bulletine and that happened for all of one week many months ago. But they claim to be really busy doing stuff… in a Wally of Dilbert sort of way as far as I can tell.

I have severe doubts of Mono vs. MS CLR compatibility. I don’t have ANY facts to y what works or doesn’t at this point.

The fact is that it is in Microsoft’s best interest for Linux to fail.

So what did they hope to gain by giving away the whole CLR thing? Why do they allow Mono to exist? Well obviously it is to damage Java, knowing full well that their monopoly on the desktop is so overwhelming that it doesn’t matter what they throw to the Linux crowd. But if they damage Java… that helps to suppress the Linux crowd a little longer. If decent JAva apps can run on Windows and Linux you see that provides a migration path away from their precious monopoly. Mono is a point of control in the Linux world for Microsoft.

MS is a convicted monopolist with a tendancy to ruin promising technologies… If Mono gets too much attention to the point that Linux might be a viable option for main-stream computer users (it clearly isn’t there yet, except for some of us geeks) then MS will find a way to ruin it, having damaged both Java and Linux in the process.

In any case, I doubt that anybody who isn’t part of a BIG publishing company will ever be able to enter the console market.
The ps3 and XBox2 are out very soon and when they are on the market the consumers will stop using their PS2 and XBOX1 alltogether (like what happened with the PS1), the few people who will remain with these consoles will probably not use them to play independant games.
About those next gen consoles : several established game companies are already complaining that they won’t be able to deploy the manpower necessary to make good games on these machines.
And I doubt any indie develloper would be able to make a breakthrough in the market of mini-shooters and ‘oldies’, just look at how companies like nintendo are making sure these bases are covered with their mario/wario games and their re-issue of so-called ‘8 bit classics’.

I think the market of an indie producer is not on consoles but really on the home computer. and nowhere else.

[quote]It jsut makes no sense to me to put any effort into mono. You know it’s future is doomed from the start because MS will be sure to doom it when the time is right, and you already have everything working in Java. It just makes no sense at all.
[/quote]
It makes sense from a psychological point of view. The following is just an observation of mine; I’ll try to put it as sensible as possible with my limited English language knowledge. Since we’re off-topic anway, some more off-topic talk…
We all know that Cas makes funny and technically smart games, but he’s very narcissistic, too (this happens quite a few times with smart coders, by the way). Whenever something doesn’t fit his view, we’re told in a loud and repeating manner how bad it is for us all, and so on.
Now SUN aren’t doing what he wants them to do for many years, which makes him kind of angry. One way to “pay-back” is to move to Mono - or at least to announce it loudly.

It’s very childlish, basically, but so are men.
I’m not saying that Cas isn’t right with some of his suggestions concerning Java. However his entire approach to problems concerning Java (there’s no perfect machine anyway) shows that he doesn’t (want to) fully understand how a large company works. It’s not SUN specific, no matter how frequently he tells us so.

[quote]It’s funny how the same sort of whiners that claim Java isn’t “open source” have no problem supporting the work of the devil (I AM anti-microsoft with very good reason, I’ve seen what they’ve done and it pisses me off.)
[/quote]
It’s well known that M$ will stop Mono the day they start to think that Mono could cut off a share of their market or that Mono could help the Linux/OpenSource market. There are uncountable possibilities for M$ to reach this goal. A few solid documents handle this topic in great length and detail.

[quote]When you claim that you aren’t going to be getting Java on a console EVER in a capacity that you can use, do you know that or are you speculating? And even if you had Java on the consoles TODAY, do you have a way of getting your game on to the console? How many consoles are set up to download games from the net? Every console owner I know has to go buy/rent a DVD or CD.
[/quote]
Cyberyoyo already mentioned some sensible things about the console topic.
The console market is a closed one. The hardware manufactures (M$, Sony, Nintendo) control every title which is being published: they can even tell you to alter the graphics, the gameplay, etc, of your game. Without their blessing you’re not allowed to play in their arena.
Which just means indies will never “land” on the console market: not only it is technically difficult but they’re just not allowed to do so. Just the big guys, respectively those mid sized dev studios working for the few big publishers.

So actually for most of us here, the question “Consoles & Java” is an utter fake argument.
Why bother then?
Because it tends to strengthen the claims of the speaker - psychologically.

PS concerning Mini Mac: Yes, actually there’s no problem there. It’s a solution. :wink:

Nope. There already are indy publishers who have made it onto the xbox. M$ has a good avenue already prepared for indy gamers to get going. Xbox live arcade is basically counting on indy developers.

Bejewled, Mutant Storm and Richochet Lost worlds were all developed by indies and are all on XLA (and several more garage games (torque engine) are on the way)

Again…not sure where you guys are getting these ideas. There are lots of indy developers starting to pre-target the console market and developing their games with easy porting in mind.

The console manufacturers only gain by having games…it’s their bread and butter. What makes you think they would cut off another potential revenue stream? There are many indy games that are VERY popular. Last time I checked, M$, Sony and Nintendo were all in the business of making money. They won’t turn their backs on another potential revenue stream…and in the case of M$ they are proactively getting indy developers into their console.

Just google for xbox live arcade and indie developers and you will find tons of info from game spy, garage games, indie gamer etc.

This is old news…news i suspect Cas just got sick of hearing. His games are of the same quality/size/target market as many already getting onto xbox but he can’t get them on because he is using Java.

My investigations are anything but childish. They are business related. I seriously have to look at alternatives if my business is being hurt by making the wrong decisions.

Java is still the wrong decision for us but I’m still sticking with it, if only because of the huge investment in time, knowledge and code that I have.

Still no access to consoles.

Still no easy legal way to deploy small games.

Still no support from Sun.

Still no VM features to allow cutting-edge game development.

I’m a professional here, I’ve got to take this into consideration. I’m not asking why everyone else should stick with Java here, I’m asking why I should. I’m kinda hurt by the “childish” accusation. I’m being serious.

Cas :slight_smile:

Hardly ever read anything about that on Indiegamer/Dexterity but so what.
I’ve been experiencing exactly what I mentioned from first hand with a smaller dev studio which works for one of the biggest publishers in Europe. Their (the studio’s) recent PS2 game has undergone several major gameplay (!) and graphical changements on demand of Sony at the end of their dev cycle, which brought many problems to the smaller dev studio, naturally.
I’ve been assured it’s no exceptional case.
Since they work for Sony’s and Nintendo’s consoles “only”, I can’t comment on Xbox, but for Europe and Asia the Xbox is negligibly anyway for those concentrating on the big part of the pie.

If Xbox is what concerns you, then I’m egerly waiting for the pleading named “Mono on the Xbox”. :slight_smile:
(I’ve read the one called “OpenGL on the Xbox - NOT”…)

[quote]The console manufacturers only gain by having games…it’s their bread and butter. What makes you think they would cut off another potential revenue stream?
[/quote]
They keep their markets “clean” of titles which don’t fit their quality and portfolio aspects, to name just two (the political ones are even more interesting).

[quote]My investigations are anything but childish.
[/quote]
I didn’t call your unknown investigations childish (narcissistical in first instance) but your behaviour which I observe: on countless occasions you kind of flame Sun and some Java aspects because you think they don’t serve your purposes.
Well, it’s OK to tell the world if one thinks something could be improved. Naturally!
It’s another thing however to flame a company like SUN if they don’t act as you expect.
It’s obvious that to you SUN’s stubborn, which makes you angry. Very angry, see your “F*cking Sun” word on Indiegamer, to name just one.

For me this embitterment is your main motivation to go for an “alternative”, not technical issues. However I won’t continue to talk about persons: I just wanted to answer Swpalmer’s question about what your motiviation is for going Mono.

[quote]I’m kinda hurt by the “childish” accusation.
[/quote]
Well, you’re a man who tells frankly and directly and sometimes utterly impolitely what he thinks, so I think it’s adequate you bear my observation. Which I didn’t wrote in order to hurt you, by the way, but to help Swpalmer’s questions. His very logical questions IMHO can’t be answered technically, so I tried to give a hint.

I don’t think that M$ or the “Mono community” will be able to serve your needs better, because there’s no perfect thing in this world.
It’s even possible that most of us indies won’t be able to enter the TCPA decade at all, because when it kills OpenSource (which it will), it’ll kill Indies’ work, too. In that case it didn’t matter what dev environment we choose.

Hey, I’m not angry, or embittered, just disappointed that it’s not working out right. And for sure this thread’s about me and my business, and not anyone else’s, and absolutely I’m entitled to have a huge whine about it, because no-one else is in my position yet.

Cas :slight_smile:

Most of your reasons for not being more successful are technical reasons. Maybe the answer lies in other areas, eg you only have 2 full games, and one small one. All the games are rather hardcore. Maybe you are limiting your potential audience by not producing a different style of game? Here’s an interesting thing - my wife saw me playing Super Dudester and she said it looked fun. I asked her what she meant and she said all the strobe effects and graphics were “fun”, but she wasn’t interested in the actual gameplay, the shooting side of it. She would’ve been perfectly happy controlling Elvis just to make pretty colours!

Yes Webstart is too “way out” for 99.999% of users. They don’t think “hey what a cool technology”, they think “hey wtf is my machine doing??”. Which is bad. But you make .exe files anyway so why worry?

And the size argument is a red herring. Your demos are not significantly bigger than anyone elses AFAIK.

So C# has a few niceties, so what? BlitzBasic is a much poorer language than either Java or C# yet people still knock out great games in it.

Put it this way, could you write something like “Best Friends” in Java? Why don’t you try something similar? You know, a fun friendly game instead of the hardcore shooters? You might surprise yourself!

Ok, fine, I can see how this discussion’s going to go, consider the matter closed…

Cas :slight_smile:

My quick 2 cents -

  • End users don’t care how cool languages are, tool sets, or anything else about development.

  • Users do care about how easy it is to install and use software.

Based on the above, use the language and tools which you are most productive in and can most easily support.

Since I want to try and sell my current children’s game (still unfinished, sigh) I am facing the problem of deployment as well. Especially, since I want to ensure an easy process for all 3 platforms.

I’m not really concerned with the same issues you are princec. From my view, though, I don’t see Mono or .Net solving all your issues. It just distributes the aggravation differently than where it is in Java Land.

Regards,
Dr. A>

Before you close this Cas, I do have to wonder, did you talk to your customers about what their biggest issue was? As someone who’s run an online business before, I’ve found that you can sell just about anything, but you have to make it attractive enough. The majority of people will NEVER purchase something cold. If they make a purchase, it’s because the advertising and marketing campaigns have convinced them over time, or they received a recommendation by word of mouth.

Whoever said “build it and they will come” should be shot. :-/

[quote]However, I think Mono has gotten to the point where it might actually be the solution to all my Java problems, and there’s an irony.
[/quote]
Have you tried Kaffe? I’m willing to bet that most of what you like about Mono is there as well. It just gets less press. (Primarily because the project was originally started for all the wrong reasons. :-()

[quote] Not officially allowed to ship tweaked VMs embedded into my products. Looking at the Sun license this is actually a bit of a grey area but the fact is it’s not endorsed and my efforts to get permission to do this have been faced variously with silence, ridicule, vague promises to contact someone about it, or hostility. Why do I need to do this anyway? Because Webstart is shit for my customers - period - and I won’t here another word said about the subject by anyone not in my position. Talk to the hand, baby.
[/quote]
Kaffe. You can’t call it Java, but it should work fine.

[quote] Proper generics, delegates, etc. and a host of other C# niceness. C# has some very, very cool language. It’s as if a magic fairy got fed up with all the annoying bits in Java and fixed them. And then released the language to a standards body!
[/quote]
Umm… okay. If you say so. shrug

[quote] Easy compilation down to native code. .net was designed to allow this kind of thing. Sure I’ll lose 10% performance. But as the Java freaks in here are so happy to point out, who cares when I’m not using anywhere near 100% CPU even on weedy machines?
[/quote]
Whatever happened to your JET experiments? You used to distribute Alien Flux as an EXE, and went on and on about how wonderful JET was. Why the sudden change?

[quote] Easy integration with native libraries. Imagine just how easy LWMGL would be to code when 90% of the glue needn’t be written, as Mono can call GL directly for most of its calls.
[/quote]
As others have said, LWJGL is done. There’s no need to be concerned about it. JOGL took a different tack and simply auto-generated the glue (smart, very smart). There are also a variety of products out there that can give you very similar results to Mono via their custom loaders.

[quote] The extreme mismanagement of all things Sun. Endless meetings to discuss minutiea of GL bindings, for chrissakes! A blithering CEO without a clue!! The ever-mysterious GTG who’ve been on the case for well over a year now with nothing to actually show for it!!! Where’s my million bucks guys? Do you want to showcase Java or just let it all happen by accident? See the pioneer over there? He’s the guy with the arrow in his back! It ain’t gonna happen without proper money!
[/quote]
No comment.

[quote] Consoles. I’ll not be getting Java on any console, ever, in a capacity that I can use. Mono on the other hand might as well just be a nice portable DLL. Perfect.
[/quote]
Right. Did you know that none of the big 3 consoles supports OpenGL? There are (expensive!) third party extensions for all of them, but none come with OpenGL as part of the core. In fact, these consoles go out of their way to avoid it to encourage developers to write for their extra technology.

BTW: Kaffe. GCJ. Have you investigated any of those options? What was your findings?

[quote]Besides, using monkeys for a mascot how could they go wrong?
[/quote]
They wrote that POS known as GNOME, didn’t they? (Sorry, just had to get my crack at GNOME in there.) :wink:

Ah, Jerry’s being constructive. So:

Kaffe I have yet to investigate but the last time I looked - not too long ago - its performance was just about the worst there was. While it could cope with Puppytron I’m not so sure about some of my more ambitious ideas. As I type 1.1.4 Kaffe is being downloaded and I will no doubt have lovely time attempting to compile it for Win32. Probably more time than I can be bothered with.

GCJ is like Jet, except crap.

Jet is brilliant. In fact I’m still perfectly happy with Jet except it adds another extremely fiddly step to the build / test / release cycle. This fiddliness cost me days of time when I did 'Flux and frankly one of the main reasons I like Java and managed environments is the speed and ease of development and deployment. Were I working for a “real” games company writing big titles I’d have no hesitation in determining that Jet would solve our problems (ha, well, now LWJGL is here anyway).

I hate Gnome too btw :slight_smile: In fact I’ve yet to like any aspect of Linux apart from the “free” one, haha!

Some people in the thread here seem to be making an assumption that I’ve got a problem with sales or my games or distribution. I’ve got no problem with sales, and people do appear to like my games really, as they convert well enough. I do have a problem with exposure, largely down to my inactivity in this area, and I do have a problem with distribution. Currently I ship what can best be described as an embedded VM in all of my games for Windows, and there’s the problem: I’m not technically supposed to do this, but having begged to get a license sorted and been stonewalled on it I thought I’d just go ahead and do it anyway because it’s more convenient for me than dusting off Jet and all of its hassles.

That’s what instigated the thread in fact. Still not quite legal. I basically am unable to evangelise Java further than this forum because there is no other realistic way to distribute small Java games to the great unwashed apart from Jet and the cost and hassle of doing so completely outweighs the benefits of using Java for everybody else.

Cas :slight_smile:

[quote]Kaffe I have yet to investigate but the last time I looked - not too long ago - its performance was just about the worst there was. While it could cope with Puppytron I’m not so sure about some of my more ambitious ideas.
[/quote]
As long as the JNI interface works, and the NIO/ByteBuffer stuff functions like it’s supposed to, I see little reason why all your current games wouldn’t function. Removing the JIT does slow things down, but not THAT much. You can count on a minimum of 500MHz for the main processor! When you consider that 95% of the work is being shunted to the vector processor, your games should run just fine on even the worst processors! :slight_smile:

[quote]As I type 1.1.4 Kaffe is being downloaded and I will no doubt have lovely time attempting to compile it for Win32. Probably more time than I can be bothered with.
[/quote]
Perhaps. My personal opinion is that you should distribute an EXE for Windows. The EXE would check the machine for a JVM of the correct version (or higher) and warn the user if they don’t have a JVM. In the case that they don’t, then the program should redirect them to the download page on java.com. Since most people would have already downloaded your game (and they have no idea how long the Java download will take ;-)), they will happily sit through the “Required Plugin” installation.

For Linux, make the lazy bums install a JVM themselves. For Mac OS X… there is no step 3. :wink:

[quote]GCJ is like Jet, except crap.
[/quote]
True. But GCJ does something that Jet can’t: Compile to the XBOX or Playstation. Granted, I’ve never tried it, but it’s something worth pursuing.

Same with Kaffe. It’s already ported to the Japanese PS2. If you can get developer access to these consoles, you may be able to get some help in porting it to XBOX and American PS2. In the case of the XBOX, it may just compile. :slight_smile:

[quote]Jet is brilliant. In fact I’m still perfectly happy with Jet except it adds another extremely fiddly step to the build / test / release cycle. This fiddliness cost me days of time when I did 'Flux and frankly one of the main reasons I like Java and managed environments is the speed and ease of development and deployment. Were I working for a “real” games company writing big titles I’d have no hesitation in determining that Jet would solve our problems (ha, well, now LWJGL is here anyway).
[/quote]
I’m sure they’re glad to hear that you’re still a satisfied customer. :slight_smile: So why did you take down the EXE for Alien Flux? Wasn’t that one already tested and ready to go? Or did you decide to ditch it in a later version of AF? Hmm… I think I answered my own question.

[quote]That’s what instigated the thread in fact. Still not quite legal. I basically am unable to evangelise Java further than this forum because there is no other realistic way to distribute small Java games to the great unwashed apart from Jet and the cost and hassle of doing so completely outweighs the benefits of using Java for everybody else.
[/quote]
Not sure I would take the same step as you have. Most customers I’ve seen have been quite happy with the EXE Launcher concept. To each their own, though.

[quote]Ah, Jerry’s being constructive.
[/quote]
Actually, I’m his son. Jerry’s Son -> Jerason. :wink:

:wink:

Actually Jet’s perfectly capable of running on Xbox. You can simply create a big DLL and call it from your Xbox exe stub.

Cas :slight_smile:

[quote];)Actually Jet’s perfectly capable of running on Xbox. You can simply create a big DLL and call it from your Xbox exe stub.
[/quote]
Well, there you go! Now you can stop complaining about console support, you’ve already got it! (That is, right after you build some OpenGL wrappers for DirectX 81. ;-))

BTW Tried SableVM ? It looks a bit better than Kaffe.

Cas : I’m looking at Mono too since 2 days and I’m quite impressed. It’s far better than I thought. I really start to like Gtk#. And the interface to C is so easy I wonder how the performances compare to JNI.

BTW : it’s a Java forum no wonder why you got flamed :wink:

Cas: Merry Christmas :wink:

To allow 95% of work to be done on GPU, rest 5% has to run fast. AFAIK, kaffe has next to none optimalization for ByteBuffers at the moment. From what I can see from quick browse of code, on EVERY get/put, bounds are checked, JNI method is called and inside this JNI method, another JNI method is called to get value of pointer field - only then it is dereferenced and returned to caller.

This can be easily hundreds times slower than HotSpot implementation. Even if 1 from 5 percent above is dependent on buffer speed, slowing buffer access 200 times would mean that CPU part will take 66% of time instead of 5% - slowing everything 3 times.

Of course, only way to be sure is to check this. But it is not just a problem of kaffe supporting nio. It is a problem of kaffe supporting DirectByteBuffer deep inside jit machine, optimizing it as much as possible. Two JNI calls per every float get/put is just not acceptable for anything even remotely real time - unless you transfer entire arrays at once. But Buffers are created to avoid working on java arrays…