Oh Man, Where To Start…

I look back on the last 10 years (yes, it has been a FREAKING DECADE since the release of OoH 2009, can you believe that?!) I just think about all the time that I squandered, all that time just…fumbling around in the dark, so to speak. How in the hell did I let it all slip away?

It was last year when I kind of hit rock bottom. It was just about life in general, my own personal development and the state of the project. There were times when I’d find a quiet place outside, sit on a bench with a cup of black coffee and just contemplate about my direction. There hasn’t really been a time in my life where anything has gone completely smoothly. Why do things have to be so difficult sometimes? Why couldn’t life just be straightforward?

When it came to this project there were always stumbling blocks. Whether it was the Engine itself or the Apps I use, there were always issues and limitations that I had to figure a way around. Any time I made a small advancement, there would just be something that would set me back 5 steps. Constant annoyances and frustrations sap away energy that should be put into creating. I really, really don’t know how I’ve been able to overcome these problems (I’m stubborn I guess and a little on the batshit-crazy side) but I’ve somehow been able to do it.

2019 so far has been the year of breakthroughs for me, both on a personal level and with this game. I just got tired of coasting through life like a lazy idiot and finally got my shit together. I stopped procrastinating because that is how 10 goddamn years passes by and it just feels like 2.

I reached several personal goals (I won’t go into them but they were very important) and took care of some health-related things I kept putting off. I made effort, I mean real effort, moving this game forward. You would be astonished if I were to show you exactly what it was I was doing behind the scenes for the last 5 months with this game. I crunched a lot of stuff in a relatively short amount of time. I managed to keep researching new methods of doing things in the Engine and even learned a few new programs pretty quickly. Sometimes I don’t know how I’m able to absorb all of this shit without going completely mad.

Interestingly, as if the Universe itself were giving me a nod to continue onward, out of the blue I recieved emails from several different contacts that I hadn’t spoken to in 5-7 years! Not only that but also a recent flow of emails from fans all wishing me well, telling me how inspiring OoH 2009 was to them and to keep going forward. I seriously don’t know why you guys have stuck by me for this long but thank you.

Jun3

I want to tell you about possibly the largest advancement ever made for this project. It is literally a game-changer. I managed to put together a fully dynamic lighting system and it runs smooth and looks good! Well, system is perhaps a bit misleading because there isn’t a drag and drop solution to the way the lighting is set up. There’s just a ton of fuckery going on here so let’s just say I came up with some methods to do this. Now, none of it is physically correct but hey, it works and it looks fine to me!

Ages ago I fiddled around with UE4’s LPV system but that’s been officially abandoned for some time and there hasn’t been advancement on the Dynamic Global Illumination front. I needed to have a fully dynamic lighting system for this to be the game that I wanted. When I couldn’t do this, I settled for Static Lighting and used workarounds to somewhat achieve the gameplay mechanics that I needed. This was all well and good but the problem with Static Lighting was the ridiculous render times it took on a large level. It takes time for the Editor to calculate all that gorgeous GI and bounced lighting but it got to the point where I just got sick and tired of waiting and I couldn’t work with it anymore. I decided I had to find another way around or not continue on at all. I was at that point.

Typically, I would build the map and set up lighting without rendering it (in essence, working blind) and in the morning before I left for work, I would render out the map. For the GPD Level, this process took nearly 4 hours! You can see why it takes me so long to do things. Any time I lit a new area of the map, I could only imagine what it would look like and if I wanted to see exactly what it looked like, I would have to wait 4 hours. It really sucked when the lighting didn’t look the way I thought it would have, so I’d have to make changes and then it would take me another 4 hours to see the result. Sometimes, I would come home to discover that the Editor crashed at the 92% mark and I’d have to do it all again. FUN! If there was a way for the Engine to ignore any data that hadn’t been changed and only render out any part of the Lightmap that was altered, that would speed up the process! But I’m not a programmer so I don’t know what that would entail.

Another problem was the Lightmap filesize. I essentially rendered each map 4 times to cover a morning, afternoon, evening and night phase. 4 iterations of a single map at over 700mb a piece?! Ridiculous.

Jun15

OOH-GPD1 is the Dynamic light version. NEWFOG is the the Static Light version. Look at the differences in the .uasset filesize.

Now with the Dynamic Light workflow, I lose the precalculated GI but am able to fake some of it to acceptable levels. Everything I see is in real-time, no more waiting 4 hours to see the results of any changes.

Jun4

You may be worried that because all the lighting is dynamic that the game would run poorly (Dynamic shadows are very costly) but I’ve done what I could to counter that. Almost all meshes in the game have multiple LOD‘s, I’ve set up Cull Volumes everywhere, Shadow-casting lights have cull distances, I’ve tried to limit the overdraw and my Materials are relatively inexpensive.

Jun1

Lots of Speedtree assets and grass naturally swaying and reacting to the wind yet still running at good framerates!

Jun10

I just love how organic Speedtree assets look!

It also took me some time to find the sweet spot for shadow quality but I think I got it. Initially the shadows looked even better but then I started getting these random Grey Screen Of Death crashes multiple times in an hour (tried the latest Drivers and even rolled back Drivers to no avail)

I had to set up autobackups to occur every 4 minutes because it was so bad. I finally narrowed it down to the lighting and shadow quality putting a strain on the GPU, made the necessary changes and haven’t had a crash since.

Jun11Jun9Jun8Jun7

Jun6

You’ll be seeing a lot of these guys…in one form or another. 😉

Jun5Jun2

When I first built the Day/Night cycle I was using Sequencer because Matinee was deprecated at this point. Despite the recommendation to use the advanced Sequencer compared to Matinee, I found myself having a tough time with it and found it very unintuitive! There are some quirks that really make me scratch my head as to why they chose to do things a certain way (But then again, that’s with every program I use) Since I already knew how to use Matinee because it was in the UDK, I got it up and running very quickly using just my knowledge from the UDK days.

Jun12

Timeline in Matinee. It’s streamlined.

Jun14

Jun13

Exact same Timeline converted to Sequencer. Ugh.

Im hoping (the word here is HOPING) to have a playable demo for some close friends in a couple months time to see if they like the direction I’m taking Out Of Hell.

Thanks for stopping by and now I’ve got to spend the next few hours backing up all my work!

8 thoughts on “Oh Man, Where To Start…

  1. Glad to hear you’re still pushing through and got your boost again. Really enjoying the write-up on the Unreal Engine quirks you’ve been encountering along the way. Just earlier this week I fiddled around with the level sequencer to try to render out a4k video “fly through” of the quixel scifi hallway marketplace level with ray/path tracing enabled since my poor GTX1080 wouldn’t have been able to handled otherwise. The results were nice but it took quite a lot of random clicking around to figure out how to include asset animations in the render.

    • I wish Sequencer were a little more organized. I don’t know if I may be using it wrong or something but it just seemed like a huge step back from an organizational standpoint. Matinee has its limits and frustrating problems as well though. It sucks that I have to set up a Blueprint just to change a variable that isn’t accessible through Matinee but is readily available in Sequencer.

      I wanted to limit how much Blueprint stuff I’d have to do for the Day/Night cycle and do it all in Matinee but there’s no avoiding it.

      Another wild goosechase moment was, at first I had to lobotomize the BPSkysphere stuff just to have a different method of texture movement going. I put all this time into building an intricate system utilizing their Blueprint code only to find out later that Sunlight reflections in the scene do NOT update in realtime if you do it through their Material! So at midnight, there’s this wonderful orange sun reflection in all of my blood pools and water puddles and glass materials. I eventually scrapped all that, remade ANOTHER Sky material and ended up using a physical model for the Sun, miles and miles up there attached to my Directional Light instead.

      I really wish I didn’t have to but I waste so much time finding workarounds man. 😉

      That being said though, once everything is all said and done, you’ll see a lot of disturbing, hellish shit that hasn’t been done in many horror games before! 🙂

  2. Btw, you try re2 remake yet? That series always reminds me of you. The first time I saw resident evil was at your place as a kid. Mike warned me that it would be scary, but my feeble mind couldn’t comprehend what I was about to witness. That memory is permanently glued in my brain, it fucked me up for weeks.

    Good times! Haha.

    • Not yet but I’ve seen a lot of playthrough videos. It looks cool but I really wished they went with the REmake and RE0 route. I would have been all over it!

  3. I follow your project periodically and things are looking great man. Hope things keep moving smoothly, I’m looking forward to trying it out.
    If you ever need a break, we’ve always got space at our board game table.
    Good luck going forward!

Comments are closed.