Blog‎ > ‎

Protect Your Plant

posted Aug 8, 2019, 12:56 PM by Jacob Evans

I don't think I've mentioned that I've been working on a video game for the last year. It's a long way from finished, and will be for a long time, but it’s made out of lots of other, smaller, finished pieces I want to be able to share, so I thought I’d put together a video to show the progress I’ve made so far. It turned into a little more of a trailer then I’d planned, but I think it gets the idea across.

It's called Protect Your Plant and the general premise is this: you are a small robot that carries around a plant and makes sure it gets enough sunlight, water, and nutrients. It’s the end of the world and everyone else is acting accordingly.

Since the video is kind of silly, here’s a little more thorough list of features. Normally I’d be the art/writing guy for a project like this, but for Protect Your Plant, I’m doing everything. Because of that, I have a tendency to declare ‘good enough’ and move on just to keep things going, so some of the features have fun caveats:

  • Multiple Levels and in-game ‘portals’ – these work fine, I plan to add a loading screen someday.

  • There’s a dialogue tree for NPC interactions and observable objects. I currently write all the dialogue manually in json files. I may make a tool to format them properly in the future. The tree also manages the player’s completed choices and major events. It’s borrowed from an old demo, but I had to rewrite the code pretty heavily to make it work with the newer version of the engine.

  • There’s a save/load function. It’s limited to one save slot but works reliably from each level. You can easily edit the save file, but I don’t really consider that to be a problem.

  • Gameplay been the main focus for the last few months. The idea is that you track the levels of sunlight, water, and nutrients to make sure they fall within the optimal range for your plant. You gain or lose leaves based on how well you do. When you run out of leaves, the plant is dead.

  • There’s only one plant option now, but I’ve been building everything so that adding multiple plants should fit in pretty easily later on. That way, the plant you choose at the beginning of the game will add different constraints (a cactus will need lots of sun, but very little water, while a shade plant may need the opposite, which would change how the player would traverse the same map on each playthrough).

  • Sunlight varies in intensity throughout the maps and at different times of day. Direct sunlight fills the bar faster, but increases the temperature and dries your plant out. The sun meter resets at the end of the day.

  • Maintaining the right amount of water is important, but gaining it also leaches out some of your fertilizer. Water depletes slowly over time, and faster if you’re near heat or in direct sunlight. Water can come from many sources (rain, leaking pipes, smart-sinks you can trick into overflowing, etc)

  • Improper amounts of fertilizer can either damage the plant and remove leaves, or just stunt it, preventing it from gaining leaves if everything else goes well. The game is currently tracking each of the big three nutrients (N, P, and K) so that later gameplay can include a pseudo-crafting system where you need to scavenge different sources of each.

  • Every five days (we’re using metric weeks in here) the game checks if the levels for all stats are good or not, and adds or removes leaves.

  • There’s a day night cycle, and the temperature climbs and drops throughout the day. Being in direct sunlight, or near heat sources will increase it, and other areas, like basements, will be cooler. I plan to eventually add temperatures as a hazard (too much heat would wilt a plant, or a late-night frost would threaten to damage it).

  • Speaking of hazards, I just got these working – this world is at the edge of a Windup Girl style biological apocalypse, and if you stray too close to invasive bugs or toxic fungal blight, your plant can become infested. The more contact you have with these hazards, or the longer they linger, the more damage they do to your plant. Scavenged fungicide/insecticide will kill the infestation, and provide temporary immunity, but make you dangerous to some other critters, like bees. (Bees not yet included.)

  • Weather: In addition to the changing temperature, the game currently randomizes the chance of rain, the intensity of the storm, and the chance that it will stop. In the future I plan to add temperature extremes, and more damaging weather like hail that will force the player to take shelter.

  • Time: Everything (time changes, lighting changes, temperature changes, the placement of the sunlight, calculations for the weather) happens on the hour. Originally I had planned to smooth this out, transition the sun from clicking from position to position to sliding along a track. That doesn’t work well with how the light works outside, so I’m declaring this to be an abstraction point in my little simulation, and going all the way with it. The hours will be longer than in the video, however. I’d just go insane trying to test anything if they ran any slower.

In the next year, I plan to focus on refining the features I have, and heavily on making more content, especially levels and NPCs. I always loved videogames for their crowded little clockwork worlds, and I want this city to feel alive with activity and individual stories.

Gameplay-wise, this thing may stray closer to a walking-simulator than an RPG. Besides the primary mechanics of caring for the plant, there will hopefully be some puzzles and some simple ‘stealth’/avoidance of enemies, but the real focus will be on exploration and as many little stories as I can make for it.

Thank you for reading this/watching the video, I’m really glad to get to share this project with you all.