Hello there one and all!
In classic AL fashion I’m long overdue with another project update! That means there is sooo much to show off and talk about. So much in fact that I’m not even going to try. Instead, today I’ll focus on one of the flashier updates: An improved lighting system!
The Issue
There is a lot of level-design and building going on at the moment. Company is doing good as well and I’ve been able to get a lot more professional art assets in the last year without having to worry about cost (see some of the gorgeous environments below).
The issue I was running into however, was that I wasn’t able to fully convey the mood of the the environments I was making with the tools I had at the start of 2023. For a game that aims to have a bit of a darker tone, this was actually kind of a big deal.
The dilemma I was wrestling with was that I had committed to a 16 color palette; Adding a more complex lighting system would result in more than 16 colors being shown on screen at any given time.
None the less, I was feeling pretty strongly that something had to change so I set aside two weeks in April, cracked my knuckles and went into a coding frenzy! Turns out there are some advantages to having such a large proprietary code-base. Since I know every in and out of my draw pipeline it was surprisingly easy to set up what I needed.
As for the result, I’ll let this image speak for itself:
The Solution
The first thing to keep in mind is that Skald is built as an “engine inside an engine”. In other words, the Skald engine lives inside Unity but it is 99% self-contained. For instance, it draws its graphics by baking sprites at run-time, completely independently of Unity. Once all the drawing operations are done and the complete screen image is baked, it makes a Unity texture and lets the Unity camera “photograph” it.
The advantage here is that it’s very easy to perform very precise operations on individual pixels. In other words, we can do pretty cool stuff that is still 100% “authentic” pixel art.
We leverage this in the lighting system: A lighting value is calculated for each 16×16 tile and based on this, the sprite for that tile is shaded with a bluish tint (pixel per pixel). As you can see on the floor inside the cabin above, this means the lighting is overtly tiled but in my opinion, this works beautifully with the tile-based nature of the game.
That is not all however! Light-emitters also have pre-baked “auras. These can have different shapes and colors: Note how the ritual candles in the GIF above have a green and purple tint. It also allows me to do stuff like god-rays.
Anyways, I’m pretty proud of the system and the result. It’s changed how I make levels and my only regret is not making it sooner. If you have questions about the system or its implementation, feel free to DM me!
In Other News
As I said initially, I have so much to show off that I don’t know where to begin. However, the finish-line is coming into view so for what it’s worth, you’ll all be playing the game pretty soon. That also means, stay posted for a release-date announcement.
Unity
Many of you will have noticed that Unity has been going through dire straits the last weeks. The engine revealed a new pricing model a few weeks ago that was extremely controversial and caused a mass-exodus of players.
For a lot of companies, this had the potential to be catastrophic. Skald was however, never in any direct danger due to the game’s pricing model etc.
That being said, it also appears Unity has rolled back their updated policies in the recent days. In other words: Skald was and still is, 100% safe.
The Lost Sector
I did an interview with Chris Freeman last week for the Lost Sector Youtube channel! I love the Lost Sector and if you’re reading this, so will you!
We talk Skald, retro-gaming and Unity (if you want to understand more deeply why the pricing change was so controversial). Chris also has a loop of the updated game build running in the background so if you want to see the new lighting-system in action, here’s a chance for a sneak preview of a very rough production build (Chris twisted my arm)!
That’s it for now! I’ll do my best to keep you posted but I also need to make a game so if you don’t hear from me for a while, it’s because I’m making cool stuff.
To stay posted, be sure to follow the Skald Twitter and Discord and wishlist on Steam if you haven’t already!
Much love,
AL