HTML5 or Java?

Started by
38 comments, last by zyrolasting 12 years, 9 months ago
(Unless you use WebGL which I hope dies. It was a failed project from the beginning)


Why is that? I am currently making a game with WebGL (coming from an OpenGL background) and it is pretty neat, even when it is a lot more limited then OpenGL.

Then where are all the hundreds of HTML5 tower defences? Where is the HTML5 newgrounds, armorgames, .... Where is HTML5 Zynga, Playfish, ClubPenguin?

Where is even a single game that is HTML5 and that is not a clone or port.


Where is this mythical pink elephant everyone here is so amazed about. Point it to me - I have a browser, several of them. They are HTML5 compliant. I can click it.

For several years I'm listening how HTML5 is cream with sugar and cherry on top. It just seems I always miss it, always just by a hair. People show me pictures and comment on how great it was and that cherry was the best thing ever.

At least java has Runescape and Minecraft.


Oh right, so a language 15 years old has two games, and a new technology ( do remember that non of the new specs are even finalized yet) has just a few small ones, and it's totally because the new technology fails.
Why not use Assembler then? people wrote games in it before Java existed (at least I assume so, can't say I was here around then).

Anyhow, my first post was more oriented on Flash. After so much time, and promises of being hardware accelerated, all I see is the same thing - tiny games with hardly any graphics or sounds, eating 50% of my CPU and taking way too much memory.

I never used Java for online games, and I can't comment on it since I hate Java and I'll just not be objective on the subject.

I can however comment on WebGL and say it's quite fantastic. JavaScript implementations are a lot faster then I ever figured they would be.

Never tried the 2d canvas context, so can't say much about it (is it even hardware accelerated?).

About sounds - I do believe writing

var sound = new Audio("file.mp3");
sound.play();

...is not very hard.

And 1000 sprites? really? I rendered around 8000 sprites (as in quads with a texture on them) with WebGL in a very non-optimized way and got 18 FPS, with a pretty old graphics card, a little optimization got it to back to 60 (this is all with a 16 milisecond wait between frames, so the actual frame rate is higher).

Shaders are there, but I admit there is no way as far as I know to enter fullscreen mode. Trying to just size the canvas according to your screen can get pretty annoying and inaccurate too, because of browser borders, tabs, and such.

All in all, HTML5 and friends are not even finalized yet as specifications, but they are working very well on all the latest major browsers, and I do wish they kick other things like Java Applets and Flash out of the game. They are just the better choice in the long run.
Advertisement

Why is that? I am currently making a game with WebGL (coming from an OpenGL background) and it is pretty neat, even when it is a lot more limited then OpenGL.


WebGL is not HTML5.

It is a *proprietary* standard published by Khronos group. The people who drove the OGL to death by committee. It is loosely grouped along with HTML (not 5) and the general web technology stack.

I can however comment on WebGL and say it's quite fantastic.[/quote]=
It is. I use it too.

Can we go back to discussing HTML5 now.

I never used Java for online games, and I can't comment on it since I hate Java and I'll just not be objective on the subject.

Never tried the 2d canvas context, so can't say much about it (is it even hardware accelerated?).[/quote]

Canvas element is intended for hardware acceleration in same way Flash already is. Implementations vastly differ, but for most part acceleration isn't crucial given current use cases. And also, given the target markets, majority of devices on which HTML5 is intended to be displayed simply lacks hardware for such task. Hardware video decoding however....

---------------------

Now to topic at hand.

People would come to me, showing some Flash web page and get all excited about how cool it is. They would want to know how it works. They weren't programmers and were not interested into learning. It was enough to point them to Flash and some of them just made things happen.

Flash was an enabler accessible to creators (not programmers).

Half of the people today are building Minecraft clones. It's a game that inspired an entire generation.


Why don't I back HTML5 for beginners? Because I don't see anyone inspired by it. I don't see it as an enabler. I don't know of any stories to even remotely hint that it's either. So I suggest that which I do know, which I have witnessed myself, of which there are tens of thousands of storis all over the internet.

It has nothing to do with technology or APIs or RFCs or speed.

When I say "inspiration" and an "enabler", this is what I mean. In 2001, web looked mostly like this. Yet the very same year, Flash enabled this. It enabled new idea, new direction, creativity for someone who was not on the most bleeding edge of W3C standardization process with adequate tenure and seniority in CS-centric domain.

That is what makes a good technology in creative field.

WebGL is not HTML5.

It is a *proprietary* standard published by Khronos group. The people who drove the OGL to death by committee. It is loosely grouped along with HTML (not 5) and the general web technology stack.


Yes, that's why I like my own-made term "HTML5 and friends", for all those things people tend to attach to HTML5 (WebGL, Typed Arrays, Web Sockets, Web Workers, etc.).

Proprietary? How so?
And yes, I am pretty mad at them too, after all the OpenGL 3 mess, but it's still OpenGL.


Now to topic at hand.

People would come to me, showing some Flash web page and get all excited about how cool it is. They would want to know how it works. They weren't programmers and were not interested into learning. It was enough to point them to Flash and some of them just made things happen.

Flash was an enabler accessible to creators (not programmers).

Half of the people today are building Minecraft clones. It's a game that inspired an entire generation.


Why don't I back HTML5 for beginners? Because I don't see anyone inspired by it. I don't see it as an enabler. I don't know of any stories to even remotely hint that it's either. So I suggest that which I do know, which I have witnessed myself, of which there are tens of thousands of storis all over the internet.

It has nothing to do with technology or APIs or RFCs or speed.

When I say "inspiration" and an "enabler", this is what I mean. In 2001, web looked mostly like this. Yet the very same year, Flash enabled this. It enabled new idea, new direction, creativity for someone who was not on the most bleeding edge of W3C standardization process with adequate tenure and seniority in CS-centric domain.

That is what makes a good technology in creative field.


When you put it this way, I agree, Flash was good. Except that old stuff needs to be replaced with newer stuff.
Basically, according to the posts so far, if someone would make a graphical IDE for canvas and/or WebGL + sounds + video, it can be introduced also to the non-programmer community, and can start rulling out Flash, do you agree?
Now someone ought to make something like that :)
Ok first off, anyone who is saying that HTML5 is not a valid gaming etc etc, that there is no newgrounds.com HTML5, that popcap is not making HTML5 game doesn't mean a single thing. I need you to back off and use the google machine before you start ranting about HTML5 incapabilities.

Step one, point your browser over to gamesalad.com. Not only is Gamesalad a gaming making software for iOS devices, but they have the ability to port your code you create to a functional HTML5 game. You can also put it on there website.

Step two, come back to this post and repeat that post about not having HTML5 games hit the market. Kthanks.

HTML5 still has a bit to go, the same that flash did when it first came out. You do know that HTML5 is not new right? It has been out for a great deal. It is just now being adopted as usable format due to the canvas changes and the support for DOM objects. It really has nothing special over Flash, and Flash has nothing over HTML5 in terms of anything.

Lets breakdown a few things. I see a repeat offenders talking about the same thing, each board has yet to do any study on it so I went ahead and broke it down for you.

-IMAGES
Flash games have to use images. Drawing them in flash using vector is 100x faster than it ever will be in HTML5. Html5 canvas you pretty much have to tell it what to draw if your going to do vector art. In flash you have tools to describe pixelx.y color variances. However on the downside, FLASH cannot handle images like HTML/JS can. There is 100% no way to not make your images get lossless and compressioned to all eff when put in a SWF file. Not only does it shard the image into a brutal non 100% rendition, but using a HQ file and then bringing it on screen will decrease your system resources faster than anything. FLASH is and always will be TERRIBAD at loading images and using massive amounts of resources for displaying an offsite or packed in image. HTML however has been designed to reduce mem structure on the lowest level by including x-ext-conf files from the server with a series of intructions on how to load/render/display with the utmost effeciancy.

-SOUND
Once again HTML5 takes a hit. The canvas sound issue is a crappy thing, but its not that bad. Using basic HTML(#sound) ->JS queries its easy to preload/manipulate sound. Sure it takes a little in scripting, get over it. FLASH once again loses this scenario. Unless your opening a stream channel, packing this file into a largescale game can cause issues with filesize, as well as when it compresses it using its highly outdated 2003 Acid Audio MP3 plugin from Flash 4 when it first was introduced. They have yet to replace anything inside flashs compression method for sound. The best way for flash is to just use streaming, but then again a 6mB sound file compressed crappily can be 3megs, or uncompressed makes the game with a blank stage up to 9mB for no reason.

-SCRIPTING
This is what gets me. For those who know anything about flash, FLASH was created off the Javascript format. It was actually JAVASCRIPT files that were loaded via a call file back in the day of FLASHRC3. When Flash4 came out they created the first version of AS, however J was still used with it. FLASH 5 by Macromedia was the first time that AS was really pushed down the throats of developers. AS is like a love child of JS and engine functions that Flash allowed. However, AS2 and AS3 are rewrites of the engine allowing more OOP concepts with alot more extras to control the program via scripting. These are things that allow you to manipulate the memmory of FLASH and control what they dub the "timeline", basically the cells where information is and you can direct where to send a user now and what info to store into it. All you essentially do is create a basic group of small engines and throw them into a cell and call them all as a refrence. Its a modular OOP approach. You have an object.movieclip which can be stored in a cell which is stored on a timeline of the next scene/level. Or you can do this, or that, or this, or that. Flash just has the advantage to build cubbies basically.

HTML + Javascript is still amazing. You will never tell me its not because the language doesn't die. I don't know how many times Javascript has been close to death, but someone always seems to reinvent the wheel, over and over and over causing the crap to never die. I present to you blowfish (ooo nice effect). I give you VML, heres some DHTHML, oh nice.. heres some plugins. Nice agian, here you go gents, here is AjAX! oh snap, heres some jQueryUI. Damn it, just die? Here is some... whats next? Oh thats right, node.js. Looks like Javascript is way more powerful than AS, why? It can interact with more than AS ever will. Period. Sorry.

-USABILITY.

Sadly what hinders HTML5 is not what hinderd FLASH. However there is a huge trade off. I will get to. You see, HTML 5 can only be used by browsers that support it. Since its a rendered object, its like anything else. Nothing will be compatible with everything. Opera may show it differently than FF5 and then differently than FF6. What about Chrome? What if they disable JS? What if they still use IE6 like 80% of the buisness world? Safari renders fragments in a complete and utterly useless way. Flash well, can be played offline, on any platform and anything that has a plugin for it. Its universal looking, and always looks the same.. you either see "YOU NEED FLASH" or you see the program. Simple as that.

-OFFLINE

Flash can be used offline most of the time. Unless theres a special callback that requires a server load object, you can save it and play it offline, or anytime. This is also a bad thing, this is where unique content gets stolen and passed around. Not only that but you can take it offline and then reverse the code more. Things like IMPERATOR make it easy for anyone to reverse compile a AS1-3 game and make it source code again. Sucks your crap just got stolen.

HTML5 on the other hand is in the same boat.. unless you encrypt it. Since js can encrypt and decrypt they can steal it, but then you get into issues with requiring hosts, domain paths, and well other slew of things we web developers place in to prevent people from stealing our crap. Anyone remember Select ALL images? How many developers added S-A hidden text, or S-A hidden images to a clients image. I know I did. HTML5 may have a problem being offline, especially since you would have to distribute all the source code with it. If you do encrypt it J has an issue rendering on local machines when they are executed from the same machine they are running on. It doesn't make alot of sense, but if your a JS dev you know what I am talking about.

-Mayple

HTML5. Learn it, love it, breathe it. It will be the future. It is the future, its not going away. Learn it now or be the next php4 kid thats learning php5 now while we are playing with PHP6.
I usually just give my 2 cents, but since most of the people I meet are stubborn I give a 1$ so my advice isn't lost via exchange rate.

HTML 5 will not be big until all browsers support it well (meaning IE8 is gone) and there are authoring tools as good or better as Flash authoring tools, regardless of how great HTML 5 may be. The only people who care about whether your tetris clone is HTML 5 or flash is you.
HTML 5 will not be big until all browsers support it well (meaning IE8 is gone) and there are authoring tools as good or better as Flash authoring tools, regardless of how great HTML 5 may be. The only people who care about whether your tetris clone is HTML 5 or flash is you.


Seconded. "Which tool should I use?" threads should not normally stir things up this much.

@OP, a generous helping of evidence has been offered here, and there might be enough data available for you to make your call. Again, consider YOUR needs over our suggestions. To save some reading, I compiled the statements explicitly or implicitly made in this thread.

  1. All of the technologies discussed so far are valid choices for game development.
  2. Client-Side Java has few capabilities and support for it is dwindling
  3. HTML5 is neither widely or fully implemented, but has tremendous potential
  4. Flash will involve a smoother learning curve, and will not be nitpicky with feature support issues.
  5. Don't consider the future when you are worried about right now.
  6. Plug-ins may influence HTML5's growth.
  7. Older technologies are dying, but can be sufficient.



When you put it this way, I agree, Flash was good. Except that old stuff needs to be replaced with newer stuff.
Why? Unless you are making big bucks on the switch by banking on planned obsolesence...

Flash is fine. Or better yet, it's the VHS vs. DVD problem. DVDs replaced VHS because they didn't need rewinding. Everyone got that.

Then HDDVD, DVDAudio, etc... appeared. DVDAudio made huge advances in DRM. Forces pushing it loved it. Users? They couldn't play them. Or they could, in a specially licensed device that established certified connection to certified speakers after negotiating the license keys. Meanwhile, one would pop CD-like disk into DVD-like slot and get music.

Now Blu-ray vs. DVD. Blu-rays aren't superior. They offer more pixels, but that's about it. There are parallels with Apple vs. Flash. BR made inroads via consoles (no choice) and blockbuster releases (freebies with everything else). HTML5 is making similar inroads via similar methods. On one side there's Apple (no choice) on the other there is Youtube (freebies).

But you'll notice that all these uses simply do not involve anything more than video playback. Hence the video code wars between Google and Apple - that is the Flash's killer app and codecs need to be implemented in hardware, so whoever wins the format war wins the hardware and vice versa.


HTML5 doesn't not have a killer feature (no-rewind). So the only use it has today is as means of working around various platform limitations, mostly Apple, but it's all rather mellow. Apple users have native apps and as developers have shown, Obj-C is fine, so they just use that.

Code = bargain bidder. It no longer matters which language, if it needs to be rewritten in another language, so be it (Angry Birds). There are enough HTML and Flash coders to go around.

So why does Flash persist? Its entire toolchain still empowers and enables the creators. HTML5 on the other hand appeals to hard-core web programmers and geeks. They can code anything in HTML5, except make something creative. "X in pure HTML5", "Y in pure CSS3". Cool, technology can do it, but it's just more stuff we've seen before.

HTML and web anything is, ask anyone who had any serious stake in it, like pulling teeth. As long as it remains that complicated, it will not foster wide-spread adoption for creative outlets. Because - there's Flash.

It all comes down to the simple fact that for 1:1, we don't need a Flash replacement. For 3D, there is Unity, but realistically, 3D still isn't viable on web (primarily due to input and UX reasons) - considering that everyone is going mobile, which comes with native OGL ES.

There simply isn't any need, which is why things aren't happening. Again, nothing with technology. Hammers (or shoe) work just fine. Pneumatic hammers are a luxury, but one doesn't really need them. They don't "change everything".


Whatever the new technology comes around, it will be centered around user interaction (kinect hacks are an example), but it's unlikely this will be some well-defined, standalone library. We're only starting to enter the era of gestures and ubiquitous computing. In a few years, with enough users, some shift will occur that will also move beyond strict "web vs. native" separation and more into direct access to content interaction itself. Of course, it's all very vague, predictions are hard, especially about future.

Basically, according to the posts so far, if someone would make a graphical IDE for canvas and/or WebGL + sounds + video, it can be introduced also to the non-programmer community, and can start rulling out Flash, do you agree?[/quote]Nope. We have Flash. It comes with IDE, sound, video...

And as said above, the moment it becomes possible, SWF to HTML5 converter will be freely available. So there is no need for this.

Nope. We have Flash. It comes with IDE, sound, video...


I would not advertise the flash ide...

[quote name='Antheus' timestamp='1310566463' post='4834832']
Nope. We have Flash. It comes with IDE, sound, video...


I would not advertise the flash ide...
[/quote]

And most of web development is done in PHP. It's doesn't really matter all that much, always look at results achieved.
Where is this argument going, really? I'm starting to think we have left the realm of helping the OP relate his/her specs to the tools available and entered a speculative debate of Now vs. Later.

I'm with Antheus, options we are discussing that are available now are time tested and functional, and should not be dismissed based on exciting new developments (or lack thereof), especially if it comes at the cost of ignoring the relevant project. More on this here.

I won't seriously try and dictate the flow of the thread, but think we could get the OP's input before we go too much further? I'm curious as to what (s)he has found out so far with the chess/chat project.

This topic is closed to new replies.

Advertisement