MediQuest (Oct 2021 - ) [C#, Unity]

I joined a team called "CodeBlue" at the beginning of the semester to gain some insight into game development. The game was halfway through the production, and they were working on a medical game where the user gets to play as an intern doctor whose task is to diagnose patients. I worked as a programmer to mainly take care of the coding related to the new features, as well as upgrading the exisiting code. We recently won the "Game of the Year" award at the UBC Game Development voted by several judges in the industry. Here are a few things that I have done so far.

Redesigned the dialogue system of the game
When I first worked on the dialogue system, it was just a simple 1D array storing all the dialogues. With the introduction of the save/load mechanism and more storylines coming up, the leader and I decided to come up with a hierarchical dialogue system which allows dialogues to act as checkpoints, thus users can pick up from where they left off. I wrote a small algorithm that allows the programmers to input the storyline and let the program sort out how they can be stored as dialogues in the hiearachy. Storing in a hiearachy meant that when we switch scenes, it allows dialogue to be temporarily saved and thus, can continue the game from the last scene. Also, when a player quits and resumes again, the hiearachy can retrieve the last checkpoint.

Patient Documentation
I worked on two aspects of patient documentation; a patient chart and a test chart. A patient chart involved different sectors which are related to other parts of the game. For example, a function of patient chart is to order tests for patients which is done via a test chart. Actions from test chart have to be stored correctly so the doctor can order the correct tests. This whole process required understanding of the relationship between different components of the game and made me to read all the code related to the charts. The same thing applied when I had to extract data from the patient to fill up the charts.

FPL Assist (Jun 2021 - Jul 2021) [Java]

I created this app throughout the time I was taking a software construction course at UBC. When I started playing Fantasy Premier League (FPL), there weren't many helper apps that would provide users with sufficient data when it comes to decision making about player picking. It had long gone been my dream to create an app with this idea and I got this opportunity to implement it at UBC. However, after planning out, I realized how not easy this project was going to be, and with the duration given to complete the project, I decided to go with the FPL team management interface with a dashboard to view player statistics. I really want to work with FPL APIs in the future which would provide me with much more accurate live data about the players and perhaps, combine it with Machine Learning once I learn about it. Maybe, I will enter the competition with a team fully handled by ML one day.

Features

  • Create Team
  • Budget system where 15 players must be owned by using only $100
  • Dashboard to view player statistics
  • User guide
  • Save/Load mechanism using JSON

Challenges
Since before I worked on this, I had in mind that handling the data was going to be a huge task I have to overcome, considering the sheer amount of players available in each team. In the actual Fantasy Premier League app, there are 20 teams with each team having around 25 players. This led me to reduce the number of teams to 7. My knowledge about data handling was pretty limited, thus I decided to input all those data within the app. This meant that I have to initialise all these data whenever an app is started. There were no big issues about this apart from the fact that my start-up program is very long. Testing and debugging throughoutly by writing JUnit tests was a fun challenge too, and it definitely helped strengthen the code.