Archives for posts with tag: realtime

Now that I am working on a game, using Python cPickle and Socket, i was able to create a peer to peer, symmetrical network implementation for the multiplayer aspect of the project.   Using some 30 lines of Python, each player would ‘trade’ data with its peers.

I am using UDP, so it’s naturally faster than TCP/IP, but delivery is not guranteed.  But for realtime games latency is the main concern, so UDP is definitely the way to go.  The video shows me controlling a cube on the desktop computer (monitor to the right), it’s position data is sent across the internet* to the laptop which displays a similar cube.

Close to the end of the video, I turned off the Wi-Fi on the laptop, killing the network connection.  As expected, the cube stops updating, when I turn it back on, it takes a few second to reconnect, and then the cube starts moving again.

*I route the network traffic through another computer somewhere in town to simulate a more realistic network delay.

Two new screenshots from work…

Blender underwater visualization
Blender underwater visualization

Done entirely in Blender game engine, running at a solid 30fps.

So this is what has been keeping me busy: “OceanViz” is a realtime visualization application running on Blender 2.49a’s build-in game engine.  I, along with a few other artists, created this visualization as part of a research project at the University of British Columbia’s Fisheries Centre in Canada.

Have I been promoting this project to death?  Definitely.  I talked about it in Amsterdam, in Vancouver, online, and pretty much everywhere I get a chance.  But is this cool?  You bet:

View OceanViz in  HD

This video is captured in a rush, I did not even attempt to hide all the debugging cubes or the non-animated species floating around in the scene.  But apart from all that, I am quiet happy with where we are with this project already.  Because what we build is a rather scientific visualization, and not a screensaver, all the fishes are dynamically populated by Python, using a series of XML files for biomass data.  So while it looks quite simple, there is a lot of background coding going on to make it all happen.