Montag, 18. Juni 2018

Developer Diary 88 - I'm on to something

How will I lead the player through the first level without craw call overload or GPU crash? How can I change day night rhythm without even changing the sun position and setting all lights to static? How can I introduce gameplay to him, while not making it too complicated, yet still keep it interesting? Well I think I found a way. The remake of "Shadow of the Colossus" was a big inspiration .... I've been cracking my head for weeks, months, even years about these issues.

First the player is led through a narrow path. He is surrounded by rocks and cliffs on both sides (HZB FTW!). He turns left and the entire world opens up to him. He's standing on the edge of a cliff overlooking the entire world. In the far distance is the first palace. But there is no way to reach it. Yet.

The hunters daughter starts talking to him. She lends him the power of Mahakala (Manta) to cross the gap. He is now able to call each dharmapala once, overcoming difficulties ahead of him. Afterwards he is on his own, and he has to fight for the attention of each dharmapala so he can use them  at will. His path leads him towards the palace entrance and when inside he has to make his way down.

Day night rhythms are achieved through post process filters ("Shadow of the Colossus" uses them so well in the new PS4 remake).








Sonntag, 10. Juni 2018

Developer Diary 86 - Creating Diffuse, Specular, Bump & Normal Maps for Each Palace Asset

While working on recreating each palace model I realized, that the surface properties of each model were somehow lacking in depth and detail. I spent some time on youtube tutorials and reading the UE4 documentation on various material maps and learned how to create diffuse, bump, specular and normal maps from basic textures.



At the moment I am creating these map sets for each palace asset, working my way through each one with GIMP.






It's a lot of work, but when you look at the surface screenshot above, it is definitely worth it.



Dienstag, 5. Juni 2018

Developer Diary 85

Over the last two months I have been working on the following things:

- I incorporated updates for UE 4.18 and Oculus VR that eventually let me check the FPS again without engine load. Since I found that with this new landscape I couldn't keep 90 FPS regardless of optimization I had to downgrade my landscape models again.






- With UE 4.18 Epic's crew changed the way in which foliage culling works for all instances, so I learned how to adjust each foliage material to the new culling code and adjusted all 53 foliage models and their materials. Thank you Epic. Thank you so much. And by the way: The code displayed in the official Unreal Engine documentation is wrong. It actually looks like this:






- I wrote blueprints for Butterflies, Birds and Dragonfly AI. They swarm around the player when he is close to a spawn point and they look beautiful in VR. In order to stay on 90 FPS at all times I had to minimize their movement and tie their code and creation blueprint to the event tick.







- I'm currently working on an overhaul of the palace models. At first I wanted to create custom LODs for them, but now that I have rebuilt one of those models I realized I could minimize polycount drastically if I rebuild them from scratch. It is a lot of work, but it leads to a much more smoother overall look, great LODs and larger palaces at 90 FPS.



Donnerstag, 19. April 2018

Developer Diary 84 - 3 Hours Environment Training Each Day





Putting in the effort is worth it. Waiting is worth it. Staying committed is worth it. And taking breaks and a day off is worth it.

Donnerstag, 5. April 2018

Developer Diary 83 - A New Approach



These two screens depict a massive increase in quality and detail. I have been fighting for this kind of quality for years now. And now finally I am content with what I'm seeing on my screen with an average desktop FPS of 50-60 FPS and a VR FPS of 90 on GTX 970.

I realized that it is possible to create a detailed beautiful forest by reducing it into branch elements and leaf elements. The day night cycle was supported by using a merging cubemap on my Exponential heightfog, that is incorporated into the day-night cycle script and disappears during night time, while reappearing during day time. There are cloud shadows and water reflections, yet not a single shadow on any mesh or building contained in the level and creating something like this that works without detailed shadowing and without dynamic shadows (apart from landscape shadows) was hard to do.

Meanwhile a lot of bad stuff is happening in my private life, but you can't hit a homerun every day. To all struggling developers out there: Never give up. Never, never, never, never, never, never. It doesn't matter if life throws shit at you, if there are arrogant assholes out there, that tell you your work is meaningless. It doesn't matter if you're scared or frustrated. None of it matters. Only what you do every day, every hour, every minute, that matters. The work you put into it matters.

Of course this is just the beginning. Ever since the last UE update none of my environment FX blueprints work, because they were all based on a node which was declared invalid with the most recent update. (On a sidenote: I love you Epic!) But again, it doesn't matter. I'm moving forward, regardless of everything else.




Samstag, 31. März 2018

Developer Diary 82 - What if Sisyphus was happy?




Over the last month I studied environment design and foliage placement. I incorporated a new landscape material by Pixel Perfect Polygons and worked on Depth of Field and bloom PP FX. Apparently UE4 still can't properly depict changes in the depth of field settings inside a post process volume, which makes the entire process torturous, because with every change in setting I need to restart the engine. I ended up deactivating DoF since at least for now the drop in performance is a huge problem when DoF is active, especially for VR.

But of course progress is minimal. Every day I open my session and adjust settings. Sometimes I work on Dharmapala FX, sometimes I work on foliage adjustments, sometimes I just open it to close it again, because I can't seem to get a grip on anything.

I'm afraid I am working too slow. I am afraid, that nothing I do is enough. I am afraid, that I will fail, and end up with a broken project I have been working on for years, without results to show for it. But I believe that none of it matters. I think that what matters is the work I put into it every day. Refining the craft, the skill. Getting better at it. Reading about it. Studying it, as if it was all I will ever do. But maybe I am naive. I don't know enough about any of this to be sure.

I spend the rest of my time playing piano. About 10 years ago I was able to play some really difficult stuff and when I recently started practicing again, I noticed that my former skillset was basically gone. Now I sit there every day ... practicing just like I did back then. And it soothes me, because it is a task that has no other purpose than it's own perfection. I don't want to go on stage, I don't want to show off. What I want is to play. To create handwritten pieces, arrangements, orchestrations. To get away from all the studio software, the mockups, the MIDI and just get down and work on the skillset again.

But there is no guide, no compass to go by whether or not I am on the right track. I simply don't know. It may just all be entirely pointless. I spend a lot of time on these things, and it is on the one hand very satisfying, yet it feels very .... absurd.

I came across this excerpt written by Albert Camus on the absurdity of life. He uses the metaphor of Sisyphus to investigate the ultimate dissonance between man's joy in life and it's depressive absurdity through repetitive tasks and endless efforts:

"The absurd man says yes and his efforts will henceforth be unceasing. If there is a personal fate, there is no higher destiny, or at least there is, but one which he concludes is inevitable and despicable. For the rest, he knows himself to be the master of his days. At that subtle moment when man glances backward over his life, Sisyphus returning toward his rock, in that slight pivoting he contemplates that series of unrelated actions which become his fate, created by him, combined under his memory's eye and soon sealed by his death. Thus, convinced of the wholly human origin of all that is human, a blind man eager to see who knows that the night has no end, he is still on the go. The rock is still rolling.

I leave Sisyphus at the foot of the mountain! One always finds one's burden again. But Sisyphus teaches the higher fidelity that negates the gods and raises rocks. He too concludes that all is well. This universe henceforth without a master seems to him neither sterile nor futile. Each atom of that stone, each mineral flake of that night filled mountain, in itself forms a world. The struggle itself toward the heights is enough to fill a man's heart. One must imagine Sisyphus happy.  "
1942, "The Myth of Sisyphus" by Albert Camus


I can relate to that.

S.M