Building Virtual Worlds

Drunko Brunko Role: Gameplay Programmer

October 2020

Click here to try the game with your friends.

It’s a course project at Carnegie Mellon University done by a group of 5 people. 1 sound designer, 2 artists, 2 programmers. We used Unity Engine and Airconsole. This project was done within 1 week.

Drunko Brunko is a 2 player cooperative game. One player controls the front part of our main character and the other player controls the back part of our main character. Two players have to move without colliding with each other or stretching too far away to move forward. The game is published on Airconsole so players could use their phones as game controllers.

As a gameplay programmer, I wrote the basic game flow logic and providing player input interfaces for the other programmer working on Airconsole. I also did the animation adjustment with the other programmer to improve the whole gameplay experience.
Challenge: Time is our biggest challenge since we only have one week on this project. Finding and fixing bugs is more difficult.
Solution: We found a lot of playtesters and let them try our game without telling them a lot of instructions on how to play the game. By doing so, we found some bugs that we haven’t considered before. For example, we always assume players would only push the button once when they feel they need to. However, it turned out that a lot of players like to push the button multiple times in a short time frame, and this caused bugs that would potentially break the game. Since our gameplay is a very linear experience, a lot of unexpected actions caused by players would have a chance to break the game and we fixed them all by keep asking people to do playtesting. In the end, we got a stable version that has zero bug for the festival which lasted for a whole day.
It’s a course project at Carnegie Mellon University done by a group of 5 people. 1 sound designer, 2 artists, 2 programmers. We used Unity Engine and Photon. This project was done within 3 weeks.

Transrunner is a 2 player cooperative game to get all the stars on the map while we also keep a record of the clear time for each team and rank them on a scoreboard. Players would be able to play as a character that can transform into different animals. Each animal is unique. Humans can interact with several specific triggers. Horses run the fastest and could also step on the buttons. Birds can fly through the map and dolphins could swim into the water while all other animals could not.

As a gameplay programmer, I wrote the basic game flow logic and also used what Photon provided to do the synchronization between each client within one team. I also implemented all the animation and loaded all sounds for this game.
Challenge: Internet latency is my biggest challenge. Sometimes it will cause my game logic to break, and most of the time problems occur when two players trying to interact with the same object.
Solution: One specific problem is when two players trying to get the same star. Originally, my implementation was that when one player collides with the star, the star number for the whole team would do a plus 1, and the star for both the clients would be destroyed. However, this did not work well since because of the internet latency, the star on the other client’s map does not get destroyed fast enough. Thus the other player gets the same star and also performs a plus 1 action. This causes the two players to get two points but in reality, they are trying to get the same star. To solve this singleton problem. I wrote a shared file that each client would have to go to get the data with a bit of delay performed by me which is different for each client. And I put all the stars information in that file. So when one player hits a star, it will go to the same shared file to perform the logic, and if at the same time, the other client tries to do the same thing, they will see the same and updated file instead of performing the logic locally. Implemented this way, the problem is solved and no such problem appeared during the future tests and festival.