CryEngine: VR Plant Growth

Flora Robotica is a 4 year project funded under the EU-Horizon 2020 Future and Emerging Technologies Proactive Action. The project runs from April 2015 – March 2019. The project’s objective is to develop and investigate closely linked symbiotic relationships between robots and natural plants and to explore the potentials of a plant-robot society able to produce architectural artifacts and living spaces.

One challenge the FloraRobotica project is facing is finding a convenient platform for plant-robot interaction simulation that would visualize the insights discovered through research. This is where the expertise of Game Research Lab comes in. Our lab’s work is a satellite project of FloraRobotica, which aims to exploit virtual reality as a simulation platform, and help architects and others set up and interact with bio-hybrid systems. Using our VR simulation, architects will be able to prototype their bio-hybrid system ideas quickly, discover new designs, or observe the results of changes over time. We are using an advanced game engine called CryEngine and an virtual reality headset (HTC Vive) to build a photorealistic simulation.

Our team includes two german professors who specialize in self-organising procedural content generation and swarm robotics. They provide advanced growth models and the expertise necessary to create realistic swarm robots. The closer our project comes to simulating reality, the more useful it will be.

Variation in plant features is influenced by many factors including ecophysiological, phenological, mophological, and ontological traits. Our project needs to be able to function in real-time in abbreviated time. Complex simulations are simplified as much as possible without altering their overall effectiveness. Flora Robotica has done impressive research regarding plant growth behavior that allows us to focus on the implementation rather than the creation of these models. Different types of generative encoding strategies have been developed over the past two decades to abstract developmental strategies towards generating both morphology and control of virtual creatures.

We are in the early stages of the project, but we have built a working prototype in CryEngine with some aspects of the advanced growth model implemented. The user can create, move and delete objects, as well as move around the scene. CryEngine is a very efficient game engine, but that power also increases the learning curve. The infrastructure of the project will allow for simple scalability as we add more advanced features. CryEngine will also allow for a more photorealistic simulation that will more accurately illustrate how a similar bio-hybrid system would look in the real world.

Unity: Galactic Explorer

This project was admittedly not the most innovative concept, but the experience I gained working collaboratively with people who had different skillsets was invaluable. I was part of the game development team in California, while the game designers were located in Poland. Working around language barriers and timezones was an interesting challenge that produced a fairly decent game given the timeframe. After using DirectX and C++, it was amazing how much could be done in a short amount of time using Unity. In just a few weeks we were able to go from concept to a fully playable game.

The artists created all the models, textures, and sound effects. We implemented the flight mechanics, weapons, health, damage, enemy behavior, and waypoint system. The objective of the game is to discover four different planets while surviving and destroying all the enemies. Each planet has the potential to unlock a new weapon. The first weapon is a simple lasergun that is slow, does little damage, and has infinite ammunition. The next weapon is a missile launcher that locks on to enemies and does considerably more damage. The final weapon is a laserbeam that deals more damage, but has a limited supply. Defeating enemies and destroying asteriods gives the player boost and ammunition. We weren't reinventing the wheel, but it was fun to actually program the mechanics found in the games we played growing up.

Hackathon 2016

Each team was able to choose from a gamut of community issues, and the objective was to create a video game that would help solve the chosen issue. Our team chose sustainability and created a game that could only be conquered if the player is able to decipher between trash and recycling quickly. We finished in 2nd, but we were proud of our ability to work together, solve the community problem, and have fun at the same time!

There were five of us in the team, but only myself and one other team member had experience using Unity. I had the most experience, so I was happy to step up as the leader. I helped delegate the different tasks, and made sure that we were on schedule to show off our game when the judges showed up. Our game was the most fully featured and stable when the time came, but the rubric for the competition favored potential over delivered results. We placed 2nd, so I shouldn't be compaining. It was a great weekend, and everyone in the group has stayed friends.

DirectX 11

DirectX was fairly daunting at first, but, after the initial learning cure, extremely powerful. Building everything from scratch, instead of using a game engine, was extremely satisfying. The two projects showcased here were two projects I was proud of from a game development course. The first is a solar system with different modes that allow the user to explore and get a sense of scale. Learning about textures, vertices, constant buffers, and how they all come together to make up almost everything found in modern games was fascinating.

The second project was a survival racing game where you control a shopping cart and try to outrun a ghost. Collecting the orange bottles slow the ghost down, and you are racing around a circuit. There are also boost strips that give you extra speed temporarily. There are 3D models, custom shaders, collision detection, and a simple UI. A keyboard or controller can be used to control the player. There is also an original soundtrack written by myself. Sometimes I really enjoy getting down and dirty in DirectX rather than relying on a fancy game engine. Although, I have definitely gained more appreciation for what a game engine provides after this class.