Motivation

We wanted to create an educational game that leads to real world impact. Existing poverty simulation focus on how many days you survive. But we believe that the goal is not to survive, but to escape the cycle. We also wanted to help users feel empathy. When you are trying to escape poverty, but don't have access to basic resources, it's frustrating. For example, when the food bank runs low, we harness this empathy to easy donations that are traded for communal resources through ethereum. Because we use ethereum, transactions are transparent and minimize transaction fees. In contrast to the 30% platform fee and 3% online payment fee, using cryptocurrency, we are able to send the majority of donations to charities. Because we are hosting the app in the blockchain network, and have the ability to host the web files on ipfs, our goal is to build an app that can run forever to raise awareness and funds until we finally beat hunger!

What it does

BreakTheCycle is a game simulating the life of a homeless person living in poverty.

There are three main institutions: the homeless shelter, the food bank, and the clothing donation. Your health and stress levels are affected by which institutions you use.

Each day, you earn a modest income on the streets. The goal of the game is to accumulate enough money to be able to find a home and eventually get a job, thus breaking the cycle of poverty.

If any of the three institutions runs out of resources, you have the option of donating Ether to a real charity in order to restock the resources. Since this transaction is stored on the Ethereum blockchain, it is completely transparent and 100% of the money (minus the gas fee) goes to the charity, with no middleman.

How we built it

The transactions and game state are stored on the Ethereum blockchain. To test our back-end, we used Ganache to generate 10 accounts with fake ether. The smart contract powering the transactions was written in Solidity. We used web3.js as a JavaScript interface to call the smart contract. The front-end was built using Jade, CSS3, and Vue.js. The server hosting the static assets was written using Express.js.

Challenges we ran into

~ Performing transactions on the Ethereum platform ~ Setting up Ganache and creating test accounts to test our transaction logic ~ Using web3.js's API to interface with the smart contract written in Solidity ~ Understanding the architecture of a decentralized application

Accomplishments that we're proud of

~ Building our first full-stack decentralized application ~ Creating the prototype for a game in less than 24 hours ~ Designing a game whose in-app purchases benefit society ~ Leveraging the unique advantages of blockchains for transparency in donations

What we learned

~ How to design a decentralized application ~ How to write a smart contract in Solidity ~ How to interact with a smart contract from a Node.js program

What's next for BreakTheCycle

We are currently planning on significantly expanding the scope of the game. We will add a more complex map, with more buildings. We will add more variables and polish the graphics further. We will also fine-tune the in-game parameters to allow for a more balanced, multi-dimensional game.

We are waiting on an HTTPS certificate to deploying the application to the public Ropsten test net where users can connect using MetalMask.

We also want to take inspiration from the popular steam game, Don't Starve Together, where users can move and explore in 2d space.

As it is wasteful to send transactions each time a user updates position, we are planning to use RightMesh to communicate within the local community.

Built With

Share this project:

Updates