Samstag, 28. Januar 2023

Dev Log Excerpt December 2022 - January 28th 2022

 The following is a 1:1 copy of my personal notes during the last 30 days of game development:



BACKUP 27th of December 2022


X Implementation of Music Box & Queen Bossfight

X Massive Overhaul and Expansion of the world map to 1024 Segments

X Massive Overhaul of Map loading Sequencing and Loading Zones



X What to do now?

X - Keep Section 04,08,12,13,14,15,16 and isolate them from the rest of the map.

X - Replan the core



X - Manta Sound For Rain skips and is too loud maybe?

X - Generator Text is fucked up because of rotation maybe? Experiment

X - Items inside the generic hideout need to be set to "can not step up on", remove chair from the middle, place candles at the top of X the napsack not at the foot end

X - remove night stand table from generic hideout


X - Fix Weather FX for both intact huts

X - Add large ferns along the path

X - Add additional pines across the 1st segment, to maximize the effect of the shadow/light play


what's great? It's no longer boring, pathways are manageable, hideouts are plentiful, player has lots of options to make decisions


X - green, green bushes are oversaturated (i think it's bush04 ?!)

X - Siren needs much lower random patrol location radius

X - Tree monks need to be set up in front of hideouts to prevent player from cheesing them by standing outside

X - Tree monks need to update player location at night time as well and give that information to the siren

X - weather fx need to be removed for broken huts (hideout and non-hideout versions)

X - non-hideout forest houses (the old ones) need to be included together with randomized loot chests

X - all weather fx need lower probability

X - rocks and cliffs inside the lake to create a more interesting landscape, it's boring right now

X - There's still an overall shortness of firewood ... no idea how to remedy that .... maybe a firewood loot pile as random loot? Woodcutter huts or woodstacks? 

X - Trapezoid foundations need footstep sounds

X - Pines need darker texture

X - Firewood Birch Texture is waaaay too bright, oak firewood is way too dark

X - Vinegar needs emissive texture

X - crates in small huts need depenetration velocity set

X - Stock Up on Firewood Needs To Appear Either On Top Or In Front of the woodstack

X - Distinction between day and night time underwater is necessary

X - All hideout doors should be locked by default

X - Nightevent code for locked doors needs to be adjusted

X - Wardrobe is tooo emissive

X - Monks & Tree Spirits need slightly brighter emissive



X IMPORTANT - more crate groups with loot, more places for the player to collect loot (disable automatic spawning of these things, also disable hut spawns, add it all manually)

X IMPORTANT - Add large decidious trees along the pathways for light/shadow break, desperately needed

X - Deal with soulspawner FPS drop

X - Remove trapezoids from hideouts that dont need it so no footstep confusion happens

X - Add and update map to Yamas House

X - Skylight during "Fog" weather is waaaayyy too bright, fog should be even thicker

X - Height scattering of exponential height fog during rain needs to be massively reduced, dont change z level of fog during weather fx, it causes problems left and right

X - conduct additional siren testing, a lot of testing was just done in a regular gameplay environment, but siren wasn't sufficiently tested during attack and in various situations


DEMO 0.5.0 Feedback


X ????? - FPS drops still happen

X - Be 100% certain that the reward chest opens at sunrise

X - Siren appears to be unreliable, make sure she spawns

X - Set version number to 0.5.1

X - Trapezoids determined collision!!!! Add them again and set them to default material!!!!!

X - Add Control scheme to the pause screen

X - Add more spirits and monks to the forest or increase detection range

X - optimize tree spirits and monks

X - Plants and trees fade in and out unreliably, extend their fade range so it's more gradual

X - Crate emissive is too high

X - Reduce Fog, Add Void Dragon Howl To Fog


DEMO 0.5.1 Feedback


X - Rename it to V 0.5.2

X - There is an indoor volume at the generic hideout campground

???- Ravens need a separate scene anchor tied to the siren so they don't move into the ground when the siren attacks

X - Sirens don't reliably de-spawn at daybreak. Add a second safety check in the overworld global variable collector with a timer to check for time of day, kill them at 6:00 am, and at 7:00 am as well. Sirens should only respawn after 8:00 am. Set a preventive branch check with time of day at the monks and tree spirit watchers.

X ???- The door at the lake hideout with the boardwalk was unlocked for some reason. That should not be ... 



X Then when you're satisfied with Section01, create blueprint maps that are loaded in with each section. Add all non-connected BPs like hideouts, treespirits a.s.o to this map


X IMPORTANT: The "Unlock All Doors" Code is executed at sunrise, that's why all the huts are unlocked!!!! It needs player presence as a condition for execution!!!


X Afterwards create indoor functionality, chest spawns and interior randomization incl. weather fx for the village houses

X - Start with island buildings, that can be dealt with a SINGLE indoor volume

X - create weather fx and indoor volume

X - create intelligent shadow spawn night event (no lightsources, they count as non-hideouts)

X - add collision for stairs a.s.o.

X Once this line of buildings is done, copy paste the code and move over to hideouts with multiple indoor volume overlaps (create bools for these overlaps)





Tutorial feedback

X - one nightstand is rotated towards the wall

X - 4th textprompt in compass room doesnt spawn (and doesnt spawn in others as well?)

X - since daylight shadows are set to "enable actor collision" on safety, the compass, which reacts to haunting doesn't show danger accurately

X - Implement Rise Demon

X - prevent player from falling into the water when being consumed by the king

X - The king needs to be higher at start for spawn

X - The king needs post process FX

X - WidgetTutorialDecider needs to decide on a spawn point when player selects tutorial beforehand, including a segment to spawn in and then transfer that info to player character

X -> Then king needs to access it to determine player respawn in the forest

X - During the first shadow tutorial tell him that they rip his light away when he comes too close and tell him again to use alt to check his own lightforce

X - Chameleon Communication Is Flawed

X - King Suck Is Broken If Player Is Safe (Remove Distinction between safety)

X - Shorten Text Prompts Or Move Them To The Top And Switch Them With "This hideout is dark"

X - Move Vinegar bowl away from lamp in 6th room

X - First Shadow Needs To Be DIRECTLY IN FRONT OF A LIGHTSOURCE

X - Remove "Can Step Up" from Tables

X - Crouch Textprompt

X - Add a longer textprompt before the king encounter, explaining indirectly why the king himself is not affected by the light

X - Player will ask why does it say "Black Won?" Chess reference needs to be in the tutorial as well. Maybe chess tiled floor? Large life sized pieces?

X - (doesnt work due to overlap with door locked prompt) Inventory prompt needs to NOT be located near the key, but in the entire room, replace the shift and the item text prompt with a room global one that gives the player all of that info

X - "Press C again to get back up"

X - Increase Tutorial prompt range of King Message And Of Other Messages

X - The intelligent shadow in room02 does not trigger, because player is initially safe when he enters his range of vision ....

X - Check haunt volume of swimming man, is it centered? Is it set to 100% light extinction?

X - player death must not affect death count and light fade

X - When Yama takes his keys away, make sure the UI adjusts his key number as well!!!

X - Maps are loading in now WHILE the player is game over, maps are also NOT loading correctly

X - Player collision update on lamp leads to indoor/visibility checks as well ..... causing the entire building to glitch out (remove it all put it back as it was)

X - Swimming Man's haunt volume needs to be smaller

X - Create custom collision for round tables or set them to simple collision as complex, player still steps up on them

X - Lamps stay haunted after being touched by a shadow, upon end overlap the haunting and the flicker needs to stop!

X - dont put keys on the same table as lamps

X - Music Serenade CAN NOT BE GLOBAL, it needs to be controlled through radios or external sound sources

X - Yama should only destroy itself once all maps are unloaded

X - King And Tutorial Need Music Cues Implemented, consider writing a piano piece for yama, that moves into multiple layers when he's present or when shadows are present

X - Consider the serenade that merges with Rise Demon Attack V1 when Yama appears

X- The light is fading is somehow being triggered AFTER tutorial is set to false. WHY?????

X - get up from crawl, second prompt required!

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.











Samstag, 21. Januar 2023

Uploaded 0.5.1 - Now Working On Village Models

I uploaded the new demo to dropbox and it's now available to everyone via linktr.ee/lakiniswoods

Progress has been really slow these last couple of days and not because of a lack of effort .... the old house models I had from an earlier version of the game in 2015 are ugly as shit. But they do look beautiful "in context" of the forest environment. The task is therefore to prepare them with night time events and weather events so they can be embedded with foliage. Additionally interior furniture and other stuff is added so people can find loot inside. But if they decide to spend the night, they'll get a bad surprise ....






Mittwoch, 18. Januar 2023

Sunken Village

 









While demo is in testing I started work on map section 02 ... in the center it features a sunken village with many different buildings covered in moss. However they are lacking weather fx, indoor volumes, night events and furniture + loot right now. So a massive amount of work needs to be done (7 building types total + randomization and assets)



Samstag, 14. Januar 2023

Contemplating Waiting


 

So .... there's one thing that's puzzling to me .... for a very long time I had an "automatic night time damage system" in there. If player's would move outside of a hideout after 18:00 pm they would automatically receive damage and eventually die (similar to Darkwood).

Eventually I removed that system, because it became ridiculous. There was no clear source of damage and it didn't make much sense. A player would see a hideout and finally arrive at his safehouse at 18:01 and die or get lost before reaching it.

And that's where the ravens came in. The monks and tree spirits watch you when they discover your location and transmit that location telepathically to the ravens. The ravens then stay close to your location and eventually track you down. Each time you get discovered by the tree spirits again, the ravens become more aggressive. When they catch you at night time, their "superior" is revealed in the darkness. She will paralyze you and kill you almost instantly, unless you have a lightsource that will last longer than 60 seconds so you can escape. (minor bug happens where she and the ravens suddenly get stuck in the ground if you escape her .... it's not perfect yet)

Something was bothering me though. Reward chests only open if the player is "present" at sunrise. "Present" means he is in the basic vicinity of the hideout. Players can cheese this system by staying outside the hideout, watching the shadows patrolling the hideout from a distance and then taking cover or hiding when the ravens are closeby to escape the siren. 

Now I discovered: They can only cheese it if a tree spirit is not watching, because as soon as he does it and a tree spirit is close by, he will transmit your location to the ravens. They will gradually become more aggressive over night until the player is left to choose between wasting lighter time or finally giving in and running back to the hideout.

So the obvious solution is to place these watchers close to every hideout. But if I do that with every hideout, the entire situation becomes predictable again. And I HATE predictability. Also because it makes testing soooo god damn boring. And playtesting and QA is the heart and soul of the development. Play a perfectly predictable game segment 100 times and experience how the joy of your creation is slowly draining out of you.

The situation would (in theory) still be fair, because watchers and tree spirits can't see the player during weather events. The fog, the rain, the snow, the dharmapalas presence .... it clouds their view of the situation. The same is true for the ravens. A rain event will extinguish a player's candles and campfires if they are located outdoors. So he's left in the dark and forced to leave the hideout. He can wait for the event to pass, but the ravens will eventually track him down once the weather event has ended.

But what I want to avoid is "waiting". And aimless "walking". Those two things are absolute fun killers. They destroy any amount of tension unless the player is suddenly required to interact in order to protect himself (like watching a candle, moving between lights, watching the sky for ravens). During weather events at night, no interaction is required, there is nothing he can do.

I stumble across these moments and they bother me. I wonder how much patience the average player has, when even I myself barely have any patience... and the worst thing about some of those situations is: The game fucking REWARDS you for doing nothing and standing in the dark, while the ravens are aimlessly passing over your head.

Will need to fix that. Maybe they'll change their strategy? Maybe there's someone or something else on the ground during these events that attempts to determine the player's location?

Even though the screenshot above was created after I attempted to cheese a hideout ....

Going to upload the first demo of Map Segment 01 to Patreon soon. 

Just needs to be out there. I don't care if someone crosses over the loading zones. I'm not going to restrict player movement even if the map is not populated yet. Zone 02 is work in progress and Zone 05 is empty. Zone 03 will have grain fields and windmills .... 







A Day In Lakini's Woods Map Section 01 V. 0.5.0

 


This is section 01 of the final map. Yes. Final. After 8 years. Fuck my life.

Also the Dharmapalas are a "presence" in the background now, but the elements are no longer ... a massive factor .... the game is about hiding from the eyes of the forest now. Be it in the form of shadows, tree spirits, animals or the king of death himself.

I also removed the other pages on this blog. The old story is no longer accurate and who I am is not relevant to the process. 

Two years ago I got so angry over a steam game I bought, that had good reviews but was crap. It was the usual: "Ohhh you'll get a lighter and have to HIDE! Isn't that crazy?". When I saw the sales numbers of that game I lost my shit. So I used the model of the mansion I had and built a separate mini-game for myself, just to prove to myself that I could do it better. This mansion then turned into something bigger, and bigger and bigger .... and I started merging the different UE4 sessions I had. Then I added smaller houses and used elements of the code in order to make them "haunted" as well. And one thing led to another and the system of the game  ... evolved.

I had big plans over Christmas .... 12 map sections ... 112 hours later I had finished them (foliage, items, hideouts, everything) .... then I realized, that it doesn't work, because there was little orientation for the player ... the game was boring. Running around, aimlessly .... desperately hoping to find a hideout, only to die at sunset .... it was pretty though .... but boring.

So I had to do it again ....

This was the first map design:




Each tile symbolizes a separate blueprint segment with various rotation and foliage. They are like mini-biomes (think of minecraft). At first I built it with procedural foliage spawners for testing. But when the engine couldn't handle the amount of ground cover foliage at runtime I had to rework and eventually settle on a fixed map layout, which is the one above. But because of the sheer size of the landscape there was no way for players to navigate successfully. The map had to become smaller and use a natural order, so it would be easier to navigate.

I pushed the map segments together:






Then I looked for ways to include Lakini's rune into the layout. If it was located on a 4x4 map the center of the rune would always be along a map transition. So it had to be 3x3, because if I want to highlight the rune in any shape or form (through pathways or lights) players need to be able to see it and walk alongside it.




I used gimp to project the rune on top of the map and this was the result. The surrounding map sections are still in the game .... and are accessible at some point later on. They are linear and lead towards a single destination .... Chapter 02.






The petals of the rune now form pathways that lead the player through the woods. It is still possible to get lost, but much easier to find the right direction. Since another weakness of the first version was the lack of overall hideouts (with full night time functionality and events) I created (13 !) new ones.

The youtube video above features the top left corner of the map and the lake in its center. Yama's mansion is located on the map section at the top. even though it is depicted as being of equal size it appears to be much smaller in the game. It appears to be anyway ....



The whole irony of the last two years is: 

In MY game you have a lighter, and you have to hide. Isn't that cool?!!





Dienstag, 3. Januar 2023

Work In Progress

 


Been working tirelessly on the game for the last 2 years, but didn't find the energy or motivation to post updates. This might soon change.