Freitag, 27. Januar 2023

0.5.2 Tutorial & Feedback

Finally finished the tutorial:


The last two weeks were among the most vomit-inducing horrendous, demotivating and frustrating weeks since the start. Including learning in the first week of 2015 how to not make my character fall through the map.

When you work on something where you can see results, that's fulfilling. Adding content, adding events, adding items, features, animations, enemies .... that's awesome. But preparing existing models and "embedding" them into the code is a nightmare. Adjusting shadow spawn points and collision volumes and fixing unexplainable bugs sucks. But adding new features is optional, making the game accessible and fixing bugs is mandatory.

Giving new players a tutorial is absolutely essential. But up until now I was too self-absorbed to realize just how important it actually is. But there was also another reason: I was scared of what would happen to the existing code, when I would start fooling around with a new tutorial area and how the existing game-over system would handle the tutorial. 

Then I came across some delightful new bugs, that came into existence since UE4 made an update to their branch blueprint segments, that were now no longer functional in a packaged game. To everyone reading this: "Equal Text" now only works in a packaged game, when the text you want it to be equal with, is a manually created "Text Variable", which then needs to contain the same text as the other side of the branch node as "value". When you write text into the "Equal Text" node it works fine in editor. In a packaged game UE4 suddenly goes: "WHAT IS THAT? I HAVE NEVER SEEN THESE MAGICAL RUNES BEFORE? "

So you play the game in editor and all is fine and then you package it, and it's all messed up. So you change something to see if it's fixed in packaged mode now as well, and it's not. And you do this over and over and over and over again until days later you've finally nailed it down. And then you switch one node, and it works. 

And you feel nothing.

And there is no visible improvement. The game looks exactly as it did before. But you know what you did was absolutely necessary. But you still feel fucking nothing.

Now there are five types of houses in the village and they look a little bit different, have furniture, plants and loot. Great. And now when it's raining and you sneak inside of them, it doesn't rain inside the house anymore. And at night four different types of shadows spawn to keep things interesting. Awesome. Minus 20 hours.

When Yama eats you at the end of the tutorial, the maps are loading correctly now. Great. Minus 6 hours.

You wanted to implement respawn points, so that the player could die to tutorial shadows with minimal progress loss, then after a massive round of testing you realize, that it leads to a multitude of issues. So you prevent him from dying during the tutorial and cap his health (so he can get hurt, but not die). Then you realize how much of your code was tied to the player having a minimum amount of health and experience the consequences of this tremendous fucked up change. So you adjust it and give the player 0.1 health when he actually should be dead in the tutorial, in order to avoid everything getting fucked up. Minus 5 hours.

You consider adding music to the tutorial. You have a track in mind, but want it to be played through various radios spread out across the tutorial area. You add the code and new blueprints, you realize UE4 is a pile of shit engine, that doesn't play sound at the exact moment, when you tell it to play sound. You try ten different methods to make it work. They all fail. You finally figure out a way to do it, but then end up deciding that music in the tutorial is actually incredibly distracting. Minus 5 hours for fucking around.

In the tutorial you tell the player how shadows extinguish lamps to track you down. You want to add one of the intelligent shadows, that track down the player. You adjust the code, so he doesn't spasm out during daylight. You realize player collision does not update when the lamp is extinguished by a shadow (which usually is not a big problem, because during night events shadows move around and change location, thereby updating collision). This time it's a problem though, because this lazy fuck of a shadow just chills around on the floor doing nothing. You spend an hour adjusting the code of the lamp so it updates player collision at the exact right time and then you realize, that the change you made causes the entire house to glitch out, because the collision channel that checks whether the house is in visibility range of the player, is the same as the one checking whether the player is detected by shadows. So with the flicker of each lamp, the house disappears and re-appears again. Like some kind of surrealist disco.

And suddenly a thought occurs: "Dude, you need to update your social media channels." But what the fuck am I going to post? "Hey guys, I thought about adding something, then did, and then removed it again. Watch my tik-tok where I rhythmically scream into a pillow to the sound of the collision volumes glitching out!"

You decide to remove everything including the original shadow, as he is not vital for understanding this part of the tutorial. Minus 5 hours.

Each variable you add to the player code takes 10 seconds to load. Why? Because the code became bloated over time. It craves optimization. But it can only be optimized once I know for sure, which parts of it I won't need in late game inside the mansion. Or I will destroy an incredibly complex and important part of the game. And then Yama will once again spawn in the middle of a wood beam. So waiting it is. 

Next fun part: 

Testing has shown that the nights are too long. So I'll need to adjust the timers across the board. Given that everything is connected with everything else, including weather events, it will be a fucking bug-fest.

I can't wait for a weather event to stop the sun from rising and moonlight shining down on the player at 9:00 am, with the generator timer stuck at - 99:59 seconds, ticking down into negative infinity with lightning speed for some reason, while the fireplace is spouting smoke from a misfired night event.











Keine Kommentare:

Kommentar veröffentlichen