My name is Tim Clancy, and I'm a senior majoring in Computer Science at the University of Pennsylvania. I'll be graduating in May 2018 with both my Bachelor's and Master's degrees. This is a space for sharing a selection of my virtual reality projects. Others are described on GitHub and my resume. I've been a VR enthusiast for about five years now, ever since I'd saved up enough from my first data research job to purchase an Oculus DK2. When consumer VR released, I got an HTC Vive which has been my platform of choice for room-scale experiences.
My First Journey into VR with the Unreal Engine
This was my entry into the Fall 2015 PennApps Hackathon my sophomore year. I put together a web crawler and an Unreal Engine visualizer to view the structure of website links around my homepage. This was a really interesting project for me because I had the opportunity to develop across an entire stack. The crawler, written in Java, would consume raw webpages and store relevant data into a local MySQL table. I parsed this out as JSON using a REST API, and consumed the JSON in-engine to produce the visualization. Before I even properly learned distributed systems, this was my experience running parallel processes and managing efficient communication across a network. I was also able to learn quite a bit about creating performant applications in the Unreal Engine. The scale of points generated for the webpages required instanced meshes and efficient caching of incoming data.
GPU-based Fireworks in WebVR
I made a demo of GPU-based fireworks with WebVR. It's currently live to view in browser here with the code for the VR-capable version available here. There is a live version of a VR-capable page also running here.
A Multiplayer Submarine Experience
This video demonstrates my team's final project for CIS 568, a VR game design practicum class here at Penn. The game we made was a four player VR cooperative puzzle game about a crew which must successfully operate a submarine. The game is one of partial information: the four roles of Captain, Engineer, Navigator, and Gunner each have only some of the tools and information crucial to the vessel's operation. The play experience is one of frantically trying to communicate details to one another before time runs out. The game is created entirely in Unreal Engine with a custom networking layer written using Socket.io and Node.js. We made use of 3D-printed props to demonstrate some of the more unique mechanics.
A driving focus of this project was to try and make the submarine interior feel as immersive as possible. Therefore, we tried to work heavily with the Unreal Engine physics as a part of the game mechanics. We were inspired heavily by the style of BioShock. Here is some additional media from the submarine project:
Work-in-progress Senior Design Project
My senior design project is a team-based cooperative game for VR and non-VR players to enjoy together. It aims to remedy the fact that VR game worlds feel mostly empty due to the low VR player population. I've developed a unique network architecture which can help by creating a more immersive experience based around the actual activity generated by the enormous number of non-VR players. Asymmetric gameplay features teams composed of VR and non-VR players competing against themselves while the "shadows" of their past activity populate the world. This allows for a game to feel full of life while limiting new network traffic. Below is some diagramming and demonstration of the very early networking features I've added to the Unreal Engine--this is currently running using a custom Java server fed by UDP streams.