Screen Shot Saturday & Devlog - October 31, 2020


Happy Halloween, folks!

We put in work on several different fronts this week, including story, character, map, and performance.

Reworked Lighting

We spent quite a bit of time this week tweaking the lighting in our first level. This was nowhere near a final lighting pass, but there were two motivators to do this now.

First, we had to deal with some performance issues from dynamic lighting that were slowing down development. We’re not big on optimizing at such an early stage, but when development speed drops, you’ve got to do something.

We opted to go with all dynamic lighting on this project, which is new to us. We’ve always used lightmaps in our previous projects, and there’s a bit of a learning curve with using dynamic lights. We were already seeing performance issues even using some pretty hefty dev machines. It turns out, lights aren’t culled automatically in UE4, so all of our lights were always on and affecting our framerates. Our first pass was to put in a light distance value on each light in the level, which is basically a very simple form of distance culling. That helped tremendously, but we still weren’t 100% happy with where performance was.

Our next step was to try out a plugin that gives even more control over dynamic light culling. It was a little bit of effort to get it set up. We had to create zones and portals throughout the entire map (the blue and green boxes in the image below). It’s not hard, but it is a bit tedious.

A screenshot of the map with blue and green cubes representing light zones and portals.

A couple hours of setup and tweaking got us back a lot of compute time each frame. Based on some very simple profiling, the amount of time spent each frame calculating lights and shadows dropped precipitously, from 15-20ms per frame on one machine, down to about 3ms on that same machine. We can definitely recommend this plugin for anyone considering using dynamic lighting in their UE4 project.

Second, since we were spending time on lighting anyway, we tweaked the light intensities and added IES profiles to make the lighting look a bit more realistic. It was an easy tweak that makes our gray-box environment look a little less generic and gray-box-ey. We probably wouldn’t have done this yet if we hadn’t been working on the lights anyway, but it does improve the look of our screenshots:

A screenshot of the game with more interesting lighting from using IES profiles. A screenshot of the game with more interesting lighting from using IES profiles.

Character Work

We also continued doing character work. For our female-presenting NPCs, we’re currently using a Marketplace asset. We put in some time this week to improve the diversity of that model’s appearance. We’ve randomized her height and skin tone and have pulled in hair options from a number of sources, including other Marketplace assets we’ve bought and the Paragon character assets from Epic. We also created a whole bunch of new material instances for those hair options. We’re planning to do a lot more, but this is already helping make the future look less homogenous.

A screenshot showing dozens of female character models with different hair options and skin colors.

At some point, we need to add more face and body morphs and create some lore-appropriate clothing options, but this is definitely a step in the right direction.

Our male-presenting model is a little behind since we weren’t able to find one out of the box that worked for us. We started with another marketplace asset, but we’ve done quite a bit of modeling and re-texturing to make the model match the female model stylistically and to make him anatomically… complete. The changes were significant enough that we needed to re-rig the model, which we’re doing in Blender, using Auto-Rig Pro, another tool that we can wholeheartedly recommend.

Dude also needs clothes.

Screenshot of a male character model being rigged in Blender.

Even More Map Expansion

A while back, we added some utility corridors above the main map level. We’ve expended these corridors and written some quests and encounters for them, including at least one opportunity to overhear some private dialogue that serves as both world-building and foreshadowing.

The expanded utility corridors: An orthographic view of just the upper level of the map.

The full map with the expanded corridors: A screenshot of our current map.

The opportunity to overhear (ignore the pixellated portion - we left a text-renderer in the level with a to-do that contained a minor spoiler): A screenshot showing the player looking through a ventilation vent at people having a conversation

Companionship

Last week’s story epiphany led to some discussions about game mechanics, including whether we should have a companion system. We long ago ruled out the idea of a full RPG-style party, and even a Mass Effect-style two-companion system is probably beyond what we want to attempt for this game, but we do have a gap to fill.

The old mobile game had a small robot character that functioned as your teacher, mentor, guide, and encyclopedia of 24th century knowledge.

Image of a small robot.

Small robot is gone. Some of the information he used to provide has been moved to other places, like the tutorial system, NPC dialogue, and the codex, but we still have no easy way to get some types of information to the player that used to come from the robot.

We’re toying with the idea of replacing him with actual NPC companions, and possibly having your choice of companions have gameplay impact. We’re still working on details, and also don’t want to spoil things, but we see a lot of upsides to having friendly characters you can interact with and who can help you in combat. Having companions also facilitates storytelling and exposition.

Oh, Elon…

This isn’t technically related to Republic Sniper, but it was an interesting enough coincidence that we felt it was worth mentioning. There was news yesterday that SpaceX says they won’t recognize Earth laws in their planned Mars Colony.

The original Turncoat Story Bible, written eight years ago, contains this passage:

The largest Multinationals — who proposed the Mars Colony Project so they could undertake new research projects outside of the jurisdiction of any Earth regulatory body — implemented the plan on behalf of the United Nations of Earth in exchange for guarantees of a certain amount of autonomy.

Yes, it’s fiction, but spoiler alert: the whole situation didn’t work out so well for most of the colonists in the Turncoat Universe. Laws and regulations exist for a reason. They’re imperfect, but they do actually protect those of us who aren’t billionaires.

Ain’t no way we’re getting on one of Elon’s ships now.

That’s All, Folks

That’s all we have this week. We hope you enjoy a fun and safely social-distanced Halloween and we’ll chat next week.

Also… vote. Please.

Get Republic Sniper Resurrection

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.