This week I wrote a post comparing O3D and WebGL.
Today I have finally spent some time playing with O3D and managed to implement some very simple applications.
I have developed quite a few JS applications that allowed users connected at the same time to interact with each other. It’s very simple, constant AJAX posts and gets with a server keeping the state of the interaction. Imagine something like GTalk integrated inside GMail.
This is all well and good when the interaction is limited to a few chat messages or coordinates of the mouse pointer on the screen, but multiplayer videogames have to shift a massive amount of data every second. When you play Gran Turismo online the position, speed and state of each player’s car must e synched across all the participants as often as possible. Add chat/voice data to that and you’ll soon realise that 30 players for one game calling your server at the same time to get and post data is just not manageable. Furthermore to ensure the timely delivery of the data to each client you are much better off pushing the data to the client rather than relying on it to call your server.
Network support by being built inside the O3D plugin could also deal with all the annoying connectivity issues such as “punching” through NATs.
Without properly implemented network play I don’t think we’ll ever see 3D games flourish in your browser window.