Montag, 24. April 2023

Endgame Environment Experiments

 


This post won't be on social media for obvious reasons. So if you're a die hard supporter read on ... 

It pretty much looks like I have to split off the chess game inside the King's hideout from chapter 01 and release it in chapter 02 as a separate instalment, because it will buy me more time to really get the details and the complexity of the game and lore implemented.

There needs to be a way for the player to acquire the king figure. Each figure is held by its counterpart (The queen holds her figure, the rooks hold theirs a.s.o). So in the case of the king figure, Yama would have to willingly give it to the player. 

But why would he do that?

Only if he himself suddenly wanted to play with him, because he respects his intelligence and strategy.

How would that happen?

And most importantly: Where?

And it got me thinking ... where was Yama before he encountered the arbiter's mind? Where did the arbiter's reflection occur? Did it occur in the house? No, it couldn't. The house was a reflection of Yama's mind and the arbiter merely initiated Yama's own reflective process. This process created an obsession in him and this obsession is evident in his inability (or unwillingness) to leave the hideout. So Yama must have experienced this encounter somewhere else. At his true residence.

Yama wasn't a small shopkeeper from the beginning. He was reduced to that, after he attempted to guide the arbiter back to a new reincarnation. The arbiter refused, forced Yama to reflect on himself and Yama became obsessed with his own lack of faith in an endless search for light and hope.

Where was Yama before all of this took place? Where were his guards? Where was his throne? Where was the mirror in which the arbiter's reflection took place?

Even though the arbiter screwed him up, Yama started to respect her tremendously. He saw something in her, that deeply impressed him. Just like the shadows see something in Yama that impresses them. They follow him willingly.

Yama would only willingly give out the king figure, if a being earns his recognition to the same degree the arbiter did. A mirror would have to be involved and both parties would have to participate in a reflective process and then handle the outcome.

Ironically .... Yama would then only give the player the king figure if he voluntarily chooses to engage in the process of reflection .... the very process he's been avoiding throughout the whole game. And this process would then consequently take place in Yama's true residence. And out of respect for the player, Yama would (for the first time since the arbiter's encounter) willingly leave the mansion hideout and await him at his residence.

And then there's another question .... what makes one a king?

A king holds power, because his judgement is respected. If a king's judgement is no longer respected his power wanes. Territory is much less relevant than the power dynamic behind it. One can be king of a relatively minor country and still hold tremendous power based on the leverage one has earned through their actions. This leverage can take the form of many things .... first and foremost (in our world) it is money and influence. Power can be exerted based on a transactional dynamic: You do this, I give you this. Or it can be exerted based on respect alone: If you respect my judgement, then you should follow my call to action.

So in other words: One can hold the title "King" if one accumulates a sufficient amount of leverage and respect. 

Yama would only recognize the player as his equal if he brings something meaningful to the table. Respect alone would not be enough. The player would need something else, that creates leverage.

The threat of death can also be seen as a form of leverage: You do this for me, or you'll die. But that only works if the person you are instructing is actually afraid of death, which certainly wouldn't be true for the king of death himself. Especially in a situation where both of them are technically already dead. In fact reincarnation would probably be a much greater threat for both of them, because they both learned to exist in this strange place and by being thrown into a new existence all of their previous knowledge suddenly becomes worthless.

The player's leverage lies in something else: The willingness to continue existence with full knowledge of the suffering involved in it. Contrary to Yama, the player must demonstrate that he willingly chooses to reflect, to experience suffering and to accept reincarnation. And in order to do this, the player would need to willingly let go of everything he has earned and willingly put himself into a position of complete helplessness, without the ability to free himself.

It doesn't matter whether the player truly believes in any of this. If his actions demonstrate to Yama that this is what is going on, then Yama will inevitably feel envious. Because this faith in existence is what he lost after he met the arbiter.





 







Samstag, 22. April 2023

The Rooks

Yesterday I finished several minutes of the Rook boss soundtrack and devised a basic layout for the boss fight.

Each boss fight in the game should reflect specific aspects of the officer's character. 

The queen is elegant, powerful, free to move wherever she pleases ... and incredibly intimidating. She is always present in some shape or form and can project power even when she's far, far, far away from the frontlines. If she's close, she can mate you all on her own with minimal backup or no backup at all. Each of her moves is a step in a deadly choreography and you better keep up, or you'll regret it ....

The bishops are bound by specific rules (their own convictions and beliefs), but they can be deadly in the right situation. However if they don't act when the opportunity to attack arises, it can sometimes directly lead to defeat. While this is obviously true for all other pieces, bishops' inability to liberate themselves when they're stuck in a corner can sometimes cost your opponent a high price.

The knights are unpredictable in close quarters. They are specialists, trained in attacking from above. One moment you're safe, the next you're just staring down certain defeat and you never saw it coming. A knight in a crowded or narrow section of the board can do a thousand times more damage than a queen ever could under the same circumstances, because he can reach you, when others can't.

The rooks however .... they are really interesting. On the board rooks are very similar to bishops in many ways. But due to the fact, that they can occupy and threaten massive portions of the board through their bare presence (similar to the queen) and are able to move quickly from one threatening position into another got me thinking.

In a way rooks have the power to shape the situation on the board. Having a rook in a specific position can make things so much more difficult for your opponent. Rooks are prime candidates for mating your opponent and in some instances two rooks can even be more deadly than a free moving queen. Two rooks working in sync are a permanent death threat to your opponent.

Rooks create barriers by limiting the king's ability to move beyond a specific rank or file.

Rooks sweep across the board with incredible speed.

They are powerful when they're together, but much less so when they are isolated.

They have a certain kind of maliciousness about them. Each game I played, I felt they were having "fun" just being rooks, out of the sheer pleasure of their threatening abilities and speed. Sometimes they felt kind of ... childish to me. They can only move in straight lines, but they don't care. To us they look "limited", but in their minds, they are not. They are having the time of their life. Rooks tend to mate you slowly, even if they could do it quicker. They display a certain amount of sadism. They know your defeat is inevitable and yet ... they just lock you in one move at a time, so you can slowly watch your own demise, without being able to interfere in any shape or form.

The number 5 is also significant. Rooks count "almost" as much in value as two regular officers, or 5 pawns. I recently asked myself why only 5 and not 6? The reason is obvious: Because rooks are more powerful in duos. Two isolated rooks are much less powerful than a free moving duo of rooks. If one falls, the other also loses in value. You can't create a duo anymore if one was taken. Of course you still have the queen. But if the queen has to take on the tasks of a rook by blocking ranks and files or forcing the king to move in a specific direction, she can't commit to other tasks, such as clearing the board or actively facilitating mate by cornering the king directly. (the same is true for other pieces as well: The queen can compensate for their absence, but if you overload her with too many tasks at the same time, you stress her and take away her elegance)

The rook boss fight is based on an old German children's game and you will encounter the rooks displaying these qualities while playing with them.

Dienstag, 18. April 2023

Debugging Windows 10/11 Fatal Error Crash For Unreal Engine Game Developers

So after working 200+ hours on 0.5.3 we discovered during testing, that the new version has apparently issues with Windows 11 and/or high end Nvidia GPUs and the origin of the issue is not clear. For the record, none of what we attempted during the last couple of days fixed the issue of "Fatal Crash" and "Low Level Fatal Crash" for us. But this is a compendium of potential solutions that others have found to work, that experienced similar issues with other games. I'm leaving this here in the hopes that it will be indexed by google at some point in the future, and others can use this list as a source of debug solutions in case they experience issues down the line.

(UPDATE: Our tester ran the "Windows Memory Diagnostic Tool" and we discovered issues with RAM sticks. Now we're tracking down which stick is the issue. The Fatal crash was apparently not related to the game package)

I also learned about a couple of cook and package settings that I need to implement in order to ensure better stability for end users. Eventually all of these bugfixes should be compiled as part of a "verification check" .exe file, that users can use to debug the game if they encounter issues. I'll also cap the framerate for end users now and include the version of the drivers I used while packaging the game and the system I worked on to create the package.


What does the error look like?

You play the game at a stable framerate (60+ FPS) for a couple of minutes on Windows 11 and then three possible things happen:


1.) "Fatal Error! The Game Has Crashed And Will Now Close!"


2.) "LowLevelFatalError [File:Unknown] [Line: 198] Unreal Engine is exiting due to D3D device being lost"


3.) You don't get an error message, but the game shuts down/freezes unexpectedly


One or a combination of the following solutions has helped other users with Unreal Engine games, that display this error in the past:


First of all: Use Task Manager (CTRL+ALT+DEL) and the Event Viewer (Windows Logs/ Applications) for debug and observe carefully what's happening in the background of Windows when the game crashes! Check GPU performance and temperature during gameplay and after gameplay. Temperature should never exceed 70 degrees Celsius, and GPU usage should never reach 99%. If it is in the 90s that's OK, but ideally it should be somewhere around 40-80%. RAM usage should never be significantly higher than the total size of your game files during gameplay (significantly means more than 6GB). If your game is 11.8 GB in size and the RAM usage is 20GBs and more, something is wrong. Some background apps like browsers and other programs can eat up quite a lot of ram, but not that much.


1.) Most Common Issue: If you have downloaded a previous version of the game in the past ensure that you have made hidden folders visible in the Windows File Explorer settings and navigate to C:\Users\<username>\AppData\Local and delete both the Unreal Engine folder and the Lakini's Woods folder. Both of them will be recreated when you restart the game. This ensures issues related to outdated temp files on your hard drive


2.) Updating GPU drivers, for Nvidia specifically upgrading to the latest Studio driver (this is so significant, because GPU drivers affect the game package directly. Often devs create their game packages WITH a specific generation of drivers, and if there are outdated drivers on the end user machine, then the package is looking for files that don't exist. That's why a driver re-install often solves many, many issues)


3.) Downgrading GPU drivers (if your current drivers are up to date, downgrade to the previous driver version. This can also solve many issues, because of the same reason mentioned above: If your dev has created the game package with an older driver version, and the newest generation of drivers is not fully backwards compatible yet, then this can also lead to issues with the game package)


4.) Disabling "Hardware Accelerated GPU Scheduling" in the Display Settings of Windows


5.) Disabling GPU Overclocking (When Geforce Experience is open, press Alt+Z click on "Performance Settings" and reset them). You can also use MSI afterburner for this (but this obviously only makes sense if you've actively overclocked your GPU in the past)


6.) Capping your framerate at 60 FPS via Nvidia's Program related settings, right click on desktop and select Nvidia Control Panel to get there (this is something I will do myself during the next cook, so the game should be capped in future versions to 60 FPS automatically)


7.) Performing a Windows File verification check (Type "Command Prompt" into the search bar on the lower left side, then right click on the black "Command Prompt" logo and select "Run As Administrator" then type "sfc /scannow" into the entry field


8.) Going into the device manager and click on "Display Adapters". Ideally only your main GPU should appear there. If there are multiple GPUs installed, then this can lead to problems. Deactivate the ones that you don't recognize by clicking on "Properties" and then on the "Drivers" tab. Also check the driver versions of each one installed.


9.) Windows Updates ... I know ... I know ... the reason why everyone always suggests to update your windows to the newest version is DirectX11 and DirectX12. They are automatically updated through each new Windows Update, and if they are out of date it can lead to a complete shit show. Microsoft also offers a compilation of legacy directX versions for older games and older systems on their site. You can find them here:


https://www.microsoft.com/en-us/download/details.aspx?id=35


10.) If you have issues with other games as well, that points towards hardware problems. 

If you encounter a variety of strange errors across the board, including file names changing or symbols disappearing, sudden freezes or non-responsiveness that points towards a faulty RAM stick (especially if the RAM specifications displayed in your PC info does not correspond with the amount of RAM you have installed). RAM issues are sneaky and difficult to recognize. One day everything is fine, the next day everything is fucked and you have no idea why. Run the Windows Memory Diagnostic Tool. This tool will clear your RAM and test each section of it, by copying data onto each section and then recalling it to see if the data copied and the data it collected are identical. It does this for every memory section. If it encounters a mismatch, that points towards a faulty RAM stick. In that case the way to go is to individually remove each RAM stick and run the memory diagnostic again. Use labels for each stick, so you don't get confused regarding which one is broken and which one is fine.

IMPORTANT: Faulty RAM sticks are common. They can be broken from the get go. Even a freshly built PC doesn't exclude RAM issues. If you've recently purchased new RAM sticks and notice memory diagnostic issues, take a picture of the memory diagnostic results and contact the seller to demand a replacement or refund. They are well aware that this is a common issue.


A GPU with a very high temperature points toward dust inside the case, a broken GPU fan or ventilation issues inside the casing. 


Frequent restarts that you didn't initiate, or the PC suddenly not starting up after a crash could point toward a faulty PSU. 


And (unfortunately) some fatal errors appear to be related to the GPU not sitting tightly in its slot. Modern GPUs are heavy, and depending on how they are set up they can start to "bend" downwards, which can lead to them getting dislodged slightly. This is often enough to create fatal crashes across the board. 


Also check your installed HDs. If you notice a hard drive taking incredibly long to load, when you notice noise or ticking coming from your PC, or notice that it's symbol disappears from time to time when you check your setup in the Windows Explorer, that points toward a faulty Hard Drive. There are tools in Windows to check each hardware component for issues. To check your Hard Drive type: "CHKDSK" into the search box at the bottom and run the command. Windows will automatically check your HDs for issues and fix them if possible.


Google how to access each of these tools in Windows (DON'T DOWNLOAD ANY THIRD PARTY SOFTWARE!) all of these analytical tools are pre-installed on all versions of Windows. Downloading third party software almost always makes things worse.


11.) Make sure that Windows Defender and Windows Virus & Threat Protection haven't quarantined or interfered with your game. Type "Windows Security" into the search bar at the bottom and check the Windows Defender and Virus & Threat Protection settings. Exclude the game from any file checks and mark it as "safe" across the board, including Firewall.


(Also if you haven't noticed, I work in QA)


And now we get to the ugly, ugly truth here:

As a dev you have no fucking idea what the setup on the other end looks like. You have no idea what your end user has installed or hasn't installed and you have no idea if the issue is actually buried in your own packaged game, or caused by malware, hardware issues or software incompatibility at the end user.

I found the best way to handle this is: Talk to your testers. A lot. Ask them to screenshare. Ask them to investigate bugs and issues together. Have zoom meetings with them. Look at their event viewer, look at their task manager and hardware performance. Look at their device manager and GPU profile.


Be the support desk.

Then you'll get the info you need to maximize compatibility of your packaged game down the line. And what's also important: Publicize every issue you solved in collaboration with your testers, so it's indexed and can be found by others.






Sonntag, 16. April 2023

Shadows & Testing 0.5.3g


 

After sharing tons of pretty nature screenshots I thought it's time I start sharing the other side of the game environment.

I'm currently uploading 0.5.3g for the testers. I tested it during 3-4 sessions over the weekend, each session for approximately 2-3 hours each. So basically we're moving towards long-play testing (even though there is no savegame feature yet)

I'm honestly a little stunned. After all the bugs I uncovered recently I didn't expect it to work this well. But it's really fun and engaging and the nights are demanding and tense. Of course once again I discovered a bunch of new problems, but none are even half as serious as the ones mentioned in my earlier posts. So those 40 hours of bug fixing and optimization paid off. I also incorporated the first boss fight, which was always supposed to be the pre-final boss fight in the game. The queen's dance is incredibly difficult, requires fast reaction times and careful study of her choreography. Her hideout is difficult to find and well hidden from view.

It's difficult to invest this much time into the game while holding down a full time job. But over the weekend I personally felt some strong validation, because I really enjoyed getting lost in the world. So even if nobody else plays it, this ... thing .... brings me peace of mind when nothing else can. And since all of the King's shadows are based on my own childhood nightmares and childhood drawings of them, it's basically self-therapy each time I go into a full testing session.

This is the list of most recent bugs that were resolved:

X - removing firewood from a campfire or fireplace breaks the tinder code

X - Implement Queen Dance Hall 

X - Adjust Queen Dancers And Give Them Wings

X - Add Feather Particle FX

X - Add additional Raven Particle FX

X - Test And Debug Everything

X - Fix GameOver FPS Issue

X - Fix Damage Issue And Time Execution Upon Game Over

X - Create Appropriate Foliage Around Queen's Dancehall

X - broader interaction volume for protection pillars

I've also created a list of bugs I uncovered and I'll add the testers results to that list as well. Once I have all the feedback gathered, I'll do a final overhaul, one last testing session and a full release of 0.5.3.



Freitag, 14. April 2023

Bugfixes, Testing 0.5.3f Soon

Once again, this is a short excerpt of the dev log from the work I did this week:


Testing Results: 0.5.3d AND Testing Results 0.5.3c


X - FPS issues on map section03 when loading in new map chunks

X - Yama's glass shard sound is too soft, increase sound loop without psycho FX

X - Yama's glass shard text range (activation collision) is too small

X - Close Door Code Update

X - Double Check Thunderstorm & Rain Music, Decrease Rain SFX

X - Music keeps playing beyond 17:00 sunset and merges with SunsetEvil music

X - Large cages on the bottom of the tunnel still are emissive

X - I was able to walk through zone transition 03-04 and then spawned in 04 underneath landscape


Gameworld:

X - Siren skips collision at night (because of the decreased collision checks, she appears and then disappears again ...)

X - Door of TeleportTunnels (Hideoutdoor?) is a bit too high, causing overlap with frame

X - There's a Tree In A Tree At the northeastern corner of map section01

X - Sous STILL don't talk early morning, add a collision reset to the speech reset (must be tied to soul 3 lore !!! because all others talk to me!)

X-  Vinegar Rack message is overlapping with wall in hideout on section 01 at the lake with the boardwalk and the generator (northeast), same hideout as redwood section 03

X - Ferns on road segment on section01 leading to 02, where the road exits the hill, with the rocks

X - also ground plants on that same road, do a full checkup

X - Need a couple of LARGE trees on that path down to the road, looks shitty right now

X - When jumping footstep sounds are produced, introduce a bool to the walk sound code

X - Also more large trees are needed on the road from section 01 to section 02

X - Ground in village hideout looks shitty

X - More trees next to cathedral

X - Implement light explosion when taking the "Box Of Light" (make it small)

Donnerstag, 13. April 2023

New Bugfixes Since The Weekend (Devlog Excerpt)



Last time I tested 0.5.3c I was really happy with the result. The following changes are implemented in 0.5.3d. After this version is tested there's still a ton of foliage fixes to do, and some FPS issues to clean up in Section03 and then it's ready for release. This version will probably remain public as a demo without savegame ability. All future versions will then be released through Patreon, while 0.5.3 will still receive updates, so new features are visible there as well. That's why this is such a crucial point, because I want this public version to be really decent and optimized.

X - Yama Absolutely needs textprompts. Implement it all, including the shards

X - Create a new music system, that incorporates Yama and weather cues + new daylight

X - ramp to yamas house has wood sounds? but the floor is cement?

X - Reward Chest now opens multiple times (does it respawn a new instance maybe?)

X - Candles have weird LOD and their emissive value is way too high

X - Emissive value for chests is also too high

X - Night is still a bit too dark, shadows are difficult to make out

X - Remove firewoodrack from village center, move it further away so the player runs into shadows

X - You definitely need HYPER willows across this section03, or it looks ugly

X - Collision box of yamas store table extends outside and blocks view inside

X - Yamas front table needs separate collision or player walks onto the table

X - Adjust Cage Textures In Yama's Tunnel -> metallic instead of emissive

X - Music Pitch for Night Music needs to be 100% after multiple deaths for 50% daymusic pitch

X - Reward Chests must only open during presence between 6:00 and 7:00 based on a separate bool, that determines if chest was just opened (this also avoids multiple chest openings in succession)

X - Grass is peaking through walls in village hideout



Samstag, 8. April 2023

All Bug Fixes Done Over The Last Two Days (Private Dev Log Excerpt)

 TESTING RESULTS: 0.5.3a


X - Enable Music!

X - Reset Rain!

X - Reset Spawn!

X - FPS drop is caused by shadows (reset dynamic shadow cascading)

X - No soul textprompts after game over??? Why??

X - Grass on the road to zone transition between 03 to 02

X - Zone transition from 02 to 03 and from 03 to 02 is fucked by all means


TESTING RESULTS: 0.5.3b


X - First of all make backups, this is a DECENT version

X - IMPORTANT: Player time and Atmosphere creator time, drift away from each other after multiple days (3 hours of playtime). A check needs to be implemented, so that they always move in sync, even if it isn't always seconds or minutes.(right now atmosphere creator is FASTER than player time)

Sunpitch/TimeofDay


0/ 18:00 

15/19:00

30/20:00

45/21:00

60/22:00

75/23:00

90/00:00

105/01:00

120/02:00

135/03:00

150/04:00

165/05:00

180/6:00

270/12:00

360/18:00

Time of Day (Hours) = 

IF Sunpitch <90 THEN Time of Day (Hours) = (Sunpitch/15) + 18

IF Sunpitch >=90 THEN Time of Day (Hours) = (Sunpitch/15) - 6

Time of Day (Minutes) = (Sunpitch - (15*(TimeofDayHours+6or-18))/0,25

IF Sunpitch <90 THEN Time of Day (Minutes) = (Sunpitch - (15*(TimeofDayHours-18))/0,25

IF Sunpitch >=90 THEN Time of Day (Minutes) = (Sunpitch - (15*(TimeofDayHours+6))/0,25


Example

172,5 / 5:30

IT FUCKING WORKS!!!!! YES!!!!!!


X-Implement new time code into the explorationchar BP

X- add ramp to yama's house for collision and easier entry

X - Create a small path to Yama's house

X - Create separate mesh instances of the bush willows and set them to "simple collision as complex"

X - For some reason pillars are no longer emissive?

X - protection pillar shadows don't reliably de-spawn during daytime -> compass, night

X - add "check" prompt if the player has 4 health or less left

X - Add woodstep sound to ramp

X - Fix Map loading functions in Exploration CharacterBP and TutorialWidgetBP and YamaBP

X - Test Map Loading

X - Double check collision at stairs at mill, when walking down there's a bump

X - Big Willow opposite the mill on the other shore close to the tunnel has roots sticking out

X - souls don't have textprompts after game over (probably related to morning time of day)

X - The light is fading prompt is not being played after game over

X - Add difficulty modifiers for each setting)

X - "Unlock?" appears to be visible on all locked doors at beginplay

X - More shadow giving trees around village, overall less foliage instances around village

X - Broken hut behind village hideout is too high (z)

X - Close Yama's door if player leaves his store

X - Behind Yama's tunnel on map section02 a hut is completely out of the ground /

X - In Ruins Hideout in section 02, grass peaks through the table

X - fix ivy in Ruins Hideout

X - Add item to Yama's store (Light In A Box)

X - Why is there a chess figure in the dry lake hideout in section02?

X- Triple crate item spawn close to road on section02 close to the zone to 01 on the northern side X near a small hut02

X - Lightbulb of lampposts doesn't flicker with the light itself


Freitag, 7. April 2023

All Bug Fixes Since 0.5.2 (Excerpt From Private Dev Log February - March - April 2023)

 All features were implemented and all bugs on this list were fixed and tested extensively during the last months:


X - When player gets detected by monks, siren needs to immediately interrupt her patrol and move towards player location

X CURRENTLY 3 ISSUES: 

X The delay loop to check for night time detection remains triggered if siren starts hunting player through the new event

X - The rotation and move to location code ALSO gets interrupted when the siren is moving towards the player location

X The siren spawns way too high if it's tied to the head's location. It either needs way longer detection volume or needs to be tied to player Z value, probably both is important or the siren will move through hills

X - Lanterns in front of village are floating

X - Lightflash on Shadow interaction doesn't reliably despawn on death

X - Paralysis is NOT reset if the Siren de-spawns at 6:00 am but previously paralyzed the player


X - Lamps for teleport tunnels indoor and outdoor in front

X - Interior for teleport tunnels

X (Teleport Noose Implemented .... Holy Moly ... You need to discuss this with the testers ....)

X - Voice Prompts For Yama When The Player Uses The Noose

X - Added the wrong lamps to the teleporttunnels


X - Night Events Still Trigger Even With Protection In Place

X - BaseSound Near Pillars (Chanting) is too loud when idle

X - Fix Indoor Volume Hut

X - TeleportTunnelLamps Require Electricity For Some Reason?

X - add price to rebuilding pillar (1 firewood)


X - Fix text for firewoodshelf

X - Move light sources to Overworld folder and update references

X - Add Right Click Functionality To ExplorationCharacter

X - create a firewoodbasket where players can store firewood for future use (x4)

X - Test firewood basket and make adjustments

X - Create Vinegar rack

X - Test Vinegar rack

X - Create Candle rack

X - Test Candle rack

X - create a detailed plan, how lightsources, active protection, successful day count, and time of day influence night intensity


The first goal needs to be the implementation of functions, that calculate night intensity, active lights and protection:


X (Highlight all changes to the BP in yellow with comments, including new variables)

X - Create a protection check function that determines the multiplier "Protection Factor"

X - Create a lightsource check function that determines the multiplier "Hideout Light Factor"

X - Separate the night time check function that determines the addition "Night Time Factor"

X - Add a variable to GVC called "Total Player Death Count" and "Total Player Success Count" and tie them to X Explorationchar on death and the rewardchest

X - Add a variable to GVC called "SirenFactor" that updates on Siren detection each time, and resets on Siren Death

X - Add a GVC variable called "External Diff Factor" (this variable is still accessible through collision volumes if X need be)

X - Once all of this is done create a new "NightIntensityCalculator" Function, that uses all these parameters. Change X night intensity to a float variable and cap it at 0.0001


X - Finally note all changes to the hideoutBP in yellow with comments, including a list of added variables



X - Add protection to lightsources so they only decay if the cycle is interrupted

X - AND Lightsources need to decrease in relation to the active protection pillars

X - If necessary add these changes to the yellow list


X - Once the first pillar is broken, the others fall faster (exponentially)

OPTIONAL - Once the first pillar is broken during the night, this pillar can not be restored, consequently leading to night events in successive nights (add a king kanji, with the same texture as the bronze cage)

X - IMPORTANT: ISOLATE PARAMETERS THAT DETERMINE DIFFICULTY AND MAKE THESE PARAMETERS PUBLIC ON EACH HIDEOUT

X IMPORTANT: At this point, test, test, test and BALANCE difficulty


Testing Results:

X - A lot of light is unfairly wasted, trying to locate protection pillars in the dark of night

X ---> protection pillars need their own light sphere or emissive material (white highlights?)

X What if they glow at night in white light?

X - Night gets boring when they attack in same frequencies

X - added glow

X - added increase in intensity


X BACKUPS 18th February HDD


Testing Results 2:

X - Candles in the rack, should be lying down, otherwise they can be confused with active candles

X NOT FOR NOW DUE TO DIFFICULTY- Monks need a continuous check for player safety, indoor, weather fx and crouch, for X as long as he is inside the monk's view cone

X NOT FOR NOW DUE TO DIFFICULTY- Monks need to transmit the player location to the siren, until he crouches, goes X indoors, a weather fx begins or uses a lightsource. This transmission should NOT make the siren more aggressive, but X more accurate in her attempt to find him


X - add more keys to the world


X - houses need to be PACKED with items and resources so there is a definitive advantage to using lighter time

X - SOMETIMES static shadows are in dark places, they can't be in hideouts during the day, they are only in places without light sources

X - Monks can not be placed with their view sphere directly on top of the hideout, they should focus on the space in the VICINITY of the hideout or have overlapping lamps, otherwise the Siren will immediately paralyze the player when he leaves a lightsource, check hideout section01 8 lamps

X - Lightmaps on ferns is waaaaay too small

X - fun: lot of fun in the beginning, fun drops at sunset because he couldn't find a hideout and hid under streetlamp

X IMPORTANT!!!!!!- fun: player is being PUNISHED for being pro-active, turning on lamps in the beginning does not yield benefits. game X would be more fun if it was a "cascade" of events, that progressively get worse depending on mistakes the player makes. What if there X are "boundaries" around the hideouts? Light chains, cycles, protection of some sort and when that protection is interrupted, then X shadows "infiltrate" the hideout


X - Ravens are fucked up, code is executing slower -> speed variable needs to increase by factor of 10

X - remove the "Christmas Star"

X - reset player success count

X - auto-randomize protection configuration and test it

X - move "restore" text down

X - Configuration 7 has the kanji connected vertically which is weird, add 3rd connection and center the other two

X - Zealots need haunting volume so compass detects their presence

X - Test the zealots haunting sphere

X - Add fuse sizzle sfx to candles

X - change tutorial line "shadows are not affected by the light" to "most shadows"

X - currently zealots are only affected by the lighter, if it's already on before the player approaches him

X - test if the zealots leave when the player is camping a protection pillar with his lighter

X - test fizzle sound for candles


X - Tie the external difficulty factor into the UpdateProtectionFactor Function for shadow attacks on pillars, so that X changing it, causes changes globally. Also add it to the night event chain as a safety prevention.

X Keep it at 3 for default


X - There is a massive drop in FPS at night in the village (from 42-45 average to 32-36). Find the cause.


X - The cause is related to foliage. Likely culprit could be moonshadow ... do both lights in theory still cast a shadow even if they are hidden after 12 hour cycle?


X - Moonshadow only had minor effects .... it's something else .... find out which foliage asset causes FPS drops at night .... (it was related to pine trees with crazy cull volume, that was left after doing landscape editing)


Transfer The New Night Protection System To All 30 Hideouts, Add Pillars And Test Them

X - Generic Campsite

X - Generic House Short

X - Generic House Open

X - Generic House 1A



X - Consider a new system for souls, where they are simply like queen dancers, rotating in groups slowly. (FOUND TO BE NOT FEASIBLE)



X - Moths Are Too Loud, they drown out other sounds

X - Add Price To Pillars For Rebuiling and Adjust Rockpile To Include Wood




X - Check which generators are close to open boards, if yes leave them there. If a generator is close to a closed wall change the location so it can't be turned on from the inside



X - Any chance that Yama spawns? Reports of being pulled backwards... this is either de-penetration velocity or rogue spawn of yama ...

X - Very small amount of souls present across the world .... find an fps easy way ....


X - When players follow the red souls they get lost and don't understand their purpose

X - Items spawn on top of buildings, houses, large trees .... it destroys immersion


X - Players are able to leave yama's map and fall off the edge



X Then rework trees and environment of Section02 to conform to the new runes

X Then add hideouts, lootbuildings, chests, treehouses, bridges a.s.o


X Then start working on the "Mill hideouts" and "Mill non-hideout" incl. weather fx functionality

X Then adjust and build foliage for Section 03

X - Fix landscape LOD Issues and add low poly grass

X - Implement Willows and adjust textures

X - Implement Mill and adjust textures

X - Adjust dynamic shadow resolution and cascades

X - Create Mill Hideout

X - Add Mill SFX

X - New Soul System

X - Add Particle Text System

X - Create Particle Text BP

X - Create 125 Text Prompts (Tips & Hints, Lore, Inidividualized lore, easter eggs)

X - Implement 125 Text Prompts For Souls (randomized)

X - Create Ability For Souls To Escape

X - Add individualized Foliage instances for Firewood/Tinder/Huts




X - Tower needs key

X - area north of tower needs static grass

X - mill needs firewood

X - mill needs vinegar rack

X - huts need campfires

X - monks and treespirits are needed

X - yama teleport tunnel needs to be added to map03


X - Map needs souls


X - Willows at the road stop need lower Z

X - Mini pines need larger culling

X - willow bushes need larger culling

X - soul disappearance needs much lower attenuation

X BIG ISSUE: Soul Text doesn't spawn during weather event

X - Item Switch (Make Matches, the last item)

X - Fill cave with miniature plants

X - Nails on the bridge need wood surface physics

X - Clocktower noise should spawn in the distance but be audible for the player

X - Replace "You're paralyzed"

X - Replace "Black Won"

X - RAVENS DONT DESPAWN!!!!


X - Much lower probability for weather events in general, higher probability for rain and thunder

X - At night weather events need to be significantly shorter (maybe 30s shorter?) and only start much earlier

X- IMPORTANT: REMOVE BLIZZARD - it makes NO SENSE, IT KILLS FPS, Trees Dont move, no ground snow, Its XSHIT, its ALL AROUND SHIT, decreases FUN, REMOVE THAT SHIT

X - Grass in the redwood hideout


X IMPORTANT: Create Landscape Streaming Subdivision For All 16 Segments


X- IMPORTANT: When a protection pillar falls one or two intelligent shadows should spawn behind it, X they also need to despawn during sunrise and be tied to the protection pillar. When the protection X pillar is rebuilt, they should disappear

X - Cave Hideout needs a makeover, lighting and textures are ugly, no amount of plants can compensate that

X - Chairs in the redwood forest should not have collision, table needs collision box

X - increase visibility volume of both tower hideouts

X - clothes look too bright and colorful

X - in the cave one candle is covered by plants

X- Teleport tunnels need indoor lights (maybe very, very, small ones? so they can't be used for X safety? or maybe candles?

X - When triggering drapes and curtains with safety on, player still gets hit


X - There are STILL issues with hutBPs and fences after a map transition

X - Unreal Engine Crash Related To Section086 - Foliage Small Hut01


X - Big willow behind the heather hideout has roots out of the ground (found multiple)

X - lone baby fern on road close to zone transition to section 03 right before the rocks

X - Clear Road of all plants

X - Create fences for map transitions, so people won't get confused running in the wrong direction

X - Make Gates to cut off access to unfinished maps including public variables

X - world is lacking foliage at map transitions, isolate map segments and add foliage


X - Yama's house needs an iron fence or grating to make sure the player doesn't wander off 

X - Right now there are FPS issues when visiting Yama's store through the teleportTunnels



X - larger visibility volume around monks

X - compass doesn't reset at sunrise if shadows were close by

X - add "under construction" sign to platforms on section02



X - Right Click to remove items from campfires ...

X - Transfer Right Click Code To Hearthfire


X - Make the streetlamps dangerous

X - Chests Inside The Village Are Empty? Check especially Double House (Islandbuilding02)

X - when walking through the tunnel into the cathedral during rain, it rains inside the cathedral. Add option to make "Target tunnel is indoor?" that then removes the "indoor" removal after End Overlap


X - add locked chests

X - use keys to give players additional advantages for the player, not to always lock him out!


X - Hide locked chests across the world


Mittwoch, 5. April 2023

When It Sucks

 


Dear Reader,

Since you've made it to this little hidden corner of my dev blog, I'd love to share a secret with you today:

"I tested the game, and it sucks."

Well not entirely of course. But to my eyes, given my vision, my goals and my understanding of where it should be, it sucks. Plain and simple. And I know exactly why and I'll once again break my back over the next week to fix it.

But why would you write that on the internet!!! You are supposed to promote it, only share beautiful screenshots and talk about AMAZING new features.

You're not supposed to talk about the blizzard weather effect, that doesn't even move the trees slightly, while clouding the player's vision and that doesn't FUCKING STOP ONCE IT GETS GOING.

You're not supposed to talk about the ugly, ugly, ugly sections of the map, that you dread to re-do, because of UE4s beautiful accumulation of bugs, that happen when many instances of foliage actors are present.

You're not supposed to talk about the MASSIVE FPS drops, that occur when players go through map transitions during that fucking blizzard, that of course keeps going until 30 seconds before sundown so you can't even find a hideout let alone click yourself through the slideshow of images until you see something else besides fog.

You're not supposed to talk about the fact, that the souls suddenly stop talking after a weather effect takes place, because both particle systems max out UE4's internal limit, regardless of where and how you set the bounding box or turn them into GPU emitters in cascade.

Share a pretty picture on Twitter instead.

You're not supposed to talk about how you trapped yourself inside willow bushes on your mission to explore the world, after you've spent a good 20 hours re-integrating them after you realized they caused a framerate drop.

You're not supposed to talk about how it is god awful for the player, that he can only carry 4 (!) pieces of wood and 1 (!) tinder item, which ALWAYS leaves him short of lighting the first campfire, and how your dev integrity is in constant battle with your inner player conscious trying to up or decrease the difficulty.

You're not supposed to talk about the fact, that the shadows are SNEAKY FUCKING BASTARDS, that seem weak, move slow, are based on the most braindead AI known to man, but still scare the living hell out of you each time they catch you, bringing back mountains of childhood trauma and sleep paralysis.

Share a pretty screenshot on Instagram. Don't forget to post the linktree.

Don't talk about the compass, that just keeps going like a fucking fidget spinner after one of these trauma infested nights is over, even if there are no shadows nearby.

Don't talk about the watchers and the gallows and their heads and how you're secretly afraid, they will kill your FPS each time they see you, because their head movement triggers something in Unreal Engine, where it is completely overburdened by a moving collision box, that is NOT SET TO FUCKING SWEEP, BUT TELEPORT!!!!! And no matter how often you scream that at the engine, it still goes: "Is this thing sweeping? Prolly. Let's perform collision checks every step of the way".

Don't talk about the fact you've been working on this pile of shit for more than 9 years now and how you inject yourself with copium, telling yourself: "Well I had to learn the engine first" , while knowing fully well, that what you actually learned was to "work around" the engine's untreated and unfixed bugs, to which Epic's answer was: Fuck this, let's just release a new one.

Of course UE5 is also fucked, with new bugs and porting the project to UE5 would basically be suicide, knowing the list of updates they'll release. I learned all that when I originally ported it from UE3 to UE4. 

Don't talk about that. Check your followers on your socials.

Don't talk about the fact that your Dad called the game "Hinky's World" in a recent telephone call.

Don't talk about the stretched textures and low lightmap resolution in the cave, about the visibility spheres of some hideouts, where they suddenly pop into view 5 meters in front of you, how the player finds FRESH NEW CLOTHES in each dilapidated hideout, because you were too lazy to adjust those fucking textures too.

Don't talk about the footstep sound disappearing when he walks on the tiny, mini metal nail texture of the boardwalks, because you forgot to set the wood physics for that.

AND CERTAINLY NEVER TALK ABOUT DE-PENETRATION VELOCITY. The worst feature ever created. The demon of engines, the destroyer of physics, the breaker of a dev's will to live. A feature, that is fucking DEACTIVATED on every single item, every single mesh in the game world INCLUDING the player character and ALL HIS VOLUMES and collision, with PHYSICS IN GENERAL DEACTIVATED and yet he still ice skates across the meadow, because he moved a little towards that tree over there, and now the engine thinks: "OH MY GOD, HE'S OVERLAPPING, WE NEED TO PUSH, PUSH, PUSH HIM AWAYYYYYYYY"

Some days are just god awful. Fuck all of this. Let's get back to work.









Montag, 3. April 2023

Saw this scene while checking out hideouts


 

Saw this scene while checking out hideouts in map section 3. I'm also gonna start adding the linktree to all screenshots. Was probably dumb of me not to do it earlier.


Sonntag, 2. April 2023

Joseph Tonelli - My Situation

Through my window to my wall

It looks just right

Silhouettes of trees against moonlight.

Can't take my shoes off

Can't go out with the boys

That's my situation.


Can't write no song

Except about myself

Can't be distracted from no book down from my shelf.

And all them guitars that just hang upon my wall.

Thats my situation,

They just decoration.


And the trails gone cold

As the night goes on

For miles and miles without any destination

That's my situation.

That's my situation.


Now the shadows fade as dawn comes creeping through

The card is on the table

Once again I pulled the fool.

My eyes they feel so heavy

But my mind moves so damn fast.

I really needed rest tonight

But now my chance is past.

I really needed rest tonight

But now my chance is past.


And the trails gone cold

As the night goes on

For miles and miles without any destination

That's my situation.

That's my situation.


Now it's time to move

But man I just feel like a ghost

So many things I got to do today

I'll do 'em half at most

So I pray I get so worn down

Hell right now my nerves are wrecked

If I work my fingers to the bone well I might just get some rest

If I work my fingers to the bone well I might just get some rest


And the trails gone cold

As the night goes on

For miles and miles without any destination

That's my situation.

That's my situation.


Joseph Tonelli - My Situation

https://open.spotify.com/track/7KK22XEEOtHjHsLwWrIiL1

Samstag, 1. April 2023

Good News/ Bad News


 

Good News: Gameplay is engaging and mesmerizing in 0.5.3. The dialogue makes it interesting, tons of items, tons of locations, all previous issues resolved, ravens are optimized, siren is optimized, shadows are optimized, bugs are fixed, layout for 3rd map segment is done, new models integrated, new hideouts integrated.

Bad News: The picture above is what defeat looks like. Spent two days total finalizing foliage for the new map. It is now 11:40 pm at night and I started working at 6:00 am in the morning. When you deduct breaks and a quick nap, total work time amounts to 12 hours and 11 hours yesterday. (technically, you'd also have to deduct ue4 restarts, because of a fun little engine bug that fucks up the foliage editor when you switch between the foliage editor and blueprint view in your game, good times)

How did I get this game down to 2.5 frames per second? I added miniature versions of willows to create a "bush level" inside the forest distribution. Before I did it I thought: "You really should create a separate foliage instance for that, before you do it" and then I went like: "NAAAHHH, it'll be FINE, let's just adjust scale of the original models".

The original models have complex collision and high detail shadow maps enabled. So with the stroke of a brush (several strokes actually), I added 70.000 additional instances of this model with dynamic shadows enabled. The big ones NEED the dynamic shadow enabled, the small ones definitely do not. Because they are spread out in between the trees, there is now no easy way to remove them.

The drop in framerate happens during map chunk transitions. The maps are divided into smaller chunks, that are streamed through code (not through UE4 level streaming). They are loaded at startup and then hidden, so there are no hickups during explorations. This only works if the foliage distribution on each chunk is manageable for the GPU. 

Surprise. It is not manageable for the GPU, when you add 70.000 fucking bonsai versions of your most detailed assets to the map with dynamic shadows enabled. GTX 1080 had a performance peak at 99% and that's when I made that gorgeous screenshot.

Average FPS is still 30-40, but that's way below target. Target must be safely above 60 on most higher level machines. It's above 60 on the other map segments.

So why is this defeat? 

Since they are all part of the same foliage instance, I'll need to remove them all, then create a new instance for the willow bushes and then redo everything from scratch. Estimate 16-18 hours of work.

And because this day only has 1 hour and 10 minutes left, that is why this is defeat.

For now.

Sorry testers. I tried. I really did.