Seeds of Tomorrow: Game Dev Journal

Romain Mouillard
5 min readDec 8, 2023

--

Last month marked an important step for “Seeds of Tomorrow,” with the establishment of technical foundations using Godot. This initial phase lays the necessary groundwork for future progress, aiming to make part of the prologue playable within one to two months. In parallel, November also saw the launch of the game’s website and the inauguration of its presence on various social networks.

Let’s review the big things with some insights and visuals!

Game Development

2D Isometric Environment: I started with positioning decor elements in a 2D isometric environment, using hand-drawn scenery. The first task was setting up walls with collision management and depth positioning, which really brought a 3D depth to the flat 2D elements.

First Trials of Light, Shadows, and Normals: Ambient lighting was a major focus, especially for the game’s initial indoor zone. My first tests with lighting and shadows, coupled with the use of normal maps and CanvasTextures in Godot, significantly enhanced the sense of volume in the decor elements

Some lights, shadows and a normal map are all it takes to promote a flat hand-drawn shelve to 3D :D

Visibility Behind Walls: In the fixed camera isometric environment, hiding areas behind walls was a challenge. I experimented with an X-ray effect to maintain visibility around the character when he his obscured by a wall.

Nothing will hide behind these walls!
Nothing will hide behind these walls!

Interactions with Decor Elements: I developed a flexible interaction system. This involved creating predefined interaction types like displaying messages, interacting with containers, and picking up items, which I then applied to various decor elements across the game world. This approach centralized the behavior of each interaction type while allowing for diverse applications.

Inventory Management: The inventory system is now fully operational. It includes managing items, organizing them via drag-and-drop, as well as item pickup, drop-off, and container interactions. This system will play a crucial role in the first quest, where players need to find and use specific items.

Translation Management: To preempt the challenges of late translation, the game is already bilingual, supporting both English and French, with an in-game language switch option. This is made possible by using GetText, which Godot implements.

Code Structure: I spent significant time understanding the best way to structure a project in Godot, focusing on signal management and communication strategies between components. The aim was to establish a solid framework for communication between the game world elements and the user interfaces.

Trying to stay organized before creating a monster or hard-wired nodes and scripts… 😅

Failure to Introduce a GIF Recorder: I attempted to integrate a GIF recorder in the game using a Godot addon. Unfortunately, the addon was compatible only with Godot 3, and adapting it to Godot 4 turned out to be quite problematic. Despite a full day’s effort, the feature was too buggy. I decided to revert to using external tools like Quicktime for video and Gifski for GIF conversion. While there’s no in-game GIF capture, the process taught me a lot about managing extensions in Godot!

Design and Visual Art

UI and Visual Themes: I’ve put together a first draft of the game’s graphical interface, prioritizing functionality over aesthetics for now. This includes setting up the main interfaces like inventory and interaction hints. It’s a bit basic and lacks flair at the moment, but I plan to add more charm and character to it as we go along.

The first item of the game is of course a crowbar.

Keyboard, Mouse, and Controller Management: I’ve been working on making the UI friendly for both keyboard/mouse and controller inputs. The system now shows shortcut keys on buttons, a feature that will be especially handy when we introduce custom control mapping next year. It’s all about making the game more accessible and enjoyable, regardless of the player’s preferred control method.

Character Animation: Development has been my main focus, but I’ve also made strides in design, particularly with character animation. I’ve created the first set of walking and idle animations for male characters. The strategy here is to start with a basic body animation in various skin colors and then layer on different clothes and accessories to give each character a unique look. For efficiency, I’ve only animated the four cardinal directions for now. Diagonal animations might be something I’ll explore later, but they’re not on the immediate horizon.

You’ll get clothes soon little boy

Support and Social Networks

November was bustling with communication activities. I launched the Seeds of Tomorrow website and set up our presence on social media platforms.

Opening these channels was a big deal for the project. It brought more structure to ideas that were previously quite scattered and diverse. The community around the game is just starting to grow. It’s small right now, but I’m really looking forward to seeing it expand and become more vibrant as we continue developing the game.

Next Steps

Looking towards the final weeks of the year, I’m laser-focused on bringing the “Seeds of Tomorrow” prologue to life in a playable demo. Coming up next, I’ll dive deeper into developing the design and atmosphere of the starting area. I’m also drafting a quest system and shaping interactions with NPCs, aiming to add more depth and realism to the game.

These are crucial steps to ensure a rich, captivating gaming experience, and I can’t wait to unveil these developments to you!

Thanks for reading! 🎉

If you enjoyed this article, feel free to check out my other content:
Showcases and updates on my games on my YouTube Channel.
Take a look at my games and enjoy a bit of what each world has to offer.

Stay tuned for more, and feel free to leave any feedback or questions in the comments. Happy coding!

--

--

Romain Mouillard
Romain Mouillard

Written by Romain Mouillard

Indie Game Developer / Fullstack Engineer / Ex-Head of Software @ Meero

No responses yet