Art & tech

The plant took longer than everything else combined

One plant, modelled properly, cost me more time than the world, the vehicles and the save system put together. Here is where it went.

Building one photorealistic plant that responds to light, air, water and feed took longer than every other system in the game combined. Most of that time went into things nobody will ever see: how light actually falls on a leaf, and how to draw thousands of them without the frame rate collapsing.

  • A responsive plant is a different problem from an animated one, and much more expensive.
  • Most of the time went into light accuracy and render cost, not modelling.
  • Deciding what not to simulate took longest and produced the least code.
  • The frame budget was fixed before starting and never moved. That was the right call.

Why it is the hard part

A plant in most games is a model with a growth animation. You place it, a timer runs, it gets bigger, and at some point it is harvestable. That is a day of work.

A plant that responds is a different problem. It has to know how much light is landing on it, which means the light has to be real rather than a number attached to a lamp. It has to react to that over time, which means the reaction has to be modelled rather than keyframed. And every leaf doing this has to be drawn sixty times a second alongside a few hundred of its neighbours.

Any one of those is manageable. Together they are the reason this took months.

Where the time actually went

Not where I expected. I assumed the modelling and texturing would dominate. It did not. The three expensive things were these.

  • Getting light right. Distance, angle, and whatever is between the lamp and the leaf. The first version used the lamp wattage, which is wrong in a way that stays invisible until you put two lamps at different heights and get the same result from both.
  • Making it cheap enough to draw. A correct plant that runs at nineteen frames per second is not a feature. Most of the art time went into making the same plant render at a fraction of the cost, and almost none of that work is visible.
  • Deciding what not to simulate. This took the longest and produced the least code. Every system I did not build was a decision I had to be confident about.

The performance rule I ended up with

I set a frame budget before starting and refused to move it. Not a target, a budget. The plants get a fixed slice of the frame, and if a change does not fit, the change does not ship.

This was uncomfortable several times and correct every time. The alternative, build it beautifully and optimise later, is how projects end up shipping at thirty frames per second and calling it a stylistic choice.

Was it worth it

Ask me after launch. What I can say now is that the moment it started working, the game changed. Walking into a room and being able to tell which plant is unhappy before anything on screen says so is the whole thing I was trying to build. It only works because none of it is faked.

If I had cheated any part of it, I would have reached that moment months earlier and it would not have felt like anything.

Questions I get asked

How many plants can you have on screen?
Enough for a full room without the budget slipping. I am not quoting a number until it holds on the lowest machine I am targeting.
Is the lighting physically accurate?
Accurate enough that the same lamp at two heights gives you two different results, which is the part that matters for play. It is not a scientific instrument.
Did you use a plant generator?
For the base geometry, yes. Everything about how it responds is mine.
Steam page coming

I will tell you when it is playable

I send mail when there is something real to show. No schedule, no marketing, and I am the only one who ever writes it.