Game
BattleJuice Alchemist

3 years ago

Here comes a devlog that's a little different than my usual ones. It's about impostor syndrome, framerates and how all that ties into the Broken Windows Theory. Never heard of it? Continue reading ;) (article below)


Hey folks,

many of you might be familiar with impostor syndrome, where people doubt their skills and have the (unjustified) fear of being exposed as a fraud. I don't suffer from it, but I am also not always completely confident that what I do is great.

I have a motion design background and don't consider myself a programmer first. Sometimes I fear that programmers might laugh at my blueprints and look down on me because of my lack of formal education in programming. So today I want to face that fear head on. I will tell you something that makes me feel stupid, but hopefully it will be entertaining and maybe even encouraging and educational.

Perhaps you have heard this quote from Michael A. Jackson before:

The First Rule of Program Optimization: Don't do it. The Second Rule of Program Optimization (for experts only): Don't do it yet - that is, not until you have a perfectly clear and unoptimized solution.

I always followed this principle quite closely ;) But I recently decided that in one specific part of BattleJuice Alchemist, I had to do some optimization. Let me give you a very brief introduction to those of you who are not familiar with optimization at all. So we have a game that we want to run at 60 fps in the end. This means we want a frame time of 16.66 ms, which is kind of a budget we can spend on calculations. I have recently spent a bit too much of my budget, so I decided to take a brief look at what I can do to reduce it. I quickly found out that my bottleneck was not the GPU, but the CPU. There is this fancy tool for Unreal Engine called Unreal Insight that allows you to find out where exactly your budget is spent. I took a closer look.

unrealinsights_3mb.gif

Turns out that the UI is what caused a quite considerable hit on performance of about 3 ms, so this is what I decided to tackle. I guess many of you who ever worked on a game can relate to what I am about to tell you. You are at the early stages of a prototype and all you want to have is e.g. this icon that shows that the player is low on health. Unreal has this nice drop-down menu that allows you to tie the visibility of your icon to a function that decides whether the player is low on health or not and then spits out "visible" or "invisible".

bindingvisibility_3mb.gif

Unfortunately, this causes the icon's visibility to be set visible or invisible every single frame. No big deal, your prototype still runs perfectly. But fast forward 4 years of development and things start to add up when there are a bazillion UI elements and many are unnecessarily manipulated every frame. I was aware that I was doing something bad all the time, so why did I continue? It all comes down to this first icon...

Have you ever heard of the Broken Windows Theory? Let me quote Wikipedia:

In criminology, the broken windows theory states that visible signs of crime, anti-social behavior and civil disorder create an urban environment that encourages further crime and disorder, including serious crimes. The theory suggests that policing methods that target minor crimes such as vandalism, loitering, public drinking, jaywalking, and fare evasion help to create an atmosphere of order and lawfulness.

brokenwindows_3mb.png

So when I used Unreal's option to quickly bind the visibility of my icon, I broke the first window, which I should not have done. Or at least, when I implemented the second icon, I should have fixed the first and done it right for every following icon.

Jackson's Rules of Program Optimization are great and you should not optimize prematurely. But this does not mean you should spend your frame time budget on unnecessary things because of your laziness like I did. And especially you should not knowingly do something stupid, decide everything is fine, repeat it a hundred times and still expect everything to be fine ;)

I hope you liked reading this unusually text-heavy devlog as much as I did writing it. If you want to chat about gamedev or stay up to speed with BattleJuice Alchemist, you can join our Discord.

Thanks for reading and have great weekend!

Alain



0 comments

Loading...

Next up

May's here, and yep, we're already halfway through, so it's about time to share our roadmap with you!

The Well, our new desert oasis, is shaping up. Meet Willow, the scholar đź‘“, and Melvin, the Cleanerđź§ąwith a wild side.

Full post:

https://store.steampowered.com/app/1384060/BattleJuice_Alchemist

Hey there!

While waiting for Act 2 translations, let’s talk about how we actually craft those dialogs: it’s a collaborative effort with some Arcweave magic to bring the story to life in our "monolog-style dialogs." Check out the devlog below:

The first part of BattleJuice Alchemist's Act 2 is now live in Early Access!

Journey to the desert and the city of The Well, where a new chapter of Juice's story is set in motion. We can't wait to hear what you think!

Steam: http://s.team/a/1384060

Madeline is the main protagonist of the mountain climbing platformer, Celeste. The game has been praised for its visuals, gameplay, and introspective narrative. The game's creator Maddy Thorson confirmed that Madeline is trans in 2020.

Unveiling the final wave of concept art for our desert haven, "The Well". 🌵⛲️ The heart of the bustling oasis is the tavern, where tales are spun over hearty fare and refreshing libations.

Dive into the cozy post-apocalyptic open world of Critter Cove!

Gentleman Rat Studios (@GR-Rob ) describe it as “a little bit Animal Crossing, a little bit Stardew Valley. Maybe even a little bit Windwaker, too."

Wishlist the game: https://bit.ly/CritterCove

Here comes more concept art for The Well, the new town we are currently implementing in BattleJuice Alchemist. These are two more tiles of the city, namely the makeshift camp of our protagonist, Juice, and the shop of Stan, the local merchant.

We're currently building new story locations for BattleJuice Alchemist, namely a city called The Well. Check out this piece of concept art by our art director Felix!

Mae Borowski is the main character of Night in the Woods! It's an adventure game that tells the story of her return to her hometown of Possum Springs. She was confirmed as canonically pan in a social media post by the game's creator Scott Benson.

Big news everyone! BattleJuice Alchemist's Early Access now supports 12 languages! The language update also contains a lot of fixes and a bit of secret content, which we will talk about in detail soon. https://store.steampowered.com/app/1384060