Saturday, November 25, 2023

Faire Hollow Dev Log #3 - Day / Night Cycle

I hope everyone had a great Thanksgiving!

With the inventory system now firmly behind me, I'm working on some new visual functionality that I've been saving. This feels like a treat: by alternating between more difficult tasks like an inventory system and more exciting visual elements, I keep my motivation high!

I've put together a working day/night cycle, with environmental details like nature sounds (birds in a forest, crickets at night), darkening sky, sunset lighting, moonlight lighting, and a lamp on the building that turns on at dusk. I also added a flashlight for the player, because my idea is that there will be certain areas of the map that are quite dark that you need to explore at night. That led to an interesting predicament: how do you handle shadows when it's a 2D world?

In Godot there's a node called a 2D Light Occluder, which enables you to cast a shadow from a directional 2D light. The flashlight is the perfect use case for this. The trees made it a bit difficult, however, because I wanted the shadow to be cast around the trunk when you're lookomg left and right, but then (using a script) change the behavior of the shadow when you're looking up or down. I paired this with a transparency layer when the player walks behind the branches, and behind the building. I'll leave it to you to tell me how this looks!

I sped up the day/night cycle so you can see dusk approaching in this short demo video:

Tuesday, November 21, 2023

Faire Hollow Dev Log #2 - Inventory Lessons Learned

I'm redoing the inventory system, and in the process I learned a valuable lesson about planning.

When I started working on the inventory, I thought I would use the "drag and drop" built-in functionality of Godot 4. I was able to get that set up quickly and without much trouble, but I didn't take the time to think about what dragging would actually "do". I had a vague idea: I wanted to be able to drag an entire stack of items, and then ... maybe single-click to select a single item? But what about right-clicking? What about right-click-and-drag?

Turns out this isn't nearly as simple to handle as I thought. For one, there is no built-in functionality to handle right-click-and-drag in Godot. I posted on reddit for help, and got a really fantastic answer for how I could hack together a way to simulate a right-click-and-drag. But it was really fragile, and I soon realized that if I wanted to support controllers (which I'm starting to do already), I would end up rewriting the whole thing anyway.


And so back to my lesson learned. It turns out that dragging-and-dropping isn't really the right way to think about transferring items in an RPG inventory. Instead, a single click with the left mouse or a single click with the right mouse is the most intuitive way and simplest way to handle inventory transfer in my game. I looked at Stardew to see how he handles it, and sure enough, I was overcomplicating it. And it was all because I didn't take the time to plan the functionality first.

As solo developers, it is easy to start going down a path without anyone stopping you and asking: "why?" That is both the curse and the blessing of solo development. It's a blessing when it leads to experimentation, rapid prototyping, and ultra-quick learning. But it is a curse when it causes me to waste a week squashing bugs and adding on layers of spaghetti code -- when all I had to do was choose the most simple option of all: a single click!

Monday, November 20, 2023

Welcome to the Faire Hollow Dev Log!

Welcome to the dev log for Faire Hollow, a retro 2D RPG and Renaissance Faire management simulator, by indie solo developer alMoo (that's me!).

I'm using Godot 4 to make this game. I've been teaching myself using tutorials and watching YouTube videos. I've used some other game engines before to make smaller games, but this is my most ambitious project to date.

Godot truly makes game development so intuitive. I've had over 25 years of "programming" experience, but that has been mostly web development -focused. Even though I'm just two months in to building Faire Hollow in Godot, the engine makes it feel like I'm progressing faster than I would have ever thought possible! 

As a dad of 3 young kids under 9, and as someone with a day job, I feel like I'm always negotiating for time to spend working on "my game". When I do finally get the time to sit down and work on it, I've found that I want to spend a lot of time revisiting systems and functionality that I already built because I've learned so much in the past weeks that I want to redo my work, improve and refactor code, streamline components, etc.

This is a "retro" 2D pixel art game, and I've been learning a lot about pixel art, but my progress there has definitely been a bit slower. Luckily I've found an incredible set of RPG pixel art assets that I'm incorporating into the game, and may likely use with very few modifications all the way to launch. I love this art style, and I will be sure to share more about these assets as I begin to post screenshots and regular updates.

For now I am wrapping up a particularly challenging bedtime with the two-year-old! ❤️

Life is a constant quest for balance -- and while family is absolutely always first, I know that my passion for creating something meaningful that gives joy to others will motivate me to find a fair balance: time spent creating is what fuels me to be the best version of myself!

Here is a very short and sweet demo video of Faire Hollow -- the first of many!

Two important notes:

Yes, the main character is not wearing any clothes 😊... I'm going to be implementing what's called a "paper doll system", where I layer on different types of clothing in different colors and styles depending on the scene. This is on the (very, very long) to-do list, but it is not a priority right now!

Yes, there is a lot of bread lying around on the ground. I'm testing adding items to the player's inventory when the player walks up to an item on the ground. (I might have gotten a tad bit carried away...)


Faire Hollow Dev Log #11 - Official Trailer

I am thrilled to share the official trailer for Faire Hollow! This has been a month-long effort to create just the right combination and var...