Here’s a summary of week 17:
1- I added debris and dirt to the main train material. It has 4 layers : cigarette butts, small pieces of paper, bigger pieces of paper, and dirt. It uses RGBA vertex colors for masking
2- I programmed some basic “interactive” environment props, like doors opening when you approach them, and cameras looking at the player. They weren’t complicated, but it’s good Blueprint practice
3- I added more dream shenanigans, mostly things changing when you’re not looking. There’s also a small chance they will change in front of your eyes.
One of the methods I used is a custom decal shader that takes an atlas texture and pics a random portion when you’re not looking. I can set the number X and Y subdivisions, so it can be any numebr, 6×1, 2×2, 4×2…etc.

I couldn’t find a way to easily change the decal material properties at runtime, but I knew that each decal actor has a color attribute I can set and then reference from the shader, and I know that one can be edited in runtime. It’s usually used to set the color and opacity of the decal, but there are really no rules. I still kept the RGB components to set the color, but I used the Alpha component to control which decal to pick. After that it’s just a matter of setting a random value to the Alpha component from the level blueprint (or the player character blueprint, or any blueprint really) when it’s not in the camera field of view.




4- Finalized the lighting and environment of this portion of the scene. it’s missing NPCs and some small props and events, but the environment and lighting itself is done. I used static lighting for performance reasons. I am getting ~40-50fps on my laptop (just an integrated intel GPU) without having to make any visual sacrifices, which I’m happy about. I’m getting up to 200FPS on my desktop with a 2070 Super.






5- I experimented a bit with sounds for robot voices. I made it so NPCs (or a random placeholder object in this case) pick a random sound from a list and slightly change its pitch with every few characters printed on the screen. Here’s a compilation of the sounds I made myself
I also commissioned “Terra Marique” to experiment a bit, and he did a good job. I didn’t have a clear vision in the beginning and wasn’t entirely sure what I wanted, but I got a good result I’m happy with.
6- I made drafts and sketches related to the NPC dialogue system. There’s nothing worth showing, but I have an better idea on how to proceed.
This week (#18) will be mostly spent implementing the system and experimenting with it. After that’s done, I can finally start making NPCs and implementing the story and interactions. After that I am not entirely sure what I’ll work on, the player/NPC models or an environment blockout, but it’s probably 3D art related, since I missed doing that.
Thanks for reading, and have a great week!