- source code: https://github.com/jeesub/BVW
Date: May 2020 ~ Dec 2020 Main Purpose: Building Virtual Worlds Project Size: 2 Game Programmers, 2 Artists and 1 Sound Designer, 2 weeks, 5 rounds My Contribution: Game Programming Game Design
Pioneered by ETC co-founder Randy Pausch, Building Virtual Worlds (BVW) challenges students to work quickly, creatively, and collaboratively. Part of the immersion semester, BVW gives small teams of students two weeks to create a virtual world, with new groups and goals for each round. It all culminates in a public festival to hundreds of spectators – and an incredible sense of accomplishment. In fact, many BVW ideas go on to become full-time research projects, student spin-offs, and commercial successes. (source: CMU ETC, Building Virtual Worlds)
Round 5 Main Purpose: design a world for the end-of-semester ETC festival. It should be designed to take advantage of the online context being created by the ETC Fall Festival team Project Size: 2 Game Programmers, 2 Artists and 1 Sound Designer, 3 weeks My Contribution: Game Programming Air Console Game Design Stacks: HTML CSS JavaScript C# Unity Air Console
a game trailer
Game description; Welcome to Gnomes in a Robe, where guests will be playing as three gnome brothers working together to obtain a wizard license at the Bureau of Viable Wizards. The license exam is mainly designed for humans, so the gnomes can’t even reach the top of the desks! Work together with your brothers to somehow pass this exam and become a professional viable wizard!
part of controllers
I made magic effects using a particle system. To make intriguing visual effects, I used many techniques, such as velocity, noise, collision, and lights. At first, we wanted to use VFS. We used a particle system because WebGL doesn't support VFX. However, using many particle-system features help me make good-looking visual effects.
I implemented the Air Console controller using HTML, CSS, and JavaScript. Three players have different controllers. I also made an admin page, so the game has four different controllers. Top-gnome-players can see skills and maps. Middle-gnome-players cast a spell. Bottom-gnome-players can move the character using D-pad.
I made an idea of three players-collaboration-game with different roles and controllers. After brainstorming, we improved game design as a team. Through iterations, we were able to make this unique and intriguing game.
This game went to the ETC festival. At the festival, more than 150 people enjoyed the game.
Round 4 Main Purpose: tell a compelling, meaningful, interactive story where the guest has some ability to interact in order to bring the story to a fulfilling climax Project Size: 2 Game Programmers, 2 Artists and 1 Sound Designer, 2 weeks My Contribution: Game Programming VR Game Design Stacks: Unity C# Steam VR Oculus Vive
part of the game playing
The game is about a person who is a workaholic and has a mundane job. One day, a player gets a dog named Chichi, and she changes the player's life.
I took charge of a game manager, mini-game, and VR. I also contributed to the game design. I suggested the story about depression, a dog, and overcoming depression. After brainstorming, we finalized the storyline.
It was a two weeks project, but the actual time of programming was five days because I was not able to use the VR Room in the first week due to an unexpected schedule change because of COVID-19. So in the first week, we put in the time to create the storyline.
I also had another problem. The other programmer was in China and had no VR device. Therefore, I was the only programmer who can use and test the game using Oculus. To come up with this problem, we over-communicated and did pair-programming. As a result, we were able to complete the development on time.
Round 3 Main Purpose: make a fun-focused virtual world in a week Project Size: 2 Game Programmers, 1 Artist and 1 Sound Designer, 1 week My Contribution: Game Programming Air Console Game Design Stacks: HTML CSS JavaScript C# Unity Air Console
part of the game playing (from 0:56)
We only have one week to create a playable and fun game. We can use Air Console, Microphone input, or Web camera input. We decided to use Air Console because we used the other platforms in the previous round.
'Our Craft' is four persons multiplayer game. Players need to collaborate to make furniture for a friend, Alex, who just arrived in Pittsburgh. Players may not have the tools and materials they need, so they need to send and get tools. Players use video chat to communicate with each other.
I handled the Air Console controller using HTML, CSS, JavaScript. Because the essential game proceeds in the controller, I built game logic in the THML file with JavaScript. I also implemented an interpreter for the controller to communicate with Unity. In the game, the Unity part works like a central server of the game, and each mobile controller has game logic codes. Therefore, the Unity part sends initial data to the controller, and the controller takes the game process. When a player completes a piece of furniture, the controller sends data to the Unity part.
I designed an entirely new controller to give players an intriguing game experience. As a result, I made a unique controller. I also implemented a text message scene and announcement feature. So players can smoothly play the game with two different displays (Computer monitor and mobile device).
This game went to the ETC festival.
Round 2 Main Purpose: make a naïve guest feel freedom Project Size: 2 Game Programmers, 2 Artists and 1 Sound Designer, 2 weeks My Contribution: Game Programming Pitch Detector Unity Animations Game Design Stacks: C# Unity OpenCV Web Camera Pitch Detector Microphone
part of the game playing by a Naïve Guest (from 4:19:10)
We are not allowed to give any instructions to the guest. We only can use a microphone and web camera as input devices. We asked to create a consistent, highly interactive, and engaging experience that lets naïve guests feel like they have a lot of freedom in the choices they make. Despite this feeling of freedom, we must also ensure they have an enjoyable time in the brief experience you provide for them.
Players start as small fish and can eat smaller fish. They need to avoid being eaten by bigger fish. We built an open-world game, but it has a depth zone system, so players can safely explore the world. We put much effort into the environment, so players can enjoy swimming in the world.
We used every given input, microphone, and web camera. Players can control the fish with the direction of the face and can open the mouse of the fish by opening their mouse. Players can trigger the sonar by making sound using microphone input.
I implemented sonar using microphone input because I know frequency and volume from an electronic engineering background. I decided not to use frequency as an input. Men and women have different ranges of frequency. Therefore it is intricate to use the frequency input as a controller.
I also created the Unity animation using Timeline. I used Timeline making the ending scene and credit scene.