After a long summer, we'd all love to hang out with our friends right now. However, given the current situation, going outside requires us to practice safety measures. We hardly get to go anywhere, so we decided to create a game that allows you to explore entire worlds and make new memories in seemingly mundane locations. For the elements of our game, we decided to culminate our experiences from previous summer hackathons, including RollForHacking and YeeHawHacks.
What it does
Using Google Geocoding API, our game, Solarria, is able to detect one's physical location around the globe. Solarria will generate a randomized 2D sandbox world with multiplayer capability for one to explore based on your real-world location. The catch is that in order to play the game, Solarria must first detect the user wearing a face mask using their webcam.
How I built it
- The game features Perlin noise to procedurally generate caves in which the character can explore.
- Google Cloud Vision API used to detect whether or not the player is wearing a mask before they play the game.
Challenges I ran into
We ran into a problem that we faced in our previous hackathon where the user would change tabs and the character model would clip into the ground. Before we were confused about why this was happening, but now we understand how it works.
The peer-to-peer networking stack was different this time since we were using a browser to serve as the host for other players. This was difficult to work around.
Accomplishments that I'm proud of
It was incredibly fun to create a decentralized server game. The tile engine and networking stack were difficult to get working, and mapping it to real world locations was great.
What I learned
Building up from our previous experiences, we have learned quite a lot from this hackathon. We have discovered how various games have used Perlin noise to generate underground terrain.
What's next for Solarria
We would love to flesh out the game further, such as by adding different enemies, treasures, and biomes specific to different regions.