Inspiration

Before starting the project, we went through a rigorous research phase, and during that time we discovered that the soil health of many lands across India has degraded at an alarming rate and it continues to degrade if no action is taken. Some researches suggested agricultural activities on such land becomes extremely tough and with each degradation of soil health, more fertilisers gets used to compensate the yield. But this cannot go on, at some point the land useless for agriculture.

So we went on to find ways of curing this problem, not just for India, but probably the same story could be going on across many places. We learnt about an ancient method of agriculture where instead of growing only crops, trees, livestocks are grown along with the crop. The extra trees & livestocks can help in replacing the extreme usage of fertilisers and thus reducing it's harmful effects.

We learnt trees helps the micro bacterias in the soil and also helps retaining water, and these factors contribute to a positive soil health growth.

Fast forwarding a month, now we have the Grow Green game, built with Flutter & Flame, which is a farm simulation game, where user can practice various agricultural procedures and see the result themselves. More about the gameplay is described in the next section.

What it does

Grow green is a farming simulation game, where user has to deal with real consequences of his actions, so for example fertilisers are cheap, but usage over time decreases the soil health, which in turn increases the usage and thus being a financial burden.

And using a agroforestry system with trees has it's own benefits, which not just provided users with recurring revenue but tree's potential value increases as well, which can be good return on investment depending on the time.

Overall, the game revolves around the idea of how well players manage the resources given to them and see their action's effect.

How we built it

  1. We used Flame for building the game play, and firebase is used as the backend service.
  2. There are many services such as Time Service, which manages the time in the game world, the time can be made faster and slowed down by the user.
  3. We have built a interval sync db which sync the data to firebase at every interval and any critical items are synced immediately.

Challenges we ran into

  1. Day one, we were completely clueless about how isometric world works, that too using flame. We had to go through lots of trial and errors along with documentations to understand the game world behaviour. Since we are using 32 degree isometric angle [Very close to golden ratio] , we had to create our own custom cartesian to isometric and isometric to cartesian coordinate convertors.

  2. There was not a lot of documentation for agroforestry . And mostly the documentations were very generalised. So we reached out to people who had ground experience Thanks to info@consciousplanet.org and some research paper for giving us detailed ground research that we applied in this game.

  3. Creating equations for effect on soil health and fertiliser and trees was not an easy task. No research on creating mathematical models for this had been done before so we had to create the mathematical relationship between soil health agroforestry layout, and fertilisers. This was very challenging. We only got time to creating one draft of simplified equations. The equations still needs to be refined.

  4. Using google wallet effectively in a way that players find it useful, such that they don't just save the pass and forget about it. We have made google wallet passes in such a way that they can be used later in the game for different purposes. Like view only pass for sharing your farm, and redeem pass for redeeming money by anyone anytime. You can even share the redeem pass with your friends!

Accomplishments that we're proud of

What we mostly cherished during this entire period of hackathon is the sheer challenges we had to face throughout and finding the solutions at the end of the day was the best part.

This is the first time we worked on Flame and we were very much surprised to learn what all we can do using Flame. Apart from building a fully working game, we enjoyed working with the realistic data sourcing that we gathered during the research phase.

Also creating mathematical relationship between soil health, fertiliser and agroforestry layouts was not done before , it was a research work in itself and i think if we refine our mathematical equations , we can achieve a very good approximation to real life farming simulator.

Google wallet: Learning about google wallet and how we can use passes to share the village with other players for them to learn from mistakes & ideas that work was interesting.

What we learned

This project is the first full fledged game app that we have built, we leant about many intricacies of game development. How multiple inputs multiple systems behaves, so for example in desktop we don't enjoy the freedom of touch screen, so to implement a simple scale functionality we have to use something else.

Moreover apart from the technical aspect, what I enjoyed the most was to learn about how agriculture farm lands function, how trees can protect the crops in an agroforestry system and how badly chemical fertilisers harm the soil. We found quantitative ways to measure soil health and how it can affect the farm's health over years.

We also realised that google wallet can help our game's retention time since the game passes will be visible to user in his pass. We have built the mechanism for storing game currency in the wallet and redeemable at later point on any account. We thought this could help us with game retention.

What's next for Grow Green

We know the current app lacks a lot of things, and we have a exclusive list for all the items that we are going to pick for the next milestone.

Following are some critical items that we wish to address:

  1. UI Improvements which is responsible for various screen sizes (the UI is adaptable right now, but do not respond to shift in screen sizes after the game is loaded)
  2. Though web app is available, it's not optimised, we plan to prevent resizing by showing a message in case window is not optimised for the gameplay
  3. Adding more types of systems and giving users ways for improving soil health
  4. Equations for fertilizer effect and layout effects on yield and soil health are yet to be refined. This game will look more realistic if we add Weather like rain and draught

Following are some of the backend changes we have planned:

  1. Proper rules for read and write access for intended users in firestore & storage
  2. If same user logs into multi device simultaneously, detect it and stop the game play in the other device
  3. Handle in case connection between firebase and the app is interrupted, show a no internet screen and, restart the game when the connection is back online - this is a critical case as if user continues gameplay without internet access, local changes will continue but nothing will be synced

Miscellaneous items:

  1. Better asset fetch logic in case of web app, so that the images / sfx / bgm are already fetched before we start the game.
  2. UI improvements in the game view, so that the game stats do not look very cluttered
  3. A better SFX while slowing down / fasting up time
  4. Making a better background for our village, instead of the bland gradient
  5. And, lastly We need a logo!

Built With

Share this project:

Updates