Saturday, January 14, 2017

VR Client Viewer

The Idea

I think it would be really cool to build a Virtual Reality version of the Battlecode Client so that you can put on a headset and watch a match play out on the floor in front of you. Not only a flat 2D view playing out but one that has 3D characters for each of the bots and maybe some animation for flare.

I'm imagining something like you see in the demo/intro video for Battlecode:



The developers of Battlecode are awesome and doing an awesome job, I don't mean to knock them in anyway. I just like thinking about pushing the limits of things. I really do like the client viewer they have made and I think it's really cool that you can watch matches online.

Possible In Theory

I wish I were a better coder. If I were a better coder I would dig into the opensourced code of Battlecode and figure out how the .bc17 files are processed.

Logically it would seem that I could read all the same data that the current client is reading, but translate it into moving 3D objects on a virtually projected 2D plane.

The Unity Game Engine is free and would be perfect for this. I have used it before, I have a Google Tango device for Augmented Reality development and have been doing some work with that. That being said though, no one really has Google Tango, so using something like Oculus would be something more people could actually use. I haven't dug into Oculus yet, and I'm really not sure if there are more widely used, cheaper, options out there.

Above And Beyond

If I ever got that much up and running I would quickly start working on the next step which I'm picturing. That would be to display not only the standard information that is currently given, such as how many of each bot and whatnot, but to provide all kinds of options for debugging.

I would want the viewer to be able to toggle on and off many options, such as bubbles showing the different sensing radii or trails showing where bots have been. Little animations to show when someone broadcasts and when someone is detected broadcasting. I have tons of ideas at that point for graphs and all kinds of stats that would be interesting to see.

Realistically

If I did actually take the time to work on this it would be well after the tournament is over for 2017. However; if I did get it running I would post some videos for people to see it and the code of course so others could use/modify it.

The cool thing would be if it worked, then by 2018 maybe it could be quickly adapted for whatever the new competition became. We'll see, don't hold your breath.