top of page

2016 - 2017

Dark Shot VR was one of the most fun projects I've had the opportunity to be a part of. This was my first time developing for VR and the HTC Vive was a pleasure to work with. While the road was rocky at some points, I've never had so much fun playing my own game. Working with my team to solve problems not even our professors had answers for, offered us very rewarding challenges to overcome. After working on this project, I'm very excited for the future of VR and I hope that DigiPen continues to empower students to develop it further.

OBJECTIVE

VR is still very new for the gaming industry and was even more so back when we started the project. My friend Chris Fields came to me the summer that we started the project with a pitch that was along the lines of, "Do you wanna produce for a VR game? I have this idea where you use a bow & arrow in a shooting arena like Katniss from The Hunger Games!". I'm not sure how I could refuse such an offer, but I did initially. I wanted some time to think over the concept and see how I could make this into an actual game.

After a couple weeks during the summer, I came back to Chris and told him I had a some ideas and that we should get the game in the works. These ideas involved Unreal Engine, artists, and shooting lots of robots. 2 months later we assembled a team, setup our station at the school, and were on our way to making our first VR game.

Initially there was a backstory, and voice-acting, and everything under the sun that a AAA title might have. Then I began shaving one thing at a time. We were a 3 man team for the first half of the project with only 2 volunteer artists. Our objective was then finalized after the realization that we were going to have a lot of work to do: let's make a wave based archery game with an arcade style aura that allows you to jump in and play without any exposition or plot development. Thus, Dark Shot was born.

INSIGHT

VR is tough.

Between dealing with UI/UX challenges, new/old tech conflicts, and having to take the headset off to change one variable 400 times, it can be very draining. Not to mention the physical interaction that becomes required for playtesting the game.

While I did have a lot on my plate with school and the amount of roles I took on, I had the pleasure of working with great individuals that created an environment I could succeed in. I've had plenty of experiences on other teams where being a team player was rough; but working on a team with great teammates made it easy. We proved that even as a team of 3 devs with no experience in Unreal or VR, that we could learn and adapt to surpass our limitations.

DigiPen made a video article on our project and what went into development about halfway through its completion. While we were all very nervous for our first time in front of the camera, it made for a great experience and I'm very happy to have had such an opportunity.

Quiver System Architecture

A majority of the decisions that made the foundation for this project we're architecture based. Our arrows had a very specified system for dealing damage and passing off special effects to other actors such as physics objects and enemies.

A majority of our in-game systems were based on Unreal's tag components which allowed us to differentiate between specific types of classes and types. For instance, our arrows all inherited aspects of our default arrow while assuming characteristics of their own. Corrosive arrows had to be different from Shock arrows, etc. which meant that each arrow had to send specific information to the receiver when it collided.

I learned rather quickly that this way of evaluating type differentiation was not scalable. This was fine since the number of arrows/enemies/power-ups we had in the game we're limited in number. We knew we wouldn't be working with 1,000 different arrow types so tracking an arrow via enum worked just fine for our purposes.

Working in Unreal was also a treat as we had to use a mixture of blueprints with C++ code. We often practiced creating base classes in C++ so that we could later make inherited instances via blueprint that could inner-communicate with virtual functions of the parent class. Often times I would ask myself, "do I need this blueprint to have backwards communication with the other C++ based classes?"; if the answer was yes, I would make that base class in C++ and implement its core functionality there. This resulted in child classes based on that parent class making C++ callbacks in blueprints. It often got confusing before we instated a naming convention that separated the two, but this functionality gave us more control and optimal performance while allowed designers to program visually.

DESIGN

While simple in scope, the design for this game took a lot of work to make happen. I was originally the only designer for the first half of the project; this meant that I had to design the game from the ground up without anyone to bounce ideas off of or second opinions. I came up with something and my teammates helped me get it in the game. This strategy only worked for so long, and luckily we brought another designer on the team, Gunnar Headley. 

For the second half of the project I finally had someone to offer some healthy friction that brought the game to a better place overall. Having someone to help make your designs make sense externally is beyond necessary with games. We iterated and playtested through at least 30 different arrow designs before settling on the 9 arrows that made it into the game. And of those 9 arrows, we had to heavily modify half of them to the extent that they became entirely new arrows.

The enemy design was nothing revolutionary. We had a basic robot, a fast robot, a flying robot, and a big tank robot. Beyond that, most of the behavioral design was straightforward and any flare that we added was possible because of our AI programmer, Sam Montanari. We got the basic behaviors in and eventually came up with some spice to make things a bit more unpredictable. We made tanks blow down doors upon entry, robots that aid other robots while flying overhead, and (my personal favorite) ninjas that leap from rooftops down onto the player.

 

Below is some older footage of what we designed our arrows to be initially. While some of them remained very similar, all of them were tweaked or entirely reworked by the end of the project.

Dark Shot VR

Dark Shot VR

Dark Shot VR
Search video...
Shock Arrow - Final
00:10
Play Video
Corrosive Arrow - Final
00:08
Play Video
Orbital Laser Strike - Final
00:14
Play Video
EMP Arrow - Final
00:05
Play Video

Arrow Design

I wanted to ensure that the experience was quick to learn and possessed strategic depth for those who wanted to master it. I designed the arrows to be simple to use, but effective in specific situations that forced the player to manage their cooldowns while in the heat of battle. Grabbing your equipment off your back was the same for each arrow, but the arrow you choose could be the difference between defeat and surviving another wave.

The basic equipment arrows were used as an introduction to equipment as well as a bit of flavor for engagement. We tested using only standard arrows (which are infinite and damage capped) and even the best of us would fail after the first 10 waves or so. This means that even players who had never experienced VR were capable of succeeding for a long duration without any knowledge of the games mechanics other than pulling the trigger and drawing an arrow back to shoot.

When I originally came up with the game's design, I had specific arrows in mind that I knew had to make it into the game one way or another. The first was the EMP arrow. Back during my Call of Duty days, when I saw how impactful an 'EMP' was on the battlefield, it left me jaw-dropped; so I knew that without a doubt this would be a cool and easy to use panic button for newer players.

The second arrow I had to include was the orbital death laser (or Orbital Laser Strike as we named it later). As a fan of the Gears of War series, I wanted to emulate the Hammer of Dawn. After some design negotiations and VFX were put into place, we iterated through 3-4 versions before we finally had what we wanted.

Finally, there was the mini-gun. What we dubbed the 'Cyclone Arrow', was my favorite arrow in the game and one that took the longest for me to polish. Working with an artist (Brenna Anderson) one-on-one to create a pet project of mine that eventually became our cornerstone 'epic moment' when showing off the game to strangers. A deceivingly powerful arrow in a compact and mystical package: "from one thing, shoot ten thousand things."

After the game was shipped, we recorded some footage of gameplay that show cases our final product.

© 2020 Josh Painter

bottom of page