Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Unsanctioned - Action/Adventure FPS

A topic by Underran created Sep 21, 2020 Views: 554 Replies: 5
Viewing posts 1 to 6
(4 edits)


https://underran.itch.io/unsanctioned

Hello, my name is Tony Palm and I'm developing the game Unsanctioned.

Unsanctioned is an Action/Adventure FPS game set in northern Sweden, close to the Finland border. In it you play the role of Jéssica Nunes, a freelance adventurer who has taken to investigating a top-secret research facility operated by the CIA and the Private Military Company known as Terminus Systems, to uncover the catastrophe that's occurred there.

I have been developing this game for a few months now and I'm practically finished with all the gameplay mechanics at this point. The only thing remaining is the bulk of the level design, which I am in the process of doing. I've set a deadline of 6 months to have a publishable game, even if I don't have time to make all the levels I want.

I plan to have a short demo available soon. More information to come.
In the meantime please enjoy these screenshots and gifs. I hope they get you as interested in playing as I am in having you play it. :-)


Main menu



In game screenshots



Level 01 Loading Screen

Demo in the works! 

New feature: Deadzone Aiming


I am personally a big fan of deadzone aiming, and it's something I've wanted to implement since the project's beginning, though I only got the idea on how to do it first today, and thankfully the implementation worked out swimmingly.

This effect is toggleable in the menu, since I understand most players tend not to like this feature.

Another feature, which you can see in the gif, is the ability for enemies to be downed by hits. This disables them and makes them writhe on the ground.

Additionally, I've changed the way blood decals are formatted, which allowed me to use a different shading model which reacts better to lighting, so now the blood blends more nicely into the environment whereas before it looked unnaturally bright.


Beyond this I am continuing to work on the demo level. Part of it can be seen in the gif above. Stay tuned ;-)

Volumetric lightmap limitations

My machine is not very powerful, and in order to have nice baked lighting in a big, sprawling level, I have to resort to partitioning the level into smaller sublevels, bake the lighting individually for each sublevel, and then use level streaming to play all the sublevels simultaneously.

However, a problem arises as static lights rely on volumetric lightmaps in order to illuminate dynamic objects, and Unreal can only display volumetric lightmaps from one sublevel at a time, meaning dynamic objects in all sublevels but one will be completely unlit. The only way to solve this would be to bake all the sublevels simultaneously, which is too taxing on my hardware and would invalidate the very reason I'm trying to use the level streaming method in the first place.

The way I solved this is by adding a fake light to my light actor; an unshadowed light tied to custom light channel 1. Then I applied custom light channel 1 on every dynamic object in the game. This way, dynamic objects can be lit across the entire level stream by the fake lights instead of the volumetric lightmaps. The drawback being there is no occlusion, so dynamic objects can now be lit through walls. Also I'm sure volumetric fog is no longer going to work. But this is a small tradeoff for being able to actually create the game. So I'm calling this a success. Looking forward to figuring out a different way to format levels in the future so I won't have to deal with this.

(4 edits)


Still working on the level setpiece. Very close to being finished now. ETA on the demo is a few days, hopefully.

Had an embarrassing problem arise. I've been working on this project for a few months now and it wasn't until today that I noticed every single one of my normals were flipped. Never thought to question why some stuff looked janky, I guess. Easy fix, however, since Unreal has an option to flip the green channel within the texture instance and I could do it in bulk. Had a happy surprise when suddenly the game looked way better than before.

Another conundrum I had to deal with today was in regards to memory management. In order to have modularity in the props and NPC customization, I have a multitude of arrays which contain static and skeletal meshes. All these were implemented as "hard" references, meaning every instance within the array gets written into memory together with the actor. In the case of NPCs this amounts to roughly 60 skeletal meshes, written into memory all at once. I spent the evening replacing all of these hard references with soft references, which basically gives me manual control over what gets written into memory and when; culling any superfluous data. After the implementation was finished, a run-of-the-mill NPC would only write 6 skeletal meshes into memory now.

This change carried over enormous optimization benefits unto the demo map as well, shaving about a gig and a half to two gigs of unnecessary memory off, which I'm very happy with.

I have a miniscule amount of setdressing left to do before I will initiate the lighting bake and begin to finalize the demo.


DEMO RELEASED
The demo for Unsanctioned has now been released! Get it at the project page here, and please enjoy.

https://underran.itch.io/unsanctioned