Fishpool

To content | To menu | To search

Tag - Flash

Entries feed - Comments feed

Friday 27 March 2009

Why OnLive will not be the massive tectonic shift so many are currently predicting

Among the things announced this week in GDC were two developments in entirely different directions on a particular axis of games technology: first, the OnLive network of thin clients showing network-streamed video games rendered on a server cluster somewhere, and second, the Mozilla/Khronos Group initiative to develop an OpenGL-accelerated, JavaScript-programmed 3D canvas in a web browser. Both have one thing in common: make it possible to run 3D apps (games) on standard devices without prior installations. How they go about that goal is radically different. One of them will fail.

OnLive is not the first company to attempt their idea. It's a basic extension to the same theme that has been around since at least the inception of the X Window System and Sun NeWS in early 80s - graphical thin clients showing applications running somewhere in the network. Further, the idea was explored for 3D games in the late 90s by G-Cluster, which apparently is still around in Japan in some form or another. In my opinion, it's a misguided approach. Certainly there's value to server-side processing, even of graphics, but the final rendering just makes so much more sense to be done on the client even when all of the application logic is remote.

What kind of client? Well, anything that can run a high-performance VM for Java or JavaScript (ie, a modern browser), and has 3D acceleration functionalities built into the graphics pipeline. This includes basically every network-connected device from the cost of $200 upwards: all smart phones, all netbooks, all laptops, all games consoles, and so on. Some of those devices are still intentionally crippled by their manufacturers in terms of operating system support for the required features, and clearly the 3D Canvas development hasn't been finished yet. The hardware capabilities, however, are already deployed to hundreds of millions of consumers.

Ignoring that deployed base and trying to scale a server-side rendering solution to the same figures is just mad. And that's not even considering the framerate and responsiveness constraints that are inescapable simply because of the round-trip network latency of such a system: on a high-bandwidth wired network 10s of milliseconds (not everyone can be situated within a few kilometers of the server cluster), and on radio networks, 100s of ms. Developing high-framerate games under those circumstances is hard enough when you only need to deal within transmitting positional data and adjusting for lag and jitter in both ends - making the games playable when every action made by the player needs to go to the server and back before it shows up is practically speaking impossible.

(Update an hour later) I suppose I should acknowledge that clearly the OnLive approach does have certain benefits to it: no piracy, little hacking of the typical kinds, little opportunity to cheat, and no need for investing in PunkBuster-type technology in the game clients, since none of that is running locally. However, all that just simply will not matter when weighed against the enormous brunt of having to run all that rendering in the wrong end of the MMO network and ignoring the opportunities to disperse so much of the investment and energy requirements to the gamers.

Sunday 30 December 2007

Measuring Java availability

I wanted to get some data on Java's deployment frequency among web readers, and couldn't find any useful published figures from Sun. However, I did find that Sun's investment into Java deployment in terms of better installer can pay off for measurement as well, and that the Deployment Toolkit of Java's next release provides just the kind of tools I could use to augment Google Analytics which has excellent built-in measurement for Flash, but not for Java.

Continue reading...

Saturday 19 May 2007

Consumer Java - could it be true?

With all the fuss recently about Adobe's Apollo bringing Flash to the desktop, Microsoft's Silverlight bringing .NET to the browser, and Sun's JavaFX bringing scriptable Java to the desktop and mobile devices, I've had to give some thought to the question of what might be the role of these platforms in the future of rich Internet applications, and whether the time might be getting closer for us to reconsider using Director and Shockwave to develop the things we can't develop using AJAX. Lets just say I'm not going to jump on any one of these quite yet.

However, I'd missed one thing Sun apparently is finally working on, that made me rather sceptical of JavaFX's potential - there is a project going on for fixing the consumer usability of Java in a browser environment called Consumer JRE, which might even be released as an update to Java 6. Wow - that'd make me really happy just as a daily user of all kinds of desktop Java applications, let alone that I might actually count Java as a viable option for developing something for consumer deployment. Good luck, guys. I'll be watching you closely.

Thursday 29 March 2007

Flash to video

So, I have this situation where I have a relatively rich, configurable Flash animation player (not a video, not a preset animation) and I'd like to convert the output to an MPEG-4/FLV video stream. The commercial converters all look like they're designed for converting single animations, but I want this to scale WAY up to a few million converted videos. So, I figure -- why not try a GStreamer pipeline that decodes the Flash with Swfdec and encodes with ffmpeg?

Good idea in theory. In practice, my source material is a little bit too much for Swfdec to handle. Off to try to contact the developers ;) I'd be happy to hear about other practical approaches, too.