1. Palm Paradise Garden
  2. News
  3. Devlog 1: Circle of Life

Devlog 1: Circle of Life

[h2]A New Beginning[/h2]

This devlog is the first in a monthly series to keep you up to date with progress on the game prior to release. Since the game was announced, I've finished implementing the core game loop. Plants now have a lifecycle: they grow, flower and die of old age or neglect. To support this, I implemented seasons and watering.

[h2]Seasons Change[/h2]

Before programming the plants' lifecycle system, I first needed to implement in-game time. In the plant world, that meant creating a seasonal cycle. Not all parts of the world have the same seasons, and being in northern or southern hemispheres makes a massive difference too.



To solve this, I decided to display seasons to the player as a North Europe four season cycle (i.e. Spring, Summer, Autumn, Winter). I made the areas outside the greenhouse be more than just scenery, by having them change to reflect the current season. However, inside the climate controlled greenhouse, the plants react only to the changing of the length of the day throughout the year. In this way, plants still react realistically to seasons, while the player has an easy visual way to tell what season it currently is.

[h2]Flower Power[/h2]

To test the seasons worked as expected, I next implemented flowering. Plants know the current time of year and what time they should be producing flowers, so it was easy to simply make flowers appear on each plant at the correct times.

I also linked flowering to plant happiness. The happier a plant is, the more flowers it produces.

Happiness in turn comes from if the plant is in a suitable location - Does it have the right amount of sunlight/shade, right soil conditions, enough space for its roots and branches to spread out? And as well, does it have enough water.

This is actually one of the most complex parts of the game, both for players and for me as the developer to code. There are a lot of factors in the background that go into producing a single "happiness score", and it will be one of the main focuses for the next round of testing and feedback.

[h2]Growing Strong[/h2]

Happiness is also linked to plant growth. All plants have a level of maturity, from a tiny sprout, and then a sapling, all the way up to being fully grown. If a plant is not happy, it will take longer to reach its fully grown size.



Whilst in the real world, this is only true for some plants, I decided for now it's too complex to try and simulate how some plants just keep on growing without ever stopping.

[h2]Getting Wet[/h2]

Plants need watering, but they also have preferences for how wet or dry the soil in which they are planted is. Some like swampy waterlogged soil, and others prefer free-draining or dryer soil conditions.

This was relatively easy to code, but the big challenge here was how to visualise water uptake by plants and water levels in the soil. Not only for the sake of the plants, but also to allow players to see where they've watered and where they haven't!

I settled on changing the colour of the underlying soil based on wetness. There is a long, highly technical story about how I did this (writing custom shaders... shudders...) but I'm really pleased with the result. It's really satisfying in-game to wave the watering can around and make the soil wet again. The only problem I have is that the colour differences in the soil can be really subtle at times. A bit too subtle, to the point where often I can't tell where a plant has been sucking up not enough water. Nor which shades of brown equal what exact water saturation levels.



For the next update, to fix this, I will probably add some extra indicators to each plant to show how much water it needs when players are watering. As well I want to add some cool water-spray particles to give that extra sense of really watering the soil.

[h2]To The End[/h2]

I also implemented plant death. This can come from inevitable old age. But it can also come from plants being either poorly located, and/or neglected. Once again, I linked neglect to plant happiness. I gave each plant an "Adaptability" score for how well it can handle things being not quite right. Some plants may be able to deal better, for example, with not having enough sunlight, whilst others may be particularly sensitive to lack of water. And so on.

If any of the problems a plant has are bad enough that they exceed the plant's Adaptability, then the plant's unhappiness starts to degrade plant health. Health is designed to fall slowly over time, so players still have a chance to intervene and rescue a plant (e.g. by moving it or watering it, depending on the cause of unhappiness). But if plant health falls too low, the plant dies.



This is another area I will be looking to try and balance in the coming weeks. I want the game to be realistic enough that bad decisions have consequences. But not so harsh that the player is running around constantly moving and watering plants just to try and keep everything from not dying.

As well, I am considering if the game needs different difficulty settings. I am currently leaning towards having "realistic hard" mode, an easy and forgiving "relaxed" mode, and something in-between the two as the default setting.

[h2]Pop Up Plants[/h2]

One thing I'm not so satisfied with is how flowers, and especially plants grow. Currently each plant has a set of 3D models representing different growth periods, and when the time comes to go from one to the other, one model simply pops out of existence and the next one appears. This doesn't look great and is something I plan to experiment with in the coming weeks.

As well, in the next couple of weeks, I will start the process of adding in more plants to the game, with their stats based on their real life counterparts. This will be tricky as I will have to balance accuracy / closeness to reality with finding a set of plants that compliment and contrast with each other from a gameplay / fun perspective. And at the same time I need to make sure I don't create too much work for myself to make or source all the 3D models needed not only for the plants themselves, but also their juvenile versions plus their flowers and fruits. Not to mention models for any dead plants (currently they just go brown upon death).

[h2]What's Next[/h2]

More generally, I will be working towards polishing the game, both visually and in terms of user experience, over the next month or so. My aim is to have a demo ready for release by the start of April, which will help with both testing the game and promoting it.

And as always, if you have any questions or thoughts, please do say in the comments below!