GuitarBro

Ludum Dare 47

Ok NOW we're talking.

Got more of the tileset made and textured and it's really starting to look like something actually not horrible. Which, you know, is generally a good thing. aaaa.png

Getting that a e s t h e t i c going on.

Playing around with some post processing and lighting to get a good feeling for the game. Kinda out of order I know, but hey, I had inspiration. :stuckouttongue: aaaa.png

A bit more artwork

Going for a bit more of a literal interpretation of the theme. :stuckouttongue: aaa.png

Graphics? We got 'em!

This is by far our most ambitious LD project yet. We're throwing caution to the wind to get all the graphics this time (for better or for worse lol). aaa.png

Powerups, anyone?

Spent more time on this shader than I'd like to admit. :stuckouttongue: powerups.png

Loop Lock Malfunction WebGL performance has been fixed!

ld_banner.png

Sorry to the 7 people who had to suffer through those lag spikes. Apparently Unity 2020.1 generates some GPU instancing code that doesn't play nicely with certain browsers. We fixed the issue and now you can experience Loop Lock Malfunction in all it's loopy sci-fi glory with buttery smooth framerates!

Oh, and we also support Windows, OS X, and Linux as well!

A Guide to Pickups in Loop Lock Malfunction

powerups.png

Pickups are the key to getting a high score in Loop Lock Malfunction

Literally!

Every time you clear a room, there's a chance to spawn one of the 5 possible pickup. Collecting the "point" pickup is the primary way of increasing your overall score.

Of course, you can't collect any point pickups if you die... and that's what the others are for!

Health keeps you alive longer. Every hit consumes one HP and every health pickup gives you one HP back (up to the max, that is). You can increase your max health by collecting the Max Health pickup (bet you didn't see that one coming, did ya?)

The Turn and Slide pickups are great for increasing your maneuverability which helps you dodge enemies better. Turn increases the rate at which your Loop turns and Slide extends the duration you remain sliding and the distance you can slide. This comes in handy because sliding gives you momentary invulnerability to attacks, so more time sliding equals less time you can be hit!

And that's all there is to it!

Now that you're a complete expert at the game, why not go get a high score in Loop Lock Malfunction and show everyone just how cool you are? :sunglasses:

Loop Lock Malfunction is almost to 20 ratings!

Huge thanks to those who have gotten us this far, and thanks to those who help us make it the rest of the way!

If you haven't played Loop Lock Malfunction yet and wanna help us get there, please give it a shot and leave some feedback and your best score!

player_robot.png

Meet the Rail Turret!

railemturret/emlogo.png

The Rail Turret is largely misunderstood.

Unable to perform any actions beyond moving horizontally along it's rail, the Rail Turret finds joy in the simple pleasure of shooting a 900 watt laser out of it's diode. Often interpreted as an act of hostility towards others, it just wants to share this joy with the world by melting anything in it's path.

Want to meet the Rail Turret in person?

Play Loop Lock Malfunction today!

Loop Lock Malfunction glitch VFX breakdown

Hey there!

Thought I'd give a quick breakdown of one of our cooler VFX in Loop Lock Malfunction in case anyone finds it interesting/cool/helpful. The glitch effect happens when you take damage and looks like this:

glitch.gif Glitchy!

This effect looks really complicated, but is actually quite simple! Let's break it down.

Start with a sphere

Technically we could draw this effect with a single plane that covers the player, but then we need to ensure it always renders on top of the player and faces the camera which is just extra work for slightly better performance. Considering this was a jam game, dev time was way more valuable to us so we just used a sphere. This also allows us to take some other shortcuts in the shader (more on that in a bit).

glitchemsphere.png _Yup, that's a sphere.

Now we need a shader

I used Amplify Shader Editor to speed up the creation of the shader, but this can be done with some pretty straightforward HLSL code too. If you need help with one of the nodes, it's pretty likely you can just google it and find someone who has implemented it manually. Oh, and I should mention this is being done in the Unity Built-in Pipeline, not one of the SRPs. This relies on GrabPass which is not supported in HDRP (and possibly not in URP either, but don't quote me on that one), though there are ways to code in equivalent functionality with more effort.

glitchemgrabpass.png _Oh... that's pretty simple.

Let's modulate the UVs

As the above picture shows, the magic really all comes down to what UVs we use to sample the screen colors. Here's the node setup (don't worry, I'll go over what's happening after the picture):

glitch_uvs.png

Starting on the left, we need to take the default screen UVs and multiply them by the ratio of the screen width to the screen height. This ensures our texture doesn't look stretched on wider screens. We then multiply that by a GlitchScale parameter and pass that into a Panner node which animates the UVs vertically over time (controlled by the Speed parameter). This goes into a texture sampler that has a displacement map. The one I used looks like this:

glitch.png

As you can see, it's mostly gray. This is because we subtract 0.5 from the value so black will be -0.5 and white will be +0.5. Therefore the gray will have no visible displacement. We then multiply this by the GlitchAmount parameter to control the overall strength of the effect. That gives us something like this:

glitchemedges.png _Ah, much glitchier!

But wait! Look at those awful hard edges where the sphere just ends (the ones with red arrows pointing at them). We have to do something about that.

Fresnel time!

So you remember that shortcut I mentioned earlier? N-no? (Wow you have a short memory...) WELL ANYWAYS, this is where it comes in handy. Since the sphere has smooth normals, we can use a Fresnel effect to control the intensity of the effect and fade it out towards the edges.

glitchemfrenel.png _VERY exaggerated Fresnel effect for illustration

We then multiply the strength by the Fresnel value (which we saturate first to clamp the range from 0-1) which gives us a nice soft falloff.

glitch_final.png

Meanwhile in CPU land...

At this point, the only thing left to do is set the GlitchAmount value over time whenever you take damage. We use an AnimationCurve that we evaluate in an IEnumerator to gradually decrease the intensity. When you get hit, the glitch sphere is enabled and we start the coroutine (making sure to stop the previous one if one was already playing). When the coroutine finishes, we disable the sphere so that it's not rendering while you aren't taking damage.

And that's it!

That's all there is to it! If you wanna see the effect in action, you can check out Loop Lock Malfunction and get hit by some lasers. Shouldn't be too hard. :stuckouttongue: Hopefully you found this interesting/cool/helpful and I look forward to seeing more VFX like this from your future Ludum Dare projects. :sunglasses:

Oh and here's the full ASE graph for reference. Knock yourself out. glitchemfull/emgraph.png

No scores?

Something's a little off here. :thinking:

Where is the line drawn?

The rules state:

You’re free to use any tools or libraries to create your game. You’re free to start with any base-code you may have.

You’re free to use 3rd party Artwork/Music/Audio assets, or assets you previously created, but we ask that you OPT-OUT of the respected voting categories (Graphics, Audio). You can opt-out of a voting category when you submit your game.

I saw this asset (NGSS 2) on the Unity Asset Store that adds softer shadows to one's game. Since the next jam is around the corner, it got me thinking...

If you use an asset like that one in your jam game, should that require an opt-out of graphics? The asset itself contains no artwork, but it does enhance the visual appearance of the game.

You could argue it's a library since it's just a bunch of code, but that doesn't seem quite right in my opinion since it's not really used like a library.

So here I'm asking, what's your opinion on this? Would you opt out of Graphics in such a case or say that it's just a library/base-code and thus separate from being considered 3rd party Artwork? Really curious as to what the general community thinks since I could see it going either way.

Ludum Dare 48

I'm in early this time!

Wow, just happened to check in and signups are live already. Well, guess I'm in earlier than usual. :stuckouttongue:

Might as well throw in my theme suggestions while I'm here: - Out of bounds - Return - Clear it out

Maybe give 'em a vote if you seem them later, will ya? :wink:

A good first day of progress...

...well, at least a few hours, rather. :stuckouttongue:

We've got a nice start of an environment and some initial player movement, so I'd say things are coming along nicely.

Dev1.png