It's been a while since I've updated this developer diary.
Over the last three months I spent a lot of time with external mixing jobs and non project related work. But I earned a decent amount of money and even managed to get a raise at the licensing company I work at, after putting in tons and tons of extra hours.
During the second half of November I returned to Lakini's Woods, but still had tremendous problems getting my head back into the game. I struggled with my previous level design and finally decided to upgrade my GTX 970 to a Geforce 1080 Ti. The difference is noticeable, but it took me a while to find the best deal and even after the card arrived I had some trouble integrating it into my MacPro Setup (Drivers, Updates, Oculus Firmware a.s.o.). Just getting the card to work with Unreal and Oculus took me a good week of forum searches and troubleshooting.
I then divided my previous level setup into smaller areas and started creating a main menu, with basic button functionality. At the moment I am working on the overall button design and tomorrow I will do my best, to get them to work correctly, including SFX.
I have a lot of trouble with my motivation these days. I live close to the alps and "winter's coming" sort of .... I don't sleep much, but I find little motivation in moving the project further ahead. I wish I could just nail my windows shut and stay inside my house for the rest of the year. But every time I stop working on Lakini's Woods for more than a couple of weeks, a horrible feeling starts to creep up inside of my chest. As if I am neglecting a good friend, or a loved one. I feel some sort of responsibility in connection with this project. So I will do whatever I can to move this ahead before the end of the year.
Dienstag, 11. Dezember 2018
Montag, 3. September 2018
Developer Diary 93 - Forest Walls
I finally found a solution that limits each deep forest segment, yet doesn't destroy game immersion when hiding the exterior world - forest walls.
They are arranged like walls in a maze and thus determine the players path through the forest segment. This is an example screenshot - Top View in Player Collision Visualization:
From the side they look like tree trunks (cylinders and pyramids with a high Z value):
And in game with lighting and foliage they work incredibly well and blend into the atmosphere while limiting the players path and hiding enough masked foliage in order to protect from overdraw:
I'm happy. They are however quite expensive polycount-wise .... each wall has upwards of 8000 polygons due to the minimum necessary complexity of each cylinder to create the illusion of a tree trunk. But with some decent LOD settings I should be able to tone that down as well.
This may seem like a small thing, but it is a huge step on the way to an effective and stable game performance.
They are arranged like walls in a maze and thus determine the players path through the forest segment. This is an example screenshot - Top View in Player Collision Visualization:
From the side they look like tree trunks (cylinders and pyramids with a high Z value):
And in game with lighting and foliage they work incredibly well and blend into the atmosphere while limiting the players path and hiding enough masked foliage in order to protect from overdraw:
I'm happy. They are however quite expensive polycount-wise .... each wall has upwards of 8000 polygons due to the minimum necessary complexity of each cylinder to create the illusion of a tree trunk. But with some decent LOD settings I should be able to tone that down as well.
This may seem like a small thing, but it is a huge step on the way to an effective and stable game performance.
Samstag, 25. August 2018
Freitag, 24. August 2018
Developer Diary 91 - Depth of Field, Brushify Landscape Models and AI
Over the last couple of weeks I have been working tirelessly on a number of things.
1.) I replaced most BG landscape meshes with new ones from Brushify
2.) I was bouncing back and forth between forward shading and deferred shading. For some reason depth of field settings for all PP Volumes weren't working in deferred rendering mode, however I got it to work after switching between both modes back and forth and experimenting with several settings. I will probably stick to deferred shading for now, as it gives me the opportunity to use high quality water reflections (see above).
3. ) I added depth of field settings to the underwater PP Volume
4.) I added a HunterAI to the game, that chases down players in the woods.
5.) I added 3 dimensional VR Game Over Screens (read: Game Over Rooms) with AI specific descriptions of what killed the player.
6.) I also worked on a bunch of other stuff, including spider webs and expanded forest rooms with navigation meshes and advanced lighting. But it may take a while until I can showcase these things.
1.) I replaced most BG landscape meshes with new ones from Brushify
2.) I was bouncing back and forth between forward shading and deferred shading. For some reason depth of field settings for all PP Volumes weren't working in deferred rendering mode, however I got it to work after switching between both modes back and forth and experimenting with several settings. I will probably stick to deferred shading for now, as it gives me the opportunity to use high quality water reflections (see above).
3. ) I added depth of field settings to the underwater PP Volume
4.) I added a HunterAI to the game, that chases down players in the woods.
5.) I added 3 dimensional VR Game Over Screens (read: Game Over Rooms) with AI specific descriptions of what killed the player.
6.) I also worked on a bunch of other stuff, including spider webs and expanded forest rooms with navigation meshes and advanced lighting. But it may take a while until I can showcase these things.
Sonntag, 5. August 2018
Developer Diary 90 - Level 01 - For Real This Time
Ok, I know how depressing that sounds. Years of work and I keep making a total overhaul of the first level. So what did I do these two last months?
- I recreated the manta palace, this time focusing exactly on how it looked like when I dreamed about it
- I spent a solid month figuring out a lighting bug in the engine, updating both the engine (twice!), GFX drivers, and Oculus drivers in the process
- I made an overhaul of the underwater experience and adapted several factors that sucked away valuable FPS in VR
- I created a demo landscape in which I placed the finished palace to see how it will integrate into the overall atmosphere of the woods (see last picture).
Ok, so what is different now from the previous versions?
The screenrate is a solid 90 FPS on GTX970 and the visuals are coherent and beautiful. There are no day night rhythms in real time anymore. I completely converted the lighting for the entire game into "static lighting", since dynamic lighting forced me to remove most of the shadows, greatly reducing game immersion.
The current version of the game feels very different than the previous ones. It feels right. It feels close to what I dreamed about, when all of this started developing in my head years ago.
I still have massive problems with the game's shadows though. UE has a ton of lighting bugs that come to surface when you are trying to light large scenes or architectural areas, that are split into smaller subdivisions and I don't know how to fix them. I learned from several PS4 games which meshes need to cast shadows in order for an environment to feel realistic, but implementing it is far more challenging. Especially if the engine decides to shade your entire level, for no reason other than that it thinks it should.
The palace shown in the images above, is how I want it to look. And I can say that wholeheartedly. The music merges perfectly with the environment and the movement of the mantas matches up perfectly with the rhythm of the music. I have a lot to learn about lighting in general, but I spend every day on it, fixing larger and smaller issues wherever I find them. Building a game from scratch when you have sufficient background knowledge is one thing, but doing it while learning the craft each day is a whole different story.
So whoever is reading this: please be patient. I know I tell myself that very thing each day I work on this little world.
Dienstag, 19. Juni 2018
Developer Diary 89 - Manta Palace Demo
This is a demo of the manta palace. I will have to rework the entire thing, because the proportions are mostly unrealistic. But the entire thing looks beautiful and works well on 90 FPS in VR. I hate that I can't work on these things as much as I want to for the next couple of days. But I have to work on other things to earn money for food and electricity and stuff ..... at least I made some decent progress over the last week.
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).
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).
Dienstag, 12. Juni 2018
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.
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.
- 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.
Abonnieren
Posts (Atom)