For those who don't know, HolographicQuad is our indie company run by us - two cousins working on the Last Root, a story-driven, turn-based RPG, featuring plants. This month we worked on a new building, the Nursery. The Nursery is a place where you grow seeds into seedlings. The seedlings can then be used in battle. The seedlings have different designs and stats
Before reading...
Drop us a wishlist on Steam ;) - The Last Root Steam Page
And follow us on Twitter! - The Last Root Twitter
✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵
Art:
Asiyah here, resident artist for The Last Root. For some background, I’ve been doing pixel art for nearly four years now, and work solely in Aseprite. Doing the nursery this month, I worked on its interior design, and the furniture that can be placed inside, as well as a bit of planning on the furniture sets to come. This includes the table where the seedlings can be planted, and the items on it that can be used to produce status changes in the growing seedlings. The most important thing though, were the seedlings themselves.
Character design is one of my personal favorite parts of pixel art, so I had a lot of fun with all their designs. And a little less fun with all their cute, but repetitive little animations. It was worth it though, because now they can walk, sit, battle, and get petted or carried by the player.
Next was the dirt machine, a sort of vending machine that players will use to create new kinds of soil to grow seeds in.
I also worked on the loot “ingredients” that will be placed inside, and the bags that will come out of it.
Lastly, I worked on the nursery’s unique UI (seen below). We went with a cloud motif to match the dreamy, childlike feel of the rest of the building. I will definitely have to return to the nursery to make more seedlings, furniture, and animations, but I’m pretty satisfied with this month's work. :)
Programming:
Hello world
Hey, my name is Maryam and I do the programming for the entire game! All the programming is done in Godot using GD script. I've been using Godot for about four years and my only prior knowledge of coding was a beginner class in Python at my school. I decided on Godot because it was a free and small file that my laptop could run at the time. And of course, because GDscript is super similar to Python. Ok enough background, now to my monthly update! ->
Furniture system
The first and biggest thing I tackled was the new furniture system. Inside the nursery, the player will be able to decorate and make it like their own. This means that the player would need to be able to choose furniture, place it, and destroy it. I decided to opt for freeform placement of the furniture instead of tile-based, so while the furniture won't snap into place, it will turn red and alert the player it cant be placed if its collision shape collides with another object or the walls. This took me a few weeks to get fully completed.
Planting system
Next, I worked on the farming aspect of the seedlings. The player has to be able to plant the seedling, grow it, and then harvest their new little friend. I started by creating a node called ‘SeedlingPlantingTable’.
This node can be attached to table furniture and is the basic manager for all the placed pots. It has an area that detects player input, and once it detects a player, a UI box will show allowing the player to pick the pot they want. Once a pot is chosen another UI box will show for the player to choose their soil, and then the seed.
The pot is also its own node and it has a 300-lined script that keeps track of everything about that potted seed.
Things like its ID, current stage, soil effect, and friendship points. Speaking of friendship, there will be a friendship system associated with the seedlings. The player will be able to get closer with their seedlings which will result in special abilities and stat increases! While the seedling is still planted it stores its friendship level with the player in the pot script. Then when it hatches the friendship points are passed along to the seedling’s new overworld node.
Seedling AI
After the seedlings hatch we wanted them to be able to interact with the player and bring the nursery to life! For this to work they needed to be able to move around, be picked up, and petted by the player. In order to do this I utilized timers and functions instead of a standard state machine. Every x amount of minutes the seedlings will change their current action. When the timer times out it will randomly choose one of the functions Wander() , Sit() or Stand() . And when the player pets the seedling, it will call the Petted() function. This Petted function will randomly choose to increase or not increase its friendship level.
Soil crafting system
I also coded the soil creator machine. This machine is basically a crafting system in disguise so coding it wasn't too difficult. The code just needed to take into account the ingredients the player chooses and loop through them to see if they match any of the recipes in its database. If it finds a match it will dispense a new bag of soil, if it doesn't find any matches it will return the clumps of unused soil. These bags of soil are only used for growing the seedlings.
And that's (about almost) everything I did this month. There are still some loose ends to tie up and many bug fixes for me to get back to! ✌️
✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵✨🌵
Now that the nursery is complete, we’ll continue working on the main storyline. Our focus will be the next area, the grassland, with new characters, story, mechanics, and more. We hope to see you in the next one!👋
0 comments