#007 - It's Not Coming Out Today


Remember in the last devlog, where I said that 0.1.6 would be out no later than December 23rd?

Yeah, it's not coming out today.


This devlog is going to be a little different from the ones before it, and it may or may not mark a change in the type of content that I'm going to be covering in these from now on. Rather than focusing on a specific feature, I'm going to be focusing on a specific time period of development, in this case, starting with the release of 0.1.5, on December 5th, and talking about everything that's happened between then and now.

The thing is, a lot has happened over the last month. Just not a whole lot with this game, unfortunately.

I had finals, graduated college a week ago, and am in the process of celebrating Christmas three different times. All of this has taken quite a bit out of me, and the distance it's created between me and the game has admittedly wavered my confidence in the project. The Thanksgiving stuff was a sizable reason that 0.1.4 wasn't a very good patch, in my opinion.

I didn't work on Beaconfall much after 0.1.5 came out, since I needed to prioritize other things, as I'm sure you can guess by now. But I did do a few things, here and there. One of the things on the more immediate agenda was a small redesign of the trees.

They now look more vibrant and bushy - in other words, easier to paint. The short, thin lines of the needles present on the 0.1.5 trees violated some of the art rules I set for myself back in devlog #5, so I sought to correct that here by making the 'leaf' texture look a little more like a brushstroke.

At such an early stage of development I'm really not trying to prioritize looks so much, but I also would like to set a good precedent for how things should develop visually in the future, so that I don't shoot myself in the foot. I should really play around with the shaders more...

One of the things I alluded to way back in devlog #1 was a sound library I created to facilitate this game's audio. At the very beginning of development, I used OpenAL, and at the very beginning of development, I found out that the version of OpenAL I was using was actually proprietary. So, before the game's first release, in late October, I started work on a sound library called "fcal" (Free C++ Audio Library) which interfaces directly with Windows' core audio APIs to play sound. This library was (and still is) buggy, and 0.1.1 was mainly a patch to fix some immediate issues with fcal, rather than with Beaconfall itself.

I mention this now because one of the few other things I did prior to graduation was improve fcal again to facilitate a sound update for Beaconfall, which is what 0.1.6 is going to be.

Prior to this update, fcal only supported a handful of features - playing sounds, and adjusting their volumes and balances (how much the sound plays in one ear vs the other). After a long day of work, fcal now supports pitch augmentation, sound looping, and is overall a much better library to work with. There's still more that needs to be done, but all of the features I wanted to add in 0.1.6 are now possible.

For one, the footstep sounds I added back in 0.1.4 now function just how I want them to - as you get faster, the footstep sounds increase in rate, but get quieter and higher in pitch.

I also added a looping wind sound effect that plays louder the faster you're going.

Since this update isn't going to come out when I want it to, I might as well reveal the "secret feature" that I was (and still am) planning to add to 0.1.6 - music.


Music

Implementing music for this game seems a little stupid right now, I'll admit. Like, why would I prioritize music over adding more content to the game, and making it actually fun?

Well, the 0.1.x update line has been all about establishing the foundational systems necessary for Beaconfall's development, which include things I covered in previous devlogs like the world loop or static entity generation. I have a lot of plans for this game's actual content, but the systems required for this content to be implemented still aren't fully complete yet. I want to add much more diversity to the world, in terms of landscapes, biomes, flora, etc. But prior to 0.1.5 and the systems of static entity generation that were implemented in that update, I couldn't do that, as I didn't have any foundation for it. Now, I do.

0.1.6 intends to add this foundation for music. My current idea for how music is going to be implemented follows these rules:

  • Music will play infrequently, and randomly, during playtime. Similar to Minecraft - I want long moments of silence between tracks to make the game feel more contemplative.
  • Each song will be tagged with some sort of "tension" value - songs with lower tension will play during moments of lower immediate danger (i.e. the wall is slow and far away), and songs with higher tension will play during moments of higher immediate danger (i.e. the wall is rapidly approaching).
  • As for the music itself, I want the overall atmosphere of it to feel large and vast, to reflect the world you're in.

And... that's it. Since there's not a whole lot going on in the game at the moment, I don't have many interesting ideas regarding the game's soundtrack yet. I'm mainly just focused on getting stuff made for it. And that's the heart of the problem I've been having over the last couple of days.

Writing music is hard. For me, at least. It's not so much that I can't write a good song that fits the vibe of the game well enough, I'd venture to say I've already done that several times. The problem is getting a finished product, or even just a roadmap for a track, and then thinking, "Yeah, I can do better."

Perfectionism is a plague among artists, me included. No matter how many times I remind myself that the "perfect" track is unattainable, and even if it was it'd only be perfect for me and probably no one else, I still have a hard time meeting that threshold of 'good enough,' since good enough to me is still like 99% perfect. Despite having released a lot of stuff that I'm not really proud of anymore, my brain still seems to expect this from me, and it's the reason I haven't really released a finished song since June 2022.

I'll just have to wing it, I guess.


The Three Week Bug

With all of this being said, 0.1.6 has, at the very least, surpassed it's initial scope that I set for it when I finished 0.1.4 (which was to just have it focus on sound), and I've fixed quite a few issues from 0.1.5. As stated before, the trees conform to the visual style I'm going for a little better, but a pretty major issue with their generation has also been remedied.

I mentioned in the previous devlog that phantom glades - areas where trees would randomly appear and disappear between sector LODs - were a problem. They're not a problem anymore.


Now forests are actually as dense as they appear.

After three weeks of trying to figure out what was causing the asynchronicity of tree generation among different levels, I finally diagnosed and fixed it on Thursday. This involved implementing some additional debugging tools which are accessed via the developer console, which was once again introduced in 0.1.5. Turns out entity cells were generating in the wrong places because their validity checkers weren't functioning properly, and were making bad judgements on where the surface of the terrain actually is.


This screenshot showcases the two tools I added to help figure out the problem. The green boxes show where entity cells are generating. Here, they're working fine - they're generating at the surface of the terrain. Before, they would sometimes generate below the ground and in the air. On the left, you can see some information about where the player is relative to the sector they're in. Notably, you can see the terrain sample value at the player's current position, starting with the actual value at the top, and then the value as it's sampled with each sector. Notice how it gets less accurate the less level of detail you're given.

So... yeah. That's a big one, but it's not the only issue regarding trees that needs addressing. Player collisions for trees are half-baked right now, and part of that is by design, as I don't want the player to have to avoid forests in order to be making progress. Truthfully the trees should serve as more of a visual impairment than a physical one. But the collisions that do exist... don't work as intended. In fact, they just let the player clip right through the stem of the tree without a care in the world, and occasionally prevent the player from going to it's side.

This hasn't been fixed yet, as I'll need to implement an additional debugging command in order to properly identify the problem. Maybe it will be fixed with 0.1.6, maybe not until 0.1.7. Remember when I said I thought 0.1.5 would be the last update in the 0.1.x line? Yeah, I've forgotten all about it too.

So, that's 0.1.6. When it's actually going to drop will depend on how quickly I can get at least a couple of music tracks implemented in the game. I'd like to push it out before the new year, but I can't make any promises.


Clouds On The Horizon

One of the few other things that I've had some time for, since I always have time for it, is planning. Most of it is just in my head, speculating about features I could implement for this game or other projects I've been fantasizing about lately (including one that's been on my dashboard for over a year now), and I've made the decision not to necessarily change what I've planned to add to this game, but restructure it a little bit.

When I started developing this game, I had a checklist of all the features I wanted to be in place before v0.1's release, and, for the most part, I met all of those when the initial release took place. Around Thanksgiving, I had another list of features I was working on for 0.2, the next major update.

0.2 is going to mark this game's transition from "prototype" to "alpha," meaning I can stop focusing on the initial setup for everything, whether that be the world loop, entity generation system, collisions, or other engine stuff, and focus more on adding to what's already there. That's the goal.

When I'd initially planned out the update back then, I didn't really fully take this into account. There were still some features that required some foundational systems to be implemented in order to function. So, some of the features that were intended to go in 0.2 will instead go in a 0.1.x update. One of those features was music. The others I'll refrain from discussing.... for now.

Other than that, the last thing I want to mention is that I'm trying to actually make a video devlog for this game on YouTube, to hopefully increase the project's visibility somewhat, but I'm really at a loss for what to cover that hasn't already been covered with these text posts. Perhaps it'll end up being more of a recap of what's been written already.

This might just be the last devlog of the year. Merry Christmas to those who celebrate and happy holidays to everyone else, and thanks for reading as always.


..?

- 0de

Get Beaconfall

Leave a comment

Log in with itch.io to leave a comment.