Mittwoch, 21. Juni 2023

It's 6:22 am. FPS have improved, but more work is needed. I'm watching the sunset.

 


It's 5:48 am. The problem is identified.

 Three blueprints decrease the average FPS due to how they are set up.

- Rook Fountain

- Rook Fences

- Rook's Playground

On top of that the engine's FPS indicator was misleading, because Unreal Engine dropped FPS when the content browser displayed a folder with a lot of assets inside. That's why the FPS didn't make any sense during testing.

So all in all 9-10 hours in order to figure this out.

Awesome.

But at least I know what's going on now.

Still have only a very rough idea on how to fix it ....



It's 2:19 am

It's 2:19 am. And I am sitting here. 

For the last 6 hours I have been trying to figure out why the framerate dropped by 20 FPS after I finished the rook fight.

The Rook's Playground was probably the biggest and most complex thing I ever accomplished. And it looks amazing. And the framerate was stable yesterday. And now it's not. And I don't know why.

It's 2:22 am.

I load UE4 for the thousandth time. On a clear map, without any assets. With the editor open, my regular background BPs for atmosphere and weather running in the back I get 45 FPS. It's not great, but it's OK. The problem is, at the beginning of this year I used to get 60 FPS.

I open section 06, which isn't complete yet, it's mostly empty terrain with light foliage. 43 FPS.

I place the Rook's Playground. 22 FPS.

I remove the Rook's Playground, save, rebuild lighting and test it. 22 FPS.

It makes no sense. Something that is no longer there, can't hurt the framerate.

It's 2:26 am. I load the maps again, but forget to pre-load them before testing. The maps won't load. I force quit UE4 and reload it again. 

A fly is in my room and it's huge. I want to catch it in a glass to put it outside, but it resists all attempts.

I check GPU usage after loading the map. GPU is at 54%. The framerate is suddenly 34 FPS. Stat Unit shows that GPU is the bottleneck. How can the GPU be the bottleneck if it's at 54% usage.

I remove all blueprints from the environment. Everything, loading zones, Yama's store, hideouts, items everything.

It's 2:36 am. There is no peace, there is no rest.

After removing it all the framerate is 35 FPS. Marginal improvement.

I close UE4 again.

There is no peace. There is no rest.

The room is hot and humid from the recent weather. I can't open the windows or thousands of insects will come inside.

I know I won't sleep. There is no sleep.

I open UE4 again and load the maps. FPS suddenly changed to 39 - 40 FPS average. I didn't change anything. It makes no sense.

Over the last 2 months FPS has steadily decreased, but very slowly. Then the FPS drop after the Rook's Playground. It makes no sense. Why did the FPS decrease in the first place?

I figured the size of the session must have played a role in this. It grew with each model library I added and implemented. But if the size of the session and the number of assets were the main factor, Task manager wouldn't show just 10GB of Ram usage in the editor.

There is only one explanation and it's not pretty. The code is bloated across hundreds of actors. The Rook's Playground is also the biggest code I ever wrote. The FPS dropped after I added trees and foliage around it. There's a chance it already put a strain on performance, but I only noticed after adding environmental assets.

I have the compulsive need to do something. But the problem is too complex to fix right away. So I clean up the session, put assets in named folders and make the folder structure look neat.

It's 2:58 am.

Waves of desperation are hitting me. I know them well. The key is to just ignore it and try to get a good grasp of the original problem. Testing, testing, testing .....

If the issue is caused due to bloated blueprints, then they need to be slimmed down wherever possible and it can also be solved by spawning and destroying individual blueprints based on player proximity. But each blueprints state needs to be preserved, so that items can't be picked up twice in short succession. More loading zones would also help. But that means I'd have to rework the level loading structure again. Without having the certainty that this will actually fix the issue.

I used the debug camera to check loading distances and culling and it's textbook perfect. Everything disappears in viewing range and in many cases even earlier (which is not a good thing and should be fixed, but increasing those values costs performance).

It's 3:04 am.

I wait for UE4 to clean the old references of the files I just moved into folders.

A thought occurs ... I often created copies of old blueprints and left unused variables in there. I should clean those up as well. But then again if they were the main cause, I'd see improvements after removing those blueprints. And improvements have been marginal.

I don't know. I fucking don't know. Can't afford to delay. Can't afford to sleep. I can't betray my schedule on the development again. I've done it so many times. My only excuse is that I didn't know the engine well enough and that's why I made so many mistakes. But now I do. And I still don't get it.  

UE4 is done clearing the files and registering all the references. I test the scene again.

No fucking way. 50 FPS.

Again, it makes no sense. Clearing files and references that are NOT PART OF THE LEVEL I'M TESTING SHOULD NOT AFFECT FPS.

I test a weird blueprint system that replaces large complex BPs with a simple copy of the same BP that is just a mesh and spawns in the complex one if the player approaches it.

Map with complex original BP: 37 FPS

Map with fake spawner BP: 42 FPS

Hmmmm ....

It's 3:32 am.















Dienstag, 20. Juni 2023

Lore Chapter 04: A&S

 A peaceful night. A being moves closer to the arbiter and initiates a conversation with her. 


S: I don't understand myself anymore. Why do I follow you? It seems that all you preach is just darkness and death and hopelessness. That's not the essence of life or existence at all. It is a part of it yes. But not all of it. And yet I find it difficult to just leave you behind.


A: Well. You are always free to enter into a new body and follow a different "faith", if that's the word you're referring to. If you believe that a fresh message is more suitable to you. 

Of course the Buddhists will tell you, that your ego is clouding your judgement and you yourself are at fault for your misery, because you're attached to impermanent phenomena. Of course they wouldn't use the word "at fault" or blame of any kind. They'd call it "responsibility". Sounds cleaner. Wouldn't want anyone to think you're secretly gaslighting your own Sangha here.

The Christians will tell you, that someone you never met died for the sins you didn't get a chance to commit, because you hadn't been born yet and that therefore you should live your life in atonement of those sins. And to also give them money. Every week.

The Taoists will tell you, that the world is actually perfect just the way it is and that you're just waaay too attached to the lack of torture, depression and suffering in your life, so you can't see it's eternal perfection in the blood of your loved ones. 

The Hindus will tell you, that you're just part of a big dream of a vast and expansive consciousness and if you happen to get caught in a nightmare it's ultimately irrelevant, because you're just an unlucky bastard who happened to be an asshole in his previous life and you're now trapped in the universal center of that asshole's reborn perspective. 

The Shinto followers will tell you, that your ancestors and evil spirits are poisoning your mind and with the right ceremony and/or peace offering you'll be fresh as a daisy again. 

Personally I don't know much about Muslims. Maybe try that. I'm curious about what they're up to.


S: Why are you so cynical about those perspectives? You must have experienced the vastness of consciousness and its ability to give rise to all things. You make it seem like all of these ideas are ridiculous, when they are in fact artful metaphorical attempts at connecting these spiritual experiences with their followers' daily lives.


A: If I'm too cynical for your taste then why do you listen to a single word I say? You were rich in your previous life. You had everything and never even encountered an act of mortal violence. I have beings, who got their heads cut off around here. What was it with you? Some light depression? Difficulty getting up in the morning? If you're still full of light, there's no need to follow me around like a confused puppy.


S: That's right. I did have it better than others. The reason I stay is, that you don't hand out blame. If I understand you correctly, you believe that responsibility for ones actions only goes as far as a drowning man can be held responsible for what he grasps for. In a sense you preach forgiveness.


A: We're all drowning. We're all bleeding. Some of us quicker than others. Some of us have learned to deal with it, to accept it. Others have not. It is cruel to put a mirror in front of a dying man and expose his shame in order to blame him for his own misfortune.


S: You're referring to the king?


A: Who else? He jerks himself off over his own "sacrifice". "Look at me, I refrain from becoming a god, so I can guide you freaks towards the next mudpit". It's sickening. 


S: But he must earnestly believe in what he does. To me this does in fact sound like a true sacrifice.


A: He believes, because he has to. Sunk cost fallacy is a thing in the afterlife as well. Can you imagine what would happen to his mind, if he realized he was wrong? The damage done to all of these beings ... the horrors he put them through ... just for the sake of teaching a new useless lesson.


S: The way I understand it, is that the lesson to learn is "love for one another". Regardless of what form this love takes and regardless of what type of being that love is directed towards. We are connected on a deeper level. When I first arrived here I felt incredibly relieved ... I was no longer bound by my physical form, yet I felt like myself. This connection that we all share ... it is something we rarely become aware of when we inhabit a physical body. If we are to exist in a dual reality, we must learn to deal with the absence of love as well.


A: Have you?


S: Have I what?


A: Have you learned to "deal with it"?


S: ... it's easier here. It's very difficult to do it over there.


A: That's right. Because "over there" is broken. 


S: But isn't that kind of an ungrateful perspective? We receive the chance to experience the beauty of a million stars ... of falling in love ... bearing a child and raising it ... experiencing new worlds, new realms, countless dreams. Yes one can see everything from the perspective of decay. But you can also see it from the perspective of a stargazer.


A: Oh my. You're a romantic. When the light of those stars reached your retinas, those same stars had already died. You can sit there and look at the stars and marvel at the wonders of space and time. But you're admiring a lie. And that's not your fault. It is baked into the system. That is WHY it is broken. When Buddhists speak of suffering and impermanence they're not kidding. They understood the nature of reality and that we're all ultimately fucked. You aren't supposed to experience peace over there. You are supposed to struggle to extend your stay in that place. Or you can decide to not extend it, and then you come over here and the asshole in a black robe sends you right back where you came from. There is no escape. That's why it needs to end entirely.


S: But what if at some point we all achieve peace over there? Let's say we learn to embrace duality and work towards a universe that does have room for suffering, but where suffering is no longer central.  What if we are able to transcend it at some point? What if we learn to accept the things we can't change and develop empathy for one another? Every act of kindness reverberates throughout space and time. Every being that overcomes its own darkness opens the door for countless others that will succeed it.


A: You have faith. I don't. This is where we are ultimately different.


S: But shouldn't you at the very least give creation a chance to fix itself? To evolve? To develop? Before you throw it all under the bus?


A: Whether creation deserves a chance is not up to me. All I can do is follow what I believe is right. My choice is to work towards an ending of this existence. This choice was born from experience of that very same existence. I said it to him and I will say it to you: If your vision of this universe is accurate, then this system will defend itself successfully. If you're wrong ... then it had no reason to be here in the first place. I am merely a catalyser speeding up the process.


S: But you're doing it for egocentric reasons ... just because you can't bear existence, doesn't mean that all existence has to end.


A: You said it yourself. We are all connected. If you're advocating for the continuation of existence, because some forms of existence may not have it as bad as others, you are a massive part of the problem. Your curiosity drives you into a loop of permanent suffering. And by following it willingly you're also condemning all other beings to that same fate. 


S: But we enter this world based on our own volition!


A: Is that so?

(The arbiter manifests a bronze cage in front of the being)


A: Go on then. Choose.

(The arbiter opens the cage door, beckoning the light being to enter)


S: ...


A: It's fine. I'll bring you to him in person. It'll be like a ... ride "to the farm upstate".


S: ...

(the being hesitates)


A: I thought so.

(the arbiter slams the cage shut)

A: Not so funny when you actually have to act on it.


S: Doesn't that make us cowards?


A: Is a man bravely smashing his own head with a hammer, so he can see the stars worth admiring?


S: I think your metaphors are inaccurate and deceptive.


A: Think what you will. Stay. Leave. It makes no difference. But I enjoyed our little conversation tonight.


S: So did I.














Montag, 19. Juni 2023

Can you spot the hideout?


 

Lore Chapter 03: The Painter & The Musician

(https://www.youtube.com/watch?v=Nqt3bBtPMZc)

A speck of light floated across the open fields as the night was approaching. With the sun setting, soft curtains of darkness fell on the beautiful canvas and coloured these open fields in glimmering ember. Soon all light had faded ... except that little speck of light, that was now floating across a little stream. It enjoyed listening to the calm flow of water making its way through the night. But then its peaceful meditation was interrupted by the sound of ... licking? A creature drinking? But this did not make any sense ... there were no physical qualities in this place. No bodies with organs ... just formless shadows and shapes. 

The little speck of light kept listening more closely: The calm flow of water ... a strange splashing noise reminiscent of a large animal drinking from a stream ... and ... a melody. So distant ... but distinct. It sounded familiar. Like the voice of an old friend. "It's him", the speck of light uttered in complete disbelief. "I need to find him".

He slowly moved into the direction of the melody. Each note became more clear as he continued moving forward. The key ... the phrasing ... it was all so familiar to him. But it was difficult to move forward through the darkness. The little speck of light knew he was moving closer to the source of the music, but also depressingly aware, that he was moving slower and slower as time went on ... until suddenly ...

Bump.

Solid.

For the first time since his arrival he bumped into something solid.

And it was soft. And fuzzy.

Like a pelt. 

But cold.

Completely taken aback the little speck of light moved back and directed his view against the moonlight to make out the shape of what appeared to be a very large, misshapen deer. Its neck was distended and elongated. He couldn't make out its eyes, but felt its gaze upon him. Attempting to move around it he once again found himself bumping into it. The deer appeared to move in sync with him, essentially blocking his path forward.

"Let me pass", the speck of light said.

The deer mustered him: "Where to?" she asked in an innocent almost childlike tone.

"I need to talk to an old friend", he replied.

The deer slowly began to move. One step at a time the arbiter moved circles around him like a predator gaining interest in its prey. 

"How do you know him?" 

The speck of light was unimpressed by this behaviour. After all, what could be worse than death?

"It is none of your business", he replied.

"Oh but maybe it is. Maybe he's my friend too", she countered.

"Fine", he replied. "In my life I was an artist, a famous painter. I was very successful. In my early years I met a musician. We were friends ... but also connected on a deeper level. It was like we had known each other for many lifetimes. During our travels we encountered incredible places and experienced unimaginable things. We slept in cold places and underneath the stars, talking about life and death and wonders of this world. One night we almost froze to death. There was only one blanket. He gave it to me, but when I saw that he was shivering I gave it back to him. But then we had a falling-out a couple of years later. I haven't seen him since then. But I know he's here, I can hear him."

"I can hear him too", the arbiter smiled. "It's pretty, isn't it? Would you say it's a happy tune?"

The speck of light was confused by this question.

"Well ... not really. It's melancholic in a sense. But all great music is at least a little sad, right?"

The arbiter moved slightly faster around him.

"Tell me. Why do you want to see him?" The tone in the arbiter's voice became more serious.

"I just want to catch up", the speck of light replied.

"Why do you want to catch up?" she barked back.

"Because he's an old friend and I miss him"

The arbiter's eyes lit up. "That's right. You miss him. So you act based on your emotions. That's understandable. That's perfectly acceptable. You act based upon your self interest."

The speck of light suddenly became frightened of the creature. "You make it sound so ... wrong? Egocentric even? What's wrong with wanting to see an old friend?"

"Wrong is a strong word", the arbiter replied. "What purpose does it serve? Is it ... worth it? For you it is I'm sure. But the value of this encounter should be considered for both parties equally. In the time you were gone, he watched beings die and draw their last breath. Beings that were very close to his heart. Worked himself to death for nothing. Fought with people he loved for nothing. Broke with people he loved for nothing. Cried until the sides of his eyes were bleeding, for nothing. Sacrificed his sanity for others, for nothing. Unveiled his past for nothing. He willingly and unwillingly explored the peaks of suffering. For nothing. Well, not entirely for nothing. He met me.

There are others like him here too. He's safe here. He joined a community. They all saw the world and all existence for what it truly is: A mistake. They all had a moment of ... clarity? I almost called it "Enlightenment". But that might have been a little confusing, right? With each cycle more beings will awaken to the error of existence. Right now their childish resistance is still ... palpable. But it won't be for long. Sooner or later even the most comfortable beings will see it too. Serpents will hiss it from the depths of the ocean and dragons will scream it from the tops of mountains. And when your time is up and they catch you, even the king will have intellectually evolved to a point where he can give it to you straight." 

The arbiter stopped in her tracks and bowed her long deformed neck before the little light-ball to look straight into its center: "My child. The light is a lie. And it always was."

"Who are you?" The speck of light asked.

"You'll meet me too one day. Maybe not like this or in this timeline. Maybe I'll look different to you. I might even take on human form if that's more to your liking. I'll come visit you ... when you're done. When you're truly done. When you've invested and hoped and fought and really, really tried across countless lifetimes. When you've grown tired of running around in circles of hope, sacrifice and disappointment. When you're spending your last remaining energy to learn "acceptance". When you've learned that neither death nor life will bring you true peace. When you're building your own beautifully adorned walls, brick by brick to protect the last beings that have any meaning to you. When you've closed the gates and mounted the eagle's nest with your weapon in hand. And when you rest in the sound of wind in the trees. I'll come by, when you're fully equipped, well armed, perfectly protected and ready for the night. And when that time comes, I know you'll let me in. I won't even have to ask for water."

The arbiter disappeared in the darkness and with it the last sound of the melody that was elegantly floating through the air just a second ago.


Freitag, 16. Juni 2023

Lore Chapter 02: A&R

R1: My dear brother. There was no barrier anywhere in sight. This little scamp proceeded unobstructed towards the goal.

R2: Oh gentle soul. In deed there was, your barriers are simply inferior. You see, they can stop one but not the other. Like a rock will move through the surface of the water, while a leaf will float on top. A faulty assumption confuses your mind and appears to obstruct your path towards self-reflection.

R1: My dear brother. I can assure you, my mind is intact and wide awake. You should not be ashamed of your shortcomings. Remember: "Concentration is key". Don't let your mind drift, but ensure its focus. The little rabbit's mind is very focused when the hunter sets out to take its skin. I am confident, that next time you will be able to direct your mind more skilfully towards the action on the ground.

R2: Oh gentle soul. Are you truly wide awake? Or did your perception deceive you once more, since you barely mentioned our visitor during this exchange.

R1: My dear brother. I felt it would be impolite to distract from our conversation simply based on the presence of a pawn. But continue, if you wish to engage with it to relieve yourself from the discomfort of this conversation.

A: First impressions can be deceiving.

R2: Or they can be spot on. (bowing down) Tell us little one: How did you lose your way? Did you get confused by those deep, dark woods out there?

A: Is that what he said to you before he brought you to this place?

R1: My dear brother. I sense this pawn is a grumpy one ... there's no reason to forget your manners little one. We are just here to help.

A: So am I.

R2: Such a sweet little creature. Oh gentle soul: Is there still space in the ranks tonight for a confused little vagabond? 

A: This being does not intend to participate in another circus. No matter the amount of invitations it receives from the director's clowns.

R1: ....

R2: .... apparently we will simply "make" room in the ranks tonight.

A: Do as you must. I came here to ask you one simple question. Are you content with your place in this world?

R1: My dear brother. This is the first time someone's cared about our well-being for a very long time. So sweet. This being should join the other team once the games begin.

R2: Oh gentle soul. For the first time tonight it appears we are in agreement.

A: Both of you failed to answer. The question seems to offend you. I wonder why?

R1: My dear brother. Are you offended? 

R2: Oh gentle soul. Me? Never. The little one seems to be confused by the rules of the game. But it will learn in time.

A: Why would two mighty giants hide from the questions of a pawn? 

R1: Yes we are content. Are you content my dear brother?

R2: Very content gentle soul. And will probably be even more content soon.

A: Good. I'm glad to hear that. But then ... you didn't seem content when I arrived. What were you arguing about?

R1: Little one, we are brothers. Brothers argue.

A: But why?

R2: Why brothers argue? Because it is the law of the world. Brothers share similarities beyond just their appearance. We observe our own shortcomings in each other, then we discuss them. This is uncomfortable, but it leads towards a stronger bond. 

A: But why is that work necessary to begin with?

R1: Little one, our minds are free. We are free to interact with each other or to refrain from it. We always have a choice in the matter. We choose to work together. Our collaboration has many benefits. But this collaboration inevitably leads to disagreement. We made our choice and that choice comes at a price. 

R2: Oh gentle soul. How right you are ...

A: And for how long will that choice carry you?

R1: Time is not really a concern of ours, little one.

A: But shouldn't it be? The choice to suffer your better half is made continuously. Once you choose differently, your existence changes as well. Your choices are made, because they serve you well. For now at least.

R2: They don't just serve "us", little one.

A: Right. Does that mean, that you bear each other's existence for his sake? You are altruists?

R1: We find quite a lot of joy in our mission, little one. I can assure you.

A: But that joy is transitory. Inevitably you will blame each other again. You are not collaborating to fulfil a purpose, you are suffering each other's presence because you were never taught an alternative way to exist. You have gotten used to your routine, that feeds you little treats of sadistic pleasures, but you're always hungry nonetheless. When you can't torture other creatures, you decide to torture each other. And the wheel turns and turns ...

R2: Oh gentle soul, I believe this being will make a proposition soon.

R1: That's right dear brother. Deep speeches like this are often followed up by a cunning ploy to convince us of an opposing point of view. Are you excited to hear it, my dear brother?

R2: Oh gentle soul, I am on pins and needles.

A: Leave him. 

R1: ...

R2: ...

A: That is all I have to say.

(as she slowly turns to leave, the rooks block her path)

R1: Please stay with us little one. You are wildly entertaining.

R2: This gentle soul is right. We would like to hear more.

(she moves through the barrier effortlessly)

R2: Oh gentle soul. When will you learn ...











Montag, 12. Juni 2023

Rooks & Dark Times


 

Currently I'm going through a phase of exhaustion and darkness, but that's just life. The rook boss fight is functional so "yay".

I haven't posted regularly on social media for the last couple of days so the algorithm will probably fuck me again. So be it. Fuck the algorithm.

Progress is happening. Just gotta keep going, one step at a time.