Saturday @ Second Half #6 — Every Single Person is my Enemy

Happy Saturday — it's time for some news about MEANWHILE IN SECTOR 80!
Last week, we did a bunch of work around documentation and planning, and made some shiny new high-readability parts.
This week, our main goal was to explore enemy and environment design. We got a little sidetracked with some physics and graphics goodies though, too!
Triplanar Materials— Laura
Say goodbye to the gray stuff - This week we're having some fun with figuring out triplanar materials to get us started on bringing some color into our prototype levels. Featuring: moments before disaster 🐀
Cable Ropes
Rasmus wanted to see if we could implement physics joints this week, starting with rope joints for cables. We pair-programmed a bit and had that done in just a couple hours. Easy peasy!
Check out this new fast travel system I invented.
Creepy Crawly Enemies— Lucien
We've gotten surprisingly far with our spread of Scooby-Doo villains we've used as enemies, but they've officially entered retirement this week.

I committed to making four new mechanical enemies this week. I made five! ...or like, one and a half, depending on how you count.

You can break individual parts on the enemies to disable them. Their behavior is dynamic based on what's broken or missing, so they can be blinded, disarmed, immobilized, or picked apart.
The new enemies are made of the same parts the player uses, so they double as loot! Or maybe your loot is made of enemies.
We playtested the new enemies on Friday; more on that later.
Normals— Rasmus
The computation of normals in the engine was correct most of the time but there were a couple of issues that came into play when non-uniform scaling was applied. To fix these, I added a test object and a new debug mode to render normals. While fixing these issues I also took the opportunity to compute tangents on the fly in the fragment shader. This means we don't need to store tangents in the vertex data anymore.
Darkening Corners with SSAO
With the old greybox grid gone from the McBunker, the game's flat lighting started really sticking out. I was supposed to be working on some new enemies this week, but I couldn't help but try getting us a little screen space ambient occlusion.
I scaffolded out some plumbing and laid the trap.

Lo and behold, I woke up the next day and Rasmus had solved all of the hard parts! We did a little pair programming to fix a few edge cases and do some tuning, and...
Look at those creases! The tasteful darkening of the corners.
By the way, you can click images to see them at full resolution!


The current SSAO implementation uses a lot of samples and is pretty naive. I think at some point we'll evaluate GTAO or GT-VBAO, but for now, we've got it tuned well enough to move on with our lives.
The Weekly Playtest
On Friday, we ran a playtest of all of the new stuff. We're starting to do that every week, so that we can gather feedback and iterate super quickly as a team.
We've struggled with making the game's combat fun. It's been tough to square the super freeform engineering and physics with making tight third person shooter controls. If you played the demo at gamescom or on Steam last year, you know what I mean.
The main portion of the playtest this week was to see if just adding new enemies would improve our combat. Check 'em out in context:

I'm proud of some of the enemy placements designed to jumpscare the team.

I was able to make several enemy variants using the different weapon parts we already had in the game. That felt like a pretty big win.

So, the original hypothesis: do more interesting enemies "fix" our combat? Nope! Not on their own, at least.
We struggled a lot with aiming for specific parts using the game's physics-based weapon controls. A bug I introduced late in the week made the controls even sloppier. I think the enemies are also a little too small.
Overall, we had a lot of fun, and these challenges got the team's gears turning. How can we make combat more interesting? I'm sure we'll figure it out.
Next Week
We've got a major gameplay shakeup cooking for next week. I'm so excited to share that that I've been bouncing off the walls this weekend.
We'll also be focusing on some minor polish and fixing some of the rough edges we've accumulated while prototyping in the last few weeks.
See you all next week!