What I learned building a VR basketball arcade game
I created a VR basketball game for the HTC Vive! It’s a 60-second arcade experience, where you try to get a high score by shooting basketballs.
This is a document to capture and share my learnings on:
- What I learned from play testing
- How I designed the game
- Tips when demo-ing at a game expo
- How I learned to make something in VR
My work experience is around user research, UX, UI design for desktop and mobile apps, along with enough HTML/CSS/JS skills to build simple CRUD apps.
What I learned from play testing
- Accessibility issues surface very quickly in VR. As an adult of average height, I didn’t consider that kids would also be playing my game. So at the expo, a few kids had to reach over the trough to pick up the basketballs, and the basket was too far for their throws to reach.
- Picking up a basketball is more intuitive with the controller trigger than with the grip. For someone trying Vive controllers for the first time, it was hard for them to find the grip button—it’s hidden, and there’s less affordance and feedback when pressing the grip.
- Finding the right way to translate a input from a physical motion is hard. Is the controller’s grip or trigger a closer match to the motion of picking up a basketball with your palm and fingers? I assumed it would be the grip, but people were able to use their index finger to pull a trigger and pick up a basketball.
- I couldn’t tell if force feedback was useful; maybe it wasn’t long enough and if it was coupled with visual highlights, it could make more of a difference.
- At the end of 60 seconds, the buzzer, freezes the game mid flight. In real basketball, you’d want to count the shot, but in arcade basketball, it’s a useful effect to show that the game is over.
- When people see that you can grab multiple balls at the same time, they discover a bug, but it’s also a moment of delight for users, because they can now shoot more basketballs per throw.
Next steps to improve the experience
- When showing the game in person, you naturally explain parts of the experience. That makes it harder to test for how a stand-alone onboarding experience would perform.
- Reset the game that with a different input than the same input that is used to pick up basketballs.
- Include a way to see high scores.
- A different game mode to practice; or make the game extensible beyond the 60 second experience; an infinite mode.
- There are also visual improvements: use a basketball image map; making a real hoop instead of an octagon out of rectangles; and making a real net that is see-through and doesn’t freak out at times, but despite all of these visual gaps, people enjoyed the game. Some even came back for multiple rounds.
Gathering Feedback & Showing at a Game Expo
How I gathered feedback
- Prototype with someone: When I first started the game, I was creating a simple room to interact with bouncing soccer balls; it evolved into a basketball game when a friend was testing it out. “We should make a basketball game.” Let’s do it. I started making a basket with a backboard, testing the placement, and the bounciness of the basketball, backboard, and rim. I set up the objects in Unity while he was wearing the headset. I’d adjust, he’d throw, then give me verbal feedback without taking off the headset. Very much like when you’re hanging a picture frame on the wall. You could do it yourself, but you can have someone spot check you and tell you whether your left/right side needs to go up a bit.
To prepare for a game expo demo, here are my tips:
- Think about the demo experience; which parts do are you testing? whether the game is fun, a specific mechanic? an onboarding experience?
- Have ideas on what you’re testing, then make sure your experience can help you observe those behaviors. I had a working game, but the visuals were laking, I knew that I was testing for fun and engagement, rather than whether someone would pay for the game.
- Having tried the Vive demo at a Microsoft store, I also thought about how an experience ends in a demo. Sometimes it’s a bit abrupt, I could continue playing for another 30 minutes, but there’s a line. So I made the arcade experience time out in 60 seconds; people could play a couple of times if the line wasn’t long, but it gave them the ability to run through the full experience multiple times, rather than a two minute game. You get better at it the second time.
- At a game expo, know that there are people that have never tried VR. This means the feedback you receive might include the VR first time wow factor rather than actual game experience feedback; look out for it and calibrate for it.
- Make sure they loop their hands through the controller straps. Controllers can slip and fly across the room, especially with a throwing mechanic in the game.
- Get a laptop. I only have a 30-pound PC tower and 27-inch display, and it was a pain to have it be my primary setup. If possible, bring a projector, so the people in line can have something to watch while waiting in line.
- If there are multiple Vives in the room, make sure the lighthouses don’t cross streams. Place your lighthouses away from each other; create a play space with tape or physical boundaries, so users and audience members know where to stand.
- Have multiple versions of the game to help you test your ideas. Seeing the contrast really clarifies which ideas are better. When I started seeing how many people didn’t know where the controller grip was, I switched to the trigger, and that made it so much better. I switched it again a few times to make sure it wasn’t individualized.
- Consider how you reset each demo. It might be nice reset the game while in VR instead of restarting it in Unity each time.
- Have a second person help you. You could probably handle the station yourself, but I was there for 5 straight hours. Learning to set up and seeing the feedback was invaluable, but you forget to eat and drink and blink.
How did I learn to make something in VR?
- I started by understanding what defines a good VR experience. This was from consuming Google I/O videos, Medium articles, and Voices of VR episodes. By hearing others talk about VR, I learned about usability issues and design principles to consider.
- To learn how to create VR experiences, I followed tutorials and videos from Unity, Udacity, Udemy, and CGCookie. They were helpful to learn the tools, C#, and how to implement different interaction concepts.
- When I get stuck, there’s the NYC community, and workshops that help me find the next mound of knowledge to uncover. It’s very useful to have others that can provide feedback and point me in the right direction. It took about 6 months; starting with dabbling with Google Cardboard and Unity rolling ball tutorials; then graduating to building different experiences; workshops to see an end-to-end workflow; then video tutorials to understand how to create interactions.
- It takes me a day or a week now to try simple interactions.
- I imagine the next step is to continually work with more folks and create more ambitious projects.
- I started with Unity, since it gives you a lot to start building: the Unity asset store, physics, lighting, andSteamVR SDK.
- Know that there is a difference between what you want to do vs. what you can create. You have to continually explore the two worlds until they get closer together.
- What about modeling? You can see that I did it in unity. There’s a gap in my 3D objects.
- Find a cohort, find people that are in a similar place, that inspire. and that need your help. When you’re learning outside of a school environment, you are both learning and teaching at the same time.
Questions people ask me and questions I ask myself when talking about VR basketball.
- Does playing basketball in VR help you in real life?
Yes and no. In a totally unscientific way. Bending your knees when shooting definitely help with the arch of the shots. I think it helps you more if you have played zero basketball before VR. The basketball game/simulator would have to be very precise to help improve someone that is more experienced in basketball.
- Should the basket height be the same or adjusted to each individual?
Is it a more fair game if the backboard and the basket is in the same place regardless of a person’s height. Or is it more fair if the basket is adjusted a relative to each individual? It might be more interesting to take advantage of what VR provides and allow everyone to play with a distance that is fixed to their own body type.
- Why spend time making games and VR experiences when the world is so messed up?
That’s a tough question. I don’t think it’s a binary situation. Over the years, our skills grow a certain way, and while it’s not impossible to change, it becomes harder. The question for me is “how can I increase my level of civic engagement in my work and life?” rather than “should I drop everything and change my career path.”