[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] 3D Game Platform for the Open Web?



On Tue, Jan 26, 2010 at 11:08 AM, Vladimir Vukicevic <vladimir@mozilla.com> wrote:

----- "Kripken" <kripkensteinr@gmail.com> wrote:
> Ok, back to the subject at hand: While we have some open solutions for 3D on the web like WebGL and O3D, they are not complete game engines. I don't think they are suitable for the kind of content I am talking about here (but please correct me if I am wrong!), which is games with full multiplayer support, physics and complicated world geometry, AI, etc., like FPS games and so forth. Some of that stuff might be added to WebGL and/or O3D using _javascript_. However, many games are too computationally intensive, even with the best _javascript_ engines out there. So, I believe that we need a native code game engine for the web, for the other intensive computations game engines need aside from rendering.

Not sure why you think that -- there are many games written in python, c#, etc., that do just fine.


I realize that, and in the Intensity Engine we use _javascript_ and Python as much as possible, and in fact most of the gameplay in our games is entirely in _javascript_. So I am entirely on your side in that respect.

However, our experience also showed us the limitations. While many or most games would work fine (exactly as you say), on the other hand a 'heavy' game like an FPS, that issues a great deal of rendering commands each frame, and does physics with large data structures (compressed octrees can take several megabytes in our games) - that ends up being too slow.

 
  _javascript_ can and should compete well there.  Though I think you're looking at WebGL backwards... it's not a matter of adding stuff to WebGL, it's about writing a game (or game engine) using web technologies, including using WebGL for rendering -- it's intended to be purely the rendering component of such an application/game.



Ok, I understand.

I was hoping though that there was some solution for computation-intensive games as well: WebGL doing the rendering obviously, and something else for the other stuff, and I thought this might be a proper place to ask. Sorry if it's offtopic.

 

> 1. Porting the Intensity Engine to be a web browser plugin. Perhaps to switch our rendering engine to O3D, and make a new web browser plugin of the combination of the two?
>
> 2. Another thought is to use Google Native Client (NaCl), porting the Intensity Engine code to that, and rendering through WebGL. Our existing rendering system uses OpenGL, so that seems to make initial sense. But I am not sure if there is a specific timeline for when NaCl will be ready for general use (I will ask on their mailing list). Also there is the question of how fast the connection between NaCl code and WebGL would be (a lot of OpenGL commands are issued each frame).

This is somewhat off topic, as this doesn't really relate to WebGL, but sure, porting your engine to be a plugin would be one way to get it to run in a browser.  There are many disadvantages to that, some technical and some philosophical, and some purely mechanical -- it requires the user to download and install a plugin.  Using NaCl might be another, as long as you are ok with a Chrome-only solution (at least for now -- don't think any of the other browser vendors have said anything about implementing NaCl or similar).  I don't think either of those really solves the problem of getting the engine into the hands of users; a separate download with a standalone app would probably be simpler than either of those.



Yes, I agree with you, these options have serious disadvantages. That's why I am hoping to find a completely web-friendly solution here, or as much as possible.

- kripken