Player Selection Screen
Visit Neighbor during Stay-At-Home Orders?
Maybe visiting your neighbor was a mistake, he has COVID!
Visit the CDC's website for info on more ways to prevent the spread of COVID-19
Oh no... you need to regain some health by eating and living a better lifestyle!
Not social-distancing reduces health! :(
Taking too much damage from not social-distancing can create disastrous possibilities. Game Over! :(
Shopping at a store during the pandemic
Vim or EMACS?
In-person school during the pandemic?
Going to the gym and breaking Stay-At-Home Orders
Go to the hospital to get your COVID-19 Vaccine!
We were first inspired by the activists at link who created a game to raise awareness about the hardships of farming in developing countries. With the COVID-19 pandemic devastating the world, we wanted to make our impact by raising awareness on the various issues felt globally from COVID-19.
What it does
Covid Crusher is an HTML5 Canvas web app designed to allow users to explore the diverse challenges that are faced by various socioeconomic groups, from high school teenagers unable to attend school in person to the elderly, who are most vulnerable during these circumstances. Each character has their own stats--cash, health, sustenance--that can all affect how they play the game.
How we built it
We used React and Canvas to create the frontend of the game, using the Sweetalert package to help guide the player through various challenges they may or may not be aware of, helping them recognize difficulties that people from other socioeconomic groups may face that they themselves are not burdened with. To save and load savefiles, we used Oauth2.0 with a Google Cloud/MongoDB backend with Mongoose. We used Git based version control with a makefile to simplify compilation commands. For hosting, we used Repl.it and Netlify. Netlify hosts a frontend-only version of our application (without save files), with automatic git integration and deployment. Repl.it hosts finished builds, with a fully functional backend. This allows us greater flexibility with testing our application.
Challenges we ran into
We hit some roadblocks along the way: animating the sprite movements were difficult because the timing was precise; displaying and customizing various display screens in canvas required a lot of tedious, careful experimentation; and connecting OAuth 2.0 was much more complex than we initially expected. We had some recurring issues with Git as well, as merge conflicts would sometimes arise and a deleted tag would cause the whole code to break. Setting up MongoDB on Google Cloud was also a trickier process than we initially expected. (A team member also failed to show up.)
Accomplishments that we're proud of
First of all, we wrote 3000 lines of code and created a fully functional RPG in a week! We were also able to get through all our hurdles with animation, OAuth, Canvas, and create a smooth and interactive player experience. We were even able to customize the dialogue to educate players about various global issues. We also developed a fully functioning inventory system with items and made all buildings interactable.
What we learned
With over 300 commits to the repo and over 100 pull requests, we learned that proper version control is invaluable for group projects. We also learned how teamwork and collaboration allowed for greater specialization--as we each focused on one thing, it was easy for us to implement and test features rapidly. We were also able to utilize technology we were unfamiliar with such as OAuth 2.0, HTML5 Canvas, and Mongoose. And finally, we learned that making pixel art was a tedious but rewarding endeavor.
What's next for Covid Crusher!
We aim to bring Covid Crusher to the online community by refactoring our codebase and hopefully publishing it on a major website like Kongregate or Armor Games. To do this, we will be expanding the scope of the game:
- We will improve the day/night cycle with random events.
- We will improve NPC movement and add specialized behaviors.
- We will add an on hover display for information about each location.
- We will add multiple maps for the player to visit.
And we will do all this to create a fun and educational experience for all players