Inspiration

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

  1. The game features Perlin noise to procedurally generate caves in which the character can explore.
    https://jay-red.github.io/Solarria-Game/experiments/pyrlin/PerlinNoise1D.html https://jay-red.github.io/Solarria-Game/experiments/pyrlin/PerlinNoise2D.html
  2. A collision and physics engine built from javascript allows the game to be playable. The tile and rendering engines required a good deal of forethought to implement, especially since the tiles actually had different variations depending on their location.
  3. 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.

Share this project:

Updates