Project developement history


Hello All!

The Forestation was made for Improve Your Game Jam 28, so this post will cover everything that happend while developing it. I didn't create devlog at the time of developing the game. The game was unplayable for long time and when it finally was I decided to polish it a bit before making it public. English is not my native language so beware of possible language abominations ;)

This project was originally started as entry to Trijam #227. The theme was "trees" so I wanted to create a game where you controll trees and the opposite force are lumberjacks that try to cut trees down. I also aimed for RTS game since I did not ever create one and I like games of this genere. Quickly after starting the developement I realised that it is way out of reach to implement everything that I considered basic in 3 hours (please, don't ask me what I was thinking before that). I did all graphics and sounds in less than 1.5 hour, but after stumbling upon pathfinding I knew I'll need more time. So I spent 3 days programming game mechanics and designing UI but still was far from over. Then I decided that I'll make the project entry for Improve Your Game Jam 28. Here is what has been done to that point:

  • Basic menu with splash art screen
  • Can play on preset map
  • Single whisp spawns that player can control
  • Lumbermill is spawned that spawns lumberjacks over time
  • Lumberjacks travel to random places on map
  • Lumberjacks attack whisp once detected (has to be in detection range)
  • In game UI supports selected unit stats display
  • Can move camera by placing cursor near screen edges

Also, the first screen applied to post presents the gameplay from that time.

Following sections describe what has been done during each day of developement from 24 July (Day 1) to 3 August (Day 11)

Day 1:

As the developement of "The Forestation" did not continue immediately after those initial 3 days I needed to plan my dev strategy. I concidered making the whole project from zero since I did not remembered clearly all the code logic, and saw flaws that could be fixed by implementing it in different way. However in the end I decided to continue working on project in its current state because I knew there will be much more things during developement that I cannot predict now, so it is pointless to implement everything again already since I consider this project a prototype. So I spent much time of day 1 recalling code logic. While doing it I only improved and optimized it a bit without doing any drastic logic changes. The most important change was probably organizing Unit properties in code. Also I planned what will be done in the next days.

Day 2:

First real changes were made this day. Here is what has been done:

  • Implemented rectangular selection -  only single unit selected is supported, however I found it kind of bad to select units by clicking them. Drawing a rectangle is a more flexible solution, so better do it quick.
  • Reimplemented base entity class, so that position is now in the middle of all entities instead of being its top left corner. This will allow to scale units so they are larger visually while staying the same logically. This also allows easy entity rotation.

I also worked on abilities in UI panel, but has not finished. Left it for the next day.

Day 3:

I started with a warmup today, which was implementing unit rotation on move. It was an easy task considering the base class remaster from the day before. Then I went for the todays hard stuff which was creating interactable UI buttons for tree planting with whisp. I ended up with a working version of ordering whisp to plant any tree (transform into it). In the future I will make whisp first transform into saplings that grow slowly instead of trees growing immediately but I decided to leave it as it is for now (I ended up never implementing this anyway :p). There are some bugs in current version, but for now it will do. I also added a cancel button in the UI, so after selecting tree planting it can still be canceled.

Next on list is adding economy. To finish the day I added current chlorophyll and time display in the bottom of the UI. I also added cost to all trees.

Day 4:

Things that were done today:

  • Plane trees now generate 10 chlorophyll every 2 seconds. This amout can be increased by buying income upgrade (works for single tree).
  • Plane tree also allows now to create new whisps which allow to grow new trees.
  • Pine tree shoots needles at enemies.
  • Fixed some crashes, added some universal code tools.
  • Added tooltip that displays description and cost of hovered ability.

Game is finally semi-playable. There are still bugs to fix for sure, and of course the whole project is far from finished, but I'm satisfied with what has been done to this point.

Day 5, 6, 7, 8:

Unfortunately I've had a relocation to another city planned for this period of time so this days were spent packing stuff, transporting and unpacking at new place. No progress was made during that time.

Day 9:

Finally can continue the developement of the project. I've got a large list of things to do. For now I'll prioritize implementing gameplay elements since I want to make the mechanics as good as possible and make the game fun to play. Here are things that I did this day:

  • Plane and Pine trees are now also 2x2 tiles large just as the oak is (before they were 1x1). I thought this will be a good idea to make them larger as trees should be larger that lumberjacks. This will also increase the potential space management mechanic which I really enjoy.
  • Added a "cut down" ability for all trees. This allows to remove any tree at any time instantly. I decided it is necessary since barricading in a base is expected to be a substantial gameplay mechanic, so after barricading the only option of getting out without the "cut down" mechanic would be to wait for lumberjacks to cut the blocking trees. That would be kind of frustrating, not a good idea.
  • I added announcement text that display game events. With that jumberjack improvements were added, that happen in certain time intervals and make lumberjacks have more hp, more damage or spawn faster - this is chosen randomly. The type of improvement is displayed via announcement text.
  • Added initial hide time during which lumberjacks do not spawn.
  • Added 3 difficulty levels that differ in initial lumberjack hp and damage, lumberjack upgrade interval, initial hide time and starting chlorophyll.
  • Created new small map and added large map but left it empty for now.
  • Did some drastic balance changes with the most drastic being drastic cost decrease for oak tree.
  • Added lose and win conditions

Day 10:

Things done today:

  • Selection now prioritize whisps - usually the are the desired selection target. Trees are also larger and easier to select by clicking.
  • Designed large map variant
  • Made difficulty and map variant selectable from main menu before starting game.
  • Added game over display that shows statistics like lumberjacks killed and units lost.

Day 11:

I did almost everything that I wanted to do before publishing the game (with the exception of remaking lumberjack and stone visuals). So today I added following things:

  • Cost is now checked when clicking the ability button in ui instead of when clicking on empty space on map with tree to plant already selected.
  • Added sound playing. I some sounds myself, but those that I thought were too bad were replaced with free ones that I downloaded from the internet.
  • Added shortcuts for UI actions (1, 2, 3, 4, 5, 6 for abilities and Esc for cancel building.
  • Added rotation on lumberjack attack.
  • Remastered tree textures and UI icons

This is the last day of developement. I think that everything considered a must was implemented into the game. There are still some fun extra things like fog of war that I would wish to add, but that will have to wait. To finish this day I did some playtesting. During that I fixed some important bugs and crashes and tried my best to balance the game.

Sorry for the chaotic post, but it is late night in my timezone and I seriously need to sleep now. Thanks for reading and have a great day!

Get The Forestation

Leave a comment

Log in with itch.io to leave a comment.