top of page

Interactions, Modularization and Engine Updates

First for an update to last week's post: I discussed the level of effort vs what is gained for that incremental amount of work. Well I decided since my cabin textures were very key and would be looked at numerous times for this project, it was worth the effort to not only remodel the wall textures, but to make sure the uv maps were done in such a way that I could take advantage of seamlessly tiling 4k textures together for lots of up close detail. Previously I had a 4k texture that essentially covered the one face, no tiling. This would mean my textile density was previously very lacking especially up close.

See below, left is the new texture tiled proper vs the right, non-tiled 4k texture. You can also see how much better the wood logs look with a bigger size.

Left to right comparison of tiled 4k textures
Left to right comparison of tiled 4k textures

The roof is also complete. Work was spent creating 3 different variations to capture three different cabin widths. This will be useful when creating all of the variations of the cabin and makes it much easier to fully modulate the roof pieces.

The next thing that was worked on is having a data driven backend for all of the interactive components for the game. I wanted to be able to tweak everything on the fly depending on the interaction behavior (door, drawer, cupboard etc...). This helps tweak my collisions and iterate different variables to ensure a player is not frustrated with how objects operate in the game. It is key to have all objects behave similarly as much as possible to avoid frustration.

Speaking of frustration, some good advice is to build and test interactions in game as soon as possible. Luckily when attempting to open some cupboards, they worked great, but then when opening more than one they started to overlap eachother...oops. This led to some more time not only changing how it was handled when a player was close enough to interact with an object, but also detecting collisions from other interactive objects within close proximity, this of course includes the player. Everything now opens, closes and when it collides it simply opens back up and closes the other direction. It feels very intuitive and gives the player visual queues as to what is happening.

Cupboard door collisions pictured
Cupboard door collisions pictured

Last topic for the week...engine updates. The game currently is running on Unreal Engine 4. It is update very often due to it being developed and used in one of the world's most successful games "Fortnight". Due to this the developers can add in new features, test and iterate as often as they need to in order to improve the engine. Just from what I have seen, it is one of the most up to date and feature full engines on the market. I myself love the latest and greatest of everything, so naturally when an update comes out and especially as an Indie dev, why not just update to get all the cool new toys. I guess one could learn is that if you are heavy into production....don't. The latest update killed the particle system used for the snow and kept crashing the engine. The culprit was identified and swiftly deleted. On the downside, wasted time, on the bright side, brand new waaaaay better looking snow particles.

Also on a side note, have lots of versions of the game from different dates. Test a full build once a week and archive it as "working" so that worse case scenario there is a fallback point. If someone keeps developing a game without ever testing it the bug can unknowingly creep up to the point where it would cause a lot of rework or worse case trash your project to the point of no recovery.

That is all for this week. Next week will spend time on getting the rest of the "furniture" into modularized actors and start completing one iteration of the cabin. This will give a good idea of what other models need to be created to make the cabin feel lived in, or abandoned....who knows what it is supposed to look like ;)

20 views0 comments

Recent Posts

See All


Post: Blog2_Post
bottom of page