Oculus Launch Pad Grad Michael Lee Shares the Creative Process Behind Please

Oculus Developer Blog
Posted by Oculus VR
March 25, 2021
Launch Pad

Each year, Oculus Launch Pad supports promising VR content creators from diverse backgrounds with hands-on training and support, so they can iterate on their unique ideas and bring them to market.

2019 Launch Pad grant recipient Michael Lee spoke with us about his involvement with Oculus Launch Pad and how it helped shape his career and the development of Please, a VR rhythm adventure game set in a world in between life and death.

If you’re interested in applying for our next Oculus Launch Pad session, watch for our open application announcement on the blog this Spring.

Congrats on receiving an Oculus Launch Pad grant! What was your Launch Pad experience like and how has your involvement made an impact on your career?

Launch Pad was an amazing experience—being able to talk to people with such different experiences was a very unique opportunity for me. I felt so much true passion from others that it had a deep effect on my own. One of the participants I met taught himself how to code and make games in his 70s! One of my biggest learnings is being able to see the wisdom in every idea—especially the ones I previously considered "far out." How does this transgender character think of their identity? What makes this person interested in x? Opening myself to these questions during the development process has helped me consider diversity and accessibility in making my game. Meeting these brave individuals has helped me feel more confident in expressing my creativity.

Could you tell us about the core gameplay and what inspired you to create Please?

Please is a top-down adventure rhythm game. The player controls an avatar from a top-down view to traverse a linear world, meeting and getting to know its residents. You find out the residents are stuck in this world due to their lingering attachment to their Trauma—which often makes them live in their own story of how the world is. They might attack you, which comes in the form of different boss battle rhythm games. As you progress further, you figure out the mysteries of this world and what your role is in it.

Each fight and minigame is a unique rhythm game inspired by my love of the genre—there are ones inspired by games such as O2Jam, Elite Beat Agents, Rhythm Heaven, and such. I also grew up playing arcade music games like DJ Max, DDR, Taiko No Tatsujin, etc, so there are lots of minigames that mirror those nostalgia!

The story is directly influenced by how I grew as a person from the last few years in my life; at my lowest point, I was basically kicked out of college and lied to everyone in my life about it for a whole year. It was during then I found that opening up about my depression and traumas helped me gain self-acceptance and find what I wanted to do with love and passion and share it with the world–game development!

Were there any important themes or messages you wanted to get across in your game?

The most important theme of the game is to understand Trauma so we can be more self-aware about it, but in a lighthearted fun way so it’s digestible to any type of player. The residents of the world act out with strong emotions because they are immersed in made-up stories in their minds about what's bad and what's good. Whatever they do—even if they attack you—is because they are reliving their past trauma as if it is in the present. By playing the game, you learn that their actions have nothing to do with you—and that by listening with patience and curiosity, people can open up and share about their traumas. The goal isn't to magically solve life-long issues—it's to take the first step and become aware of them.

Did you run into any major technical challenges? If so, how did you overcome those challenges?

This is a challenging issue for Please because of its art style! Please uses a mix of art styles but it's main one is pixel art. Using 2D planes in 3D games isn't a new concept, but using 2D planes that can play flipbook animations while making it react to the lighting setup and 3D space while taking into VR considerations of non-fixed cameras and rendering limitations created a true challenge! But most of all, I come from a non-technical background, so needing to self teach technical solutions that didn't exist was a very difficult yet satisfying experience.

Please uses 2D planes as a mesh (so it can be more accurately affected by lighting/shadow/collision setups) and a heavy material-driven system to play animation on it.

The first issue that comes with this is Unreal's usual VR rendering method can easily produce texture artifacts on single planes that uses opacity, which can ruin a lot of clean-needing pixel art animations (you wouldn't want a pixel wide of black line on the top of your 32x32 animation, for example). For someone who didn't have the technical understanding to go in deep into the rendering method to fix this, my solution was simply...to not use this rendering method! To compensate using a less efficient rendering method, I am incredibly careful of keeping any rendering costs low so it can still run smoothly on low end computers. This sort of approach is "if it works, it works"—and I’d argue this doesn’t really work half of the time—but when it’s a small enough project that you have great control over, it’s definitely an option! (Some programmer friends are going to give me an earful for saying that).

Unreal Engine also lacks 2D animation support, and since I am doing my animations on a custom material on a mesh plane, I cannot use any of the current system for it. While this adds a lot of do and do-not rules in development, it still opens up much more opportunities for customization if you build your own systems. This is where Material Instancing came in handy—building most common functionality in a master material, then creating instanced children of it to fit each unique art/animation filled most needs!

What was the main inspiration for the art direction in Please?

So before I explain the art direction, I just want to share my thought process about how limitations bring forth creativity. I come from a communication background, so learning game development without ever touching programming, art, music, etc sounded extremely difficult...but that was a driving force to help create incredibly unique ideas!

For example—I loved hosting Game Jams, and often I'd pair up first timers together (such as letting a business major student work on the art). Because they had a programmer who never touched game development, they forced themselves to make a simple game that just threw objects. Because their artist never drew before, they decided to use stock photos of pizza. Because of both that, they were able to refine a small idea and made the most simple, stylized, crazy pizza throwing game...that won the Game Jam!

So - to come back explaining what decided our art direction for Please, is because of our lack of experience in art!

Please has a mix of different art styles—2D pixel art, hand painted art, voxels, stylized 3D, realistic 3D, etc because we used literally what we had in hand. Pixel art was easiest to do to cut through the complicated rigging/animation process for 3D characters. That created a paper-mario esque style that we loved! 3D environmental objects were used because those were easily bought, made or modified to fit our purposes in the game. Whichever art style was easiest for a particular item, we used it for that. In fact, the different art styles inspired meaning inside the game—anything that's pixel art or cartoonish is part of the game world, while anything that's realistic or photogrammetric is an object that came from our real world, that somehow ended up in the game world, and thus directly interactable with the player.

This whole mix of art styles ended up making a unique style of look for our game, and it's all because of our initial lack of experience (and I’m glad it happened!).

How important was sound and music to your game?

Since the game consists of multiple rhythm games, music was incredibly important to make it fit our gameplay needs—while transmitting the strong emotions of the character involved in the game. We go back and forth with the music a lot—but there is a deep trust I have in my composer to make something amazing no matter what (no pressure if you're reading this Kristin!)

Sound effects played an important role to help player immersion as well as being attached to player guidance. We often use the game as a playground to have fun experimenting with sound implementation, such as making procedural loops, interactive sounds, physics-based sounds, and more!

What did you learn from your experience playtesting the game?

Always assume the player never played a game before! Playtesting your own game can easily be biased; not only do you know the know-how, repetitive playtesting creates muscle memory which can make a lot of adjustments unfitting for new players. It is really important to have key milestones be played by fresh new eyes, as well as being open to completely changing/removing something you've worked hard on.

What advice would you give to a developer looking to start building for VR?

If you're new to game development, the most fun/quick way to push yourself to learn is to do Game Jams!

If you're new to VR development, play a bunch of different VR games and note down what you like or not. Break down specific mechanics—they don't have to be good mechanics, just understanding the thought process of making it can help a lot when you go through your own process.

After that, do a VR Game Jam!

Is there anything else you’d like to share with our developer audience?

No one really knows what they're doing (in life, too!) Wherever you are at—I trust you. Whether that means you have totally opposite learnings from mine, whether you make a great experience and fly high, whether you try and decide to move on to something else in life, whether you stop and feel a mix of difficult emotions...they're all valid, cool, and full of wisdom. As long as you're doing something that feels authentic, I trust your path will be full of your own wisdom.

Feel free to reach out to me to talk! You can also follow our game on Discord!