A Day in the Leaf is an educational strategy plant game where you can learn how to grow different plants and the numerous factors that impede plant growth.
I have worked on:
Week 12 (or Week 1 working on ADitL) :
After I came up with the idea of A Day in the Leaf (originally named Ok Bloomer) and it was decided upon by Asfand and Professor Ignace, we fleshed out the details as to what it would become. We set out to create a similar style/feel to Hay Day but with an importance placed on educating the player on how to grow plants as indicated in the Ontario School Curriculum for Grade 3. As with all great software projects, ours started with documentation. Our team started to work on the user manual and the storyboard our game so we all had a clear idea of what we were making. Then, we started to work on research into plants, their lifecycles, their watering habits and just about everything we thought was relevant to teach children about them. From this research, we made a plant database document that we referred to during development.
Week 13 :
This week was the first real week of development on the game. I got the opportunity to showcase my creative skills as I was in charge of making all of the plant designs that we needed for our game. Considering that we had 30 total plants that we wanted to include in our game and having 3 stages of development each (seed, sprouting, grown), that would mean that 90 total individual designs were needed for development. Luckily, we were able to cut that number down to 60 as we figured that the seed stage for all of the plants would be roughly the same and therefore we could use the same sprite for all of the seed phases. Together with one team member Richard, we made all 60 designs, with Richard using Adobe Photoshop and me using GIMP, a free editing software, very similar to Photoshop.
At the start of this week, I was able to complete all of the designs and import them correctly to Unity to use as assets. My next task was to create a working experience bar to use for the game along with a C# script that would control the behaviour of the script to update as certain tasks were met (harvesting plants, buying items). After I completed this task, I took on a daunting challenge, making the encyclopedia. The encyclopedia contains all the real world and important information about each plant that the player has unlocked thus far and would be used as a component to enhance the learning experience of the player. This task involved me creating several UI screens and button functionality to tie together all of the 30 plants in our game with the appropriate information taken out of the plant database mentioned earlier. In this week, I was able to get halfway done on this massive task.
For the first half of this week, I completed the encyclopedia. This was certainly no easy feat as creating each plant “card” took time to get the right information (luckily Unity has prefabs which made the job a whole lot easier). For the later half of the week I took on a technically involved challenge which was to implement the save/load system for the game. This challenge would be unique because I wasn’t exactly quite sure how to take whatever information that had been loaded into the game during playtime, save it somehow and then reload it when the player played again. By the end of this week, I was starting to do research into how it would be possible for me to do this/what were the different methods to achieve this goal.
To start this week, I settled on two methods to make the save/load system: binary formatting and JSON. After attempting to make the system with binary formatting and getting caught in issues, I decided that making the system in JSON would be simpler. I was able to make a few scripts that allowed me to access a persistent file path on whatever device that played the game to create a JSON file and then save data to it and when calling a load function, was able to take the contents of that JSON file and read it. This was however, just the base architecture for the save/load system. The next hardest challenge was giving the save file meaningful data somehow. The meaningful data that we wanted to save was the plants on the grid and every aspect of them from positioning to whether a pesticide was needed for that plant. I was able to access the data of each of the plants and their important characteristics and then save them to the JSON file. To read them in, I made a function that created a new plant with all the characteristics that was read in from the JSON file. To end the week, I worked on adding to the QA document, updating the GDD, doing QA tests and starting on the TDD. Furthermore, I made an xCode build and tested the game out on my iPhone.
In the last week of my internship, I worked on testing the game and fixing any bugs before the game was published. I also worked on preparing all the necessary documents/images/paragraphs necessary to release the game on the App and Android Store.