Category Archives: Fuse-Breaker

Articles specifically about Fuse-Breaker

Hello, Supershow viewers!

Greetings, Indie Dev Supershow viewers! Welcome to Udell Games, and thanks for checking out Hyper Gauntlet! If you’re interested in some of my other, smaller, less-polished games, here’s a list:

Fuse-Breaker

fb3

Hairball

King Tim wearing his crown

Bohemian Political Upheaval Simulator 1618

bar

SwapBox and how-to tutorial

screen3

Dinosaur Ranger Interview: Burrito Challenge SUPREME

screenlessinnocuous

I hope you enjoy your stay, and check back for updates soon :)

Lighting in Fuse-Breaker part 1: Rolling your own basic lighting system

Lighting in Fuse-Breaker is fairly basic, and there’s actually a good reason for that. I could have used Unity Pro’s real-time lighting system, but I want a bit more control and access to it for gameplay purposes (and for a game jam entry, the price is a bit high). Additionally, being able to see the strict boundaries of light and darkness are crucial for the player to judge where is safety and where is danger. A great game that makes use of this (although admittedly not intentionally) is Thief – Deadly Shadows:

Thief Deadly Shadows lighting

Those crisp shadows make it easier to tell where you’ll be seen and where you’ll slip past the enemies. Soft shadows make this a good deal more difficult. As Fuse-Breaker was initially made in only 48 hours, I didn’t have any time to research proper lighting technique. Therefore, the lighting calculations are just based on Euclidean distance from floor panels to nearby lights.

For shadow casting, each floor panel performs a ray cast towards every light in the scene, from closest to farthest. The first light hit by the cast is stored as that floor’s working light. The colour of the floor panel is then set by comparing the light distance to a lookup table of preset colours. Not very elegant, I admit, but when you’ve only got 48 hours…

Finally we have to update the lighting when the doors open or close. Because I was going for quick and functional, we actually update the entire floor when a door changes. Obviously, this is incredibly wasteful and it would be better to only update those panels within range of lights which shine on the door. The following code has since been added, which accomplishes that:

This function, in the Door class, acquires all lights which are within range of the door. When the player opens or closes the door, it tells these lights to update their floors.

And this function, in the Light class searches through every floor and stores a reference to it if it is within the radius of the light. That way we don’t update floors that aren’t affected by this light when this light updates.

Fuse Breaker lighting

And this is the result! Very chunky lighting, but easy to tell where you can tread and where can’t without being detected. It’s also updatable and casts shadows. Any objects that you don’t want to cast shadows from should be put into the IgnoresRayCasts group (or set up a special filter, if you need them to receive other casts), otherwise they will cast shadows during lighting changes. One early bug I grappled with during the first day of the game jam was that random black spots were appearing in the lighting result. It turned out that if the light turned on and the player was in the way, then the player’s mesh was casting a rudimentary shadow!

Behold, fancy lighting mode

So that you’re not upset for the whole day, I thought I’d post some Fuse-Breaker progress a little early. Bear in mind that this is nowhere near finished yet (in fact it’s incredibly slow and relies on a cavalcade of kludges) and so the look isn’t finalised, but I’ve updated the lighting system.

Fancy lighting mode

Gone are the big coloured squares, replaced by a more subtle gradient. If I wanted to I could add extra variation to make a smoother, more graduated light fall off, but I think this sharper system makes it easier to tell when you’re in danger. Come back Thursday for a blog post on how I did the old lighting system, with another to follow on the new system as it nears completion.

Fuse-Breaker Menu Prototype

If you trot over to the current version of Fuse-Breaker, you’ll see that the menu is boring, bland, functional. This has a lot to do with the fact that I only had 48 hours to make the game, so the menus had to work (although in the end they didn’t) and that’s about it.

Now that I have more time, however, I’ve put more work into making them look nicer. Inspired by the opening to the film Catch Me If You Can, I’ve played with the idea of light and shadow and constant motion. Obviously I can’t be as overt as Catch Me If You Can, because I need it to be a serviceable menu too.

http://www.youtube.com/watch?v=gaLDyrun_Cc

Catch Me If You Can’s opening credits, property of Dreamworks

Fuse breaker menu with battling light and dark background

My menu attempt

What I have is mostly the background layer of the scene, ignore the buttons, because they are just the default Unity style, I’ll be changing them later. I built the background by panning thin cubes in various locations and orientations over the screen. These cubes have light and dark translucent materials on them. This depicts a chaotic battle between light and dark. On top of this I will add silhouetted figures running around and stealing things, but for now I think this is a good start.

Fuse-Breaker menu with light and dark battling

You can see how the light and dark bars have moved across the screen

It’s not resolution-independent, and this means that if you go for a wide-angle resolution like 1680×1050 you see a lot more of the moving cubes and the illusion is broken. This is something I aim to address soon in a more in-depth blog post.

What do you think? Aside from the buttons and the logo (which sadly I think needs redoing), I’m happy with it, but design isn’t my forte. If you know better, I’d love to hear your thoughts. Submit any comments or criticisms in the comments section below.