Plant Boss is a game about collecting plants and attracting cool critters.
This web game was built with Clojurescript, Rum (a React library), and uses a finite state machine for the control logic.
The game you see here is a prototype. My goals for this project were to:
- build a usable web game
- make people smile
- keep the scope minimal so I could get to a usable game in less than two months
- practice cutting features while maintaining the core vision
I did a good job cutting features. It's easier to cut features when they can be added on later without affecting what you're building now.
For example, I initially had ideas for magical plants, water plants, desert plants. Eventually, I realized that I could divide the game up into connected spaces. I could start with an indoor room and later add a door that leads to the desert greenhouse or the outdoor garden, and so on. From then on, I happily chucked ideas into this "add a new space for it later" bucket. I no longer had to choose between an indoor plant game and a magical plants game. I just had to prioritize.
Some features that were put aside:
- plant care (watering, fertilizer, pruning, growing from seeds)
- placing plants in the space
- choosing pots
- selling plants
- a plant editor (I seriously looked into this! But whoa, a whole new project onto itself.)
Writing a design document from the get-go was super helpful. I base my design docs on the Race'n'Chase (predecessor to Grand Theft Auto) design document (pdf) from 1995.
One of my difficulties with my design document was my conflicting desires to describe what I intended to make now versus record all my ideas for later. I think there needs to be separate documents for these two intentions, basically a design document and a roadmap.
Persistence. There's no saving your game. =p When you reload the page, you start over.
The critters show up too regularly. Like Neko Atsume, I'd like the critters to stop showing up if you haven't touched the game in a while, as an incentive to come check in later, just like real nature.
The critters show up immediately. There's no mystery or discovery after the first minute because all of the critters have appeared. To keep things interesting, critters should only show up if there are certain plants in play.
The money keeps accumulating. How is this a problem?? It makes the game end quickly and without any difficult decisions.
Right now, money is "left" by critters. Once I change the critters to show up less frequently and only after recent activity, money will become something that is actually earned, not always available.
Music. I think every game needs music and sound effects. Something upbeat without being annoying.
What could have been better?
I definitely wasted time trying to make the game responsive. For this first version, I should've started with a fixed size and put off responsiveness until later.
Plants should grow! You'll see there's only one plant growing right now and it's quite unrealistically looping.
Growing the plants turned out to be a huge challenge. I had a little round cactus that grew over time simply by increasing its scale. But most plants don't grow in equal proportions. Scaling won't work for vines or leafy plants.
Animating everything! I would have loved to do more critters. And it would be great to animate the curtains and plants rustling in the wind. It would be especially tricky to animate the plants blowing in the wind but also make them grow over time. I might need a dozen growth sizes and an breeze animation for each of those. Whew!
Art. There's a bit of work to be done with the color palette. Heck, I'd consider an entirely different illustration style.
What's bothering me now is the dark brown for the window sill, bench top, and stairs. This dark color draws too much attention and creates undesirably dominant shapes. I'd like a subtle background that pushes the shapes of the plants forward.
What's up with the clock?
It's a debug tool. =) It advances time when clicked so I can check things without waiting for time to pass. I left it in because I think it could be something you can purchase in the game someday.
I'll circulate the game and see how it's received. Throughout this process, I've realized that even this extremely simple game needs at least a month or two of work (with my skills) before it could be sold. I don't know if that would be worth doing for me personally.
I'll be working on other projects for the next month but I can see myself making little critter animations for fun in my downtime.