Dev Log #3: Lighting Re-Imagined

Introduction:

As this week draws to a close and my life clock ticks to 25 years, I hope we can all celebrate just the ludicrous amount of work I’ve put into this project. I had big plans coming off of the hype of Dev Log #2 and wanted to make this one even better. Unfortunately this update has come much later than I had originally anticipated. I spent the better part of a week too ill to continue any meaningful development on the project and definitely too sick to stream any of it. This week however, I was ready to get back into the saddle and get to work.


And get to work I did.

This past week, I have been re-designing every single shader from the ground up in order to convert my project to Unity’s Universal Render Pipeline (URP). The benefits of this render pipeline opposed to the standard one is both increased performance and better graphic fidelity. It would be an absolute win-win if I could pull it off.

Alongside this, I re-designed the water system, added new items, abilities, and dozens of new NPCs. I also added an entirely new region to the game hidden behind an Easter egg. All of these new updates and features have me absolutely frothing at the mouth to show off, so let’s look at some notable additions.

Lanterns: Shine Bright Like a Diamond

Light up the scene with brand new lanterns! This new update includes the addition of lanterns. An equip-able item found in the world that allows you to brighten up even the darkest of situations. This was an item I knew I wanted to add to the game for some time and finally decided to do it at the end of my livestream on Nov 2. This item looks great in the world and adds a great gameplay feature of having light with you wherever you go.

Donning this physics-based item will leave your hands free to fight or cast spells at your convenience. Yes you heard that right, the lanterns are physics based. It will swing freely at your hip and collide with the environment. Be careful though as the lantern makes you more susceptible to fire attacks. Little details like this allow me to make the world feel more compelling and requires to player to think of combat more situationally.

Watch this clip on Twitch to see the process.

URP: A Worthwhile Headache

URP is the biggest and boldest change I’ve made to this project since starting. The reason I didn’t make the switch sooner is due to the fact that this project was started on Unity 2017 and as a result, many of the shaders are legacy shaders. In layman’s terms, that means really old. In order to switch to URP, I’d have to retexture… everything. So that’s what I did.

Hours upon hours of work with no guarantee that I would be successful was the reality I faced when starting this endeavor. You see, initially, I wanted all the bells and whistles. We’re talking raytracing, DLSS, real-time lightmapping, etc. Tech like this is only found in Unity’s High Definition Render Pipeline. In fact, I tried this first but found it came with a 20% performance reduction. I found this to be unacceptable as the GTX 1060 is my target platform. This is what led me to URP.

Take a look at these comparison photos:

Village using Built-In Pipeline

Village using Universal Render Pipeline

Island using Built-In Pipeline

Island using Universal Render Pipeline

The most notable improvements are obviously the water, but you might also notice the shadows are much softer and better looking. This effect is easily seen in the Island scene where the rock casts a shadow onto the sand. You can see in URP how much softer the shadows cast and even how much more the ground textures pop out.

We’re All Mad Here

Here’s a sneak peak at a new region added to the game! This part of the game has your character shrink down to a tiny size and fight off hordes of now giant bugs. It is very much down the rabbit hole and the further you delve, the more mad you become. Unfortunately, I am unable to show too much of this as it is actually meant to be a secret. The scope and scale of it has me too eager not to share it, however.

Cutscenes: Lights, Camera, Action!

This update now includes cutscenes! Whether you’re starting a new game or completing a puzzle, you will now be rewarded with a smooth visual in-game to help guide the player’s focus and to add more polish to the experience.
The results actually came as an accident when I was playing around with Unity’s award winning Cinemachine to capture

Click to play the cutscene test.

Water 3.0: Please Don’t Make a Water Dungeon

Dive deep into Infinium’s 3rd iteration of water. They say 3rd time’s the charm, I suppose they were right. Introducing Water 3.0. You can swim in it, you can splash in it, you can even pee in it. But please don’t. This new water has everything I could ever want. I have added splashing effects for when you enter and exit swimming, underwater effects and lighting, and 3D waves that replace the 2D texture before.


To achieve this incredible result, I used custom code in RPG Builder to essentially hack in a swimming system as it is not currently supported and used Staggart Creations’ Stylized Water 2 VFX Shaders. I’ve purchased a lot of art from this studio including other foliage, grass, and trees. The person(s) behind these assets are incredibly talented and their shaders have really allowed me to push boundaries.

Click to play the water scene test.


Conclusion: Only Up From Here

The setbacks I’ve faced since the last dev log have been difficult, but I am beyond proud of myself for overcoming them. Another massive hurdle I had to face was getting version control on my project and spending 8 hours straight getting GitHub working. Even still, I feel as though this update crushes the last one and I am so excited to continue sharing my progress with you all. Who knows what lies in the next dev log as the crunch continues.

Despite spending 8-12 hours a day working on this project, I still have not found the end of my mental fortitude. That being said, I expect updates will eventually slow as my mind begins to wane and a vacation is needed. My future plans for the project are to implement controller support and to implement a story to my world. Unfortunately, adding controller support will require me to code the entire character from the ground up, so that is on the back burner for now although partially started.

First URP photo before conversion

Full Dev Log:

  • Added graphics settings menu.

  • Added new combat animations for the elf character.

  • Added an arrow ammo system.

  • Added a mana system.

  • Reworked the stamina system.

  • More aggressive LODs for performance.

  • Different landing animations based on distance fallen.

  • AI crowds in towns. * Redesigned the Kebari village.

  • New items in the shops.

  • Remapped all the weapon transform values.

  • Added a legendary weapon.

  • Added lightsabers.

  • Refreshed the player UI.

  • Added sound effects for walking on wood and stone paths.

  • Fixed bug where players weren’t automatically dismounted in water.

  • Fixed bug where standing on the shoreline caused the footstep sound to play infinitely.

  • Added tutorial pop up messages.

  • Added underwater fog.

  • Added new dungeon.

  • Added new boss.

  • Overhauled both starting locations again.

  • Added puzzle system.

  • Two speed runner shortcuts.

  • Added Water 3.0

  • Added underwater effects.

  • Added waves, rivers, and reflections.

  • Added splashes caused by player.

  • Redesigned the lighting system from the ground up.

  • Converted project to Universal Render Pipeline.

  • Added post processing to every scene.

  • Converted all assets to URP.

  • Remastered legacy shaders.

  • Redesigned Overworld landscape to be greener.

  • Replaced grass with detailed meshes instead of billboards.

  • Redesigned wild horses.

  • Created new massive underworld region hidden behind Easter Egg.

  • Added the ability to shrink down to 1/100th scale.

  • Added level where you fight sentient mushrooms and exploding bugs.

  • Redesigned the elf’s leather armor.

  • Added large physics items.

  • Added starting cutscene.

  • Added cutscene system for completed puzzles.

Zenn

A young game designer and huge nerd.

Previous
Previous

How AI Is Already Taking Over

Next
Next

Using AI to Generate Game Assets