Welcome to Timber Trouble

This game has been made as a submission for the Learn You A Game Jam hosted by the one n' only CaptainCoder!

The Theme of the Jam was You Are The Monster

Now you play as the monster, controller of nature, the Demon Lord of the Forest who prevents the mighty humans from deforestation and hinders their advancements!


Plant trees, summon storms and let all mayhem loose!


Controls : Click n' Place

Our Team : imTanik4gi

Bugs :

The LevelManager script seems to have malfunctioned. The next level button just replays the level. Reload the page and select a different level to play other Levels.

Devlog: Timber Trouble

Day 1: The game jam has officially started, and our three-person team (me, Tani; Jason, also known as k4gi; and A2theDre) is filled with a mix of nervousness and excitement. As beginners, we know we have a lot to learn, but we're ready to take on the challenge. After some brainstorming, we decide on a game concept inspired by Plants vs. Zombies, fitting the theme of the jam: "You are the Monster." Our game will let players embody the guardian tree of the forest, or rather, the demon lord of the forest, defending against woodcutters and humans who threaten the ecosystem. I dive into Godot, our chosen game engine. This was my first time using Godot and I was nervous. I started working on a basic prototype of the grid system. Once again, the only experience I had under my belt was making 2D platformers in Unity by following tutorials. I had never once ventured out of tutorials and basic player movement. This was an absolute first for me on many levels. My first game jam, first time on Godot, first time with other people, and first time having to finish a project. I get to work and start messing around with the engine, I soon figure out and plan the basic grid system and how I want to go about implementing it. Although I encounter some hurdles with implementing pathfinding, we end up scratching that part and not using it in the end. Talk about wasted effort! But I managed to dabble into aStar pathfinding and get a hold of the concept, so it's a win. Learning new things! Yay! I end the day by downloading some placeholder textures to get a feel for what the player will be looking at,

Day 2: Jason impresses us all by creating a prototype enemy with a sprite and animations. Meanwhile, I focus on developing the base EnemyData class, which will serve as the foundation for all enemy types in the game. Excitement builds as we see our game taking shape. I also create my own enemy character, taking on the responsibility of designing the grid system and enemy mechanics. In the meantime, Jason develops an addon for taking screenshots during development, making our lives easier. Unfortunately, we haven't heard much from Dre yet. On the art side, I experiment with creating a tiling grass texture to use on the grid. It's my first foray into pixel art, and I'm thrilled to learn something new. 

Days 3-5: During these three days, I make significant progress by completing the primitive enemy and base player nodes. I add attack damage and cooldowns to the enemy, incorporating animations and timing the attacks to match. Refactoring and testing become part of my routine, and I add damage animations and small tweens to make the enemies come alive. I also focus on synchronizing the effects with the animations. Meanwhile, Jason tackles the abilities and UI, making remarkable progress. He creates buttons for planting plants and summoning storms, implements damage functions, and adds new UI layers to enhance the project. At this point, I finally finish the enemy base class. Unexpectedly, Dre decides to leave the team, throwing us a curveball and making the challenge even more difficult for me and Jason. Despite this setback, we persevere and spend these three days finalizing the enemy class and working on the ability system. 

Day 6: No progress was made. Disaster had struck as all the overworking and sleepless nights got to me. I suffered from 104deg C fever and Jason had some urgent work to cater to. The day was spent on my bed and on my meds. I had no time for further development. Fortunately, I got back to better health and made a speedy recovery to start work the next day. Take this as a warning and don't overwork yourself! Especially don't skip sleep!

Day 7:  To give our game more visual flair, I create a primitive death animation using tweens for the player-placed plants. Jason continues his work on the thunderstorm ability, ironing out bugs and making improvements. I also focus on designing sprites and animations for new enemy characters, putting extra effort into making them look good and naturalFeeling that the previous animation system isn't cutting it, I decide to switch to the AnimationTree in Godot. The day is spent porting everything over, encountering some hurdles due to my previous implementation. Thankfully, Jason comes to the rescue, and together we manage to get everything working smoothly. I also address some bugs in the system, while Jason takes care of fixing the thunderstorm ability, which is now functioning well. 

Day 8: A significant breakthrough occurs on this day. With the enemy class finalized, we introduce a new enemy to the game. I eagerly create the sprites and animations, excited to see everything come together seamlessly (It did not come together seamlessly). Afterwards, I work on essential polish, such as highlighting tiles on the grid and refactoring all abilities into a base ability data script. I also fix issues related to the organization and structure of various nodes and scenes. The day revolves around organizing and refactoring, and I even find time to add another new enemy. Meanwhile, Jason starts working on the UI. 

Day 9: Jason has already made progress on the abilities, pause menu, and a new plant. However, with limited time remaining, we realize we won't be able to complete everything we had planned. The pressure mounts as we struggle to establish the basic game loop with only one day left in the jam. I reflect on the valuable lesson of not overestimating what we can achieve and the importance of effective planning. Jason shifts his focus to adding a new theme and making everything visually appealing. Just when things seem to be moving forward, disaster strikes. GitHub malfunctions, leading to the deletion and corruption of all our scenes and data. Determined not to give up, I salvage what I can from older commits, manually retype the corrupted scenes, and painstakingly fix all dependencies through code.  Miraculously, I manage to bring everything back to where it was before, but this setback costs us a significant amount of time. The rest of the day is spent fixing the broken scenes and refactoring. 

Day 10: The final day arrives with less than 24 hours until submission. Panic sets in as we realize how much work is left. I dive into making a win menu, resolving dependencies from the previous day's chaos, and adding sounds to the game. Working with sounds in Godot is a new skill I acquire during this crunch time, as I discover how crucial audio is for immersing players in the game world. I update the base plant, creating new sprites and animations. Since Jason is asleep due to the time difference, I decide to pull an all-nighter. I add sounds to enemies, ambience, and UI elements, striving to bring the game to life. While waiting for Jason to work on the menus when he wakes up, I fix crucial scene dependencies and test exporting a web build, uncovering further file corruptions that I rectify. With just over five hours remaining, anxiety builds. I work like a machine, implementing death animations, adding a new enemy, and applying more polish. Finally, I update the main guardian tree sprite with a freshly made one. I create a main menu template for Jason to build upon and design different stages with varying resources. With less than an hour left, I write this devlog, having just finished finalizing the itch.io page. While I wait for Jason to complete the menus, I'm confident in his abilities, knowing he's a reliable teammate. Now, I publish this blog chronicling our journey creating Timber Trouble. 

Throughout this game jam, I've acquired a wealth of knowledge and skills. I've learned the importance of teamwork, version control management, project planning, and project management. Working with Godot and GDScript has expanded my understanding of game development, and I've delved into new territories such as pixel art, sound design, basic animations, and mechanics. The experience has shown me that hands-on learning provides tangible knowledge that surpasses what can be gained from studying alone. As our devlog comes to an end, I'm grateful to CaptainCoder for hosting the jam and to my team for pushing through the challenges and to you, the reader. We've had tons of fun, although I'm pretty sure a few of my hairs turned white in the process. Timber Trouble may be an abomination of sorts, but I hope players will still find enjoyment in the game we've crafted. There's still so much more to learn, and I'm excited for what lies ahead.

Some Things That I've Learnt

  • Godot 2D (3D wasn't compatible with my PC)
  • GDScript
  • Pixel Art
  • Animation
  • State Machines
  • Completing a Project
  • How not to over scope
  • Project Management
  • Basic SFX and Music
  • Version Control
  • How to deal with merge conflicts
  • Working with a team
  • All sorts of different Godot things.

All in all, lots of things were learnt. It was my first experience developing with someone else. And utilising and developing using a new engine is also a vast and fun experience, though it can be frustrating at times when you realise that something you spent hours on is already built into the engine and can be used with the click of a button.

To me, the game developer I was 10 days ago would look up to the game developer I am today. As funny as it sounds, it just is the level to which I've learnt and improved. This might not be the best game in the Jam, but it took one heck of a journey to make it.


Comments

Log in with itch.io to leave a comment.

(+1)

Esta muy bien hecho pero ( esto no es hate ) me parece que el tema está puesto muy superficialmente en el juego. Mucha suerte en la game jam :D

(2 edits)

Thank you for reviewing! About the issue with the theme, we know. The idea for us was to have a little dialogue in there, portray a story and thus realize the theme but unfortunately due to time constraints we were unable to do that. But the jam was all about learning new things and I can guarantee that we've learned a lot. Therefore, it is already a win in my eyes. Thank you for playing and leaving a comment! Have a great day!