Ludum Dare 48 April 24–27, 2021

How We Created The Monitor Effect For Egress

If you have checked our Ludum Dare entry, Egress you might be wondering how we created the glow and screen-warping effect.

Egress (DEBUG) 2021-04-30 4em11/em52 PM.png

If you haven't played it yet, give it a go! https://lunatic-games.itch.io/egress

The Glow Effect

To create the glow, we applied a Gaussian Blur additively to the screen. By doing it additively, it created a glow effect rather than just blurring the entire screen. While attempting to optimize the shader code, I discovered that if it was applied in steps, 4 pixels in this case, it created a diode look:

egress.png

The complete code (written in Godot's native shading language): ``` shadertype canvasitem;

uniform float radius = 8.0; // Radius of pixels to consider uniform float stepsize = 4.0; // Larger steps give it a more pixel-y look uniform float sd = 10.0; // See Gaussian Blur algorithm uniform float additivestrength = 24.0; // How much to include of the blur output uniform float center_strength = 1.0; // How much to include of the un-blurred pixel color

void fragment() { float pi = 3.141592653; float e = 2.71828; float multiplier = 1.0 / (2.0 * pi * pow(sd, 2)); vec4 sum = vec4(0.0); for (float x = -radius; x <= radius; x += stepsize) { for (float y = -radius; y <= radius; y += stepsize) { vec4 value = texture(SCREENTEXTURE, SCREENUV + SCREENPIXELSIZE * vec2(x, y)); float p = -(pow(x, 2) + pow(y, 2)) / (2.0 * pow(sd, 2)); sum += value * multiplier * pow(e, p); } } COLOR = sum * additivestrength + texture(SCREENTEXTURE, SCREENUV) * centerstrength; } ```

The Screen-Warping Effect

It took a bit of testing to find the best functions to use for creating a convincing screen warp. We ended up offsetting the UV coordinates of the screen using two different cosine waves: one based off the distance from the horizontal center, and another one using the distance from the vertical center. If the UV coordinates ended up being outside the boundaries, the screen was simply colored black.

The complete code: ``` shadertype canvasitem;

uniform float margin; uniform vec2 strength = vec2(10.0, 1.0); uniform vec4 backgroundcolor: hintcolor;

void fragment() { float x = SCREENUV.x - 0.5; float y = SCREENUV.y - 0.5; y *= strength.y * (1.0 - cos(x)); // How much to offset the y UV coordinate x *= strength.x * (1.0 - cos(y)); // How much to offset the x UV coordinate if (SCREENUV.y + y > 1.0 - margin * SCREENPIXELSIZE.y || SCREENUV.y + y < margin * SCREENPIXELSIZE.y || SCREENUV.x + x > 1.0 - margin * SCREENPIXELSIZE.x || SCREENUV.x + x < margin * SCREENPIXELSIZE.x) { COLOR = backgroundcolor; } else { COLOR = texture(SCREENTEXTURE, SCREEN_UV + vec2(x, y)); }

} ```

If you haven't checked out our game yet, we would love for you to give a shot and give some feedback!

It can be played in your browser here: https://lunatic-games.itch.io/egress

Playing LDJAM games on stream

If you have a game you'd like me to play, swing by https://twitch.tv/jitspoe and drop a link!

Sky Plummet: Post Mortem

Title_Screen.PNG

Since I like doing game blogs and postmortems, I just wanted to share the postmortem of my entry for Ludum Dare 48, Sky Plummet! I found Ludum Dare 48 to be one of my better Game Jam experiences, since I took what I learned from previous jams and applied them here. However, there are still some things that I know I can be better at, especially when competing in the Compo entries this time.

So what better time than the present to go over these thoughts!

What went well?

  1. scope creep I banish, ye!: This was something I am REALLY proud of, since there was not a lot of cut content in this game. While there were some cool ideas I had, I realized early that it is better to focus on what works and what needs extra polishing.

LDem48/emintro.gif 2. Animations: I was really proud of this one particular animaion where after the player presses the space bar, they do a small jump and the platform below them dissapears. I used a combination of Unity animations and scripting to get it just right and I am really happy that part of the game was able to be made into a reality in such a short time frame. 3. Getting a Minimum Viable Product in 0.5 days: This surprised me a lot since in other game jams, I was able to not get the entire game done the night of the jam going live. This game me 1.5 days of getting the art and polish into the game, which paired off a lot.

Player_Sheet.png Bonus: The player art: I love how it looks! I wasn't sure if I wanted to do a robot drill, or even something like this at all, but looking at the sprite work for it, which I cranked out in 6 hrs, I am really happy with how crisp it looked! Especially coming from a programmer haha!

What could have gone better?

LDem48/emintro.gif 1. The music: I was a bit concerned about making music for my game since that is something I never dabbled into in all of my game projects and that fear struck in me on the last day. While I did get some nice tunes for a few seconds, most of the music can get a bit irritating at times. I guess it's either the inexperience of making my own music or I'm secretly tone deaf. Maybe both?

Level_Geometry.png 2. A little lacking: Even though I am happy on the end product in the end, after hearing some friend feedback, I did wish I implemented one more gimmick into the game, since it is a little bare bones, admittingly. Nevertheless, that is always a to do item for the future!

SpawnPlatform.png 3. The art direction: The art of the game is not exactly something home to write to (besides the player sprite imo), and part of it is because I wasn't exactly sure what to do! I ended up just thinking about that one theory where if you dig straight down into the Earth, you'd plop out on the opposite side, so that is why the themes are sky, caves and lava. There could be more imagination in them admittingly, and maybe it might even be time to look into some external help on art or just spend more time concepting.

What can we do in the near future

  1. Clean up the code! I always say this in every game jam post mortem I ddo, but it's the honest truth haha. I really am a programmer deep down and writing clean scripts makes me really happy. While this project is not spaghetti code by any means, I do want to at least put in some comments and clean up any repeating code so that on future revisits, it will be easier to understand what is going on.
  2. Implement those lost features! One feature I removed due to not really seeing how it would work is a mechanic where you can bounce off of specific ores in order to navigate a specific chain of danger blocks. I wasn't sure if that would mesh with the current game design, so I omitted it, but I do feel like it has some nice potential. Another idea one of my friends shot to me was making a progression system in the game to where every run matters (like a rouge like). While not ALL games have to have this, I think this has merit because I can definitely see this game being like that to a small extent. More ores, moves, maybe even powerups?

Closing

As I mentioned at the beginning, I am really proud of what I cranked out this game jam, even if some things are a bit simplistic. If you want to check out this game yourself, come visit it on the Ludum Dare page here: https://ldjam.com/events/ludum-dare/48/sky-plummet-my-compo-ludum-dare-48-entry!

Web version of Descend!

unknown (9).png

dev25 cropped2.png

We uploaded a web version of Descend, you can check it out here:
https://ldjam.com/events/ludum-dare/48/descend-3

Looking forward to hearing what more people think of the game.

Aftermath

Wow, I'm having so much fun :smile:

The community really comes together for LD48. I had of course heard about this (and about all other cool aspects of big game jams) before participating, but experiencing it is very different :sweat_smile:

So far, the game I submitted received a bit over 20 ratings, and the feedback has been absolutely priceless. I feel inspired and refreshed, looking forward to get my hands dirty again to improve Dahla's Journey. I'd like to thank everyone that took the time to play Dahla's Journey and leave a comment, you guys are amazing :heart:

Here are some things I'm looking to implement post-jam:

  • Correct proc-gen bugs
  • Adjust the movement speed (it's too slow right now)
  • Rework the enemy movement (they're supposed to move each turn if able, and sometimes they don't)
  • Implement items to flesh out gameplay and strategy
  • Add more story and art, focusing on the "dark humor" aspect of the game (which seems to be lost to most players)
  • Add clearer instructions on how to play
  • Redesign the UI

If you haven't played Dahla's Journey yet, make sure to check it out:

https://ldjam.com/events/ludum-dare/48/dahlas-journey

Dahla's Journey is a retro sci-fi-esque broughlike set in a dystopian futuristic world populated by biotech life. If it's your cup of tea at all, I'd be honored to hear your opinion on its current state, as I'm planning to keep working on it.

If you have submitted a game and have not yet reached the 20 ratings threshold, leave a link in the comments to this post and I'll be glad to check it out and rate / comment.

Deep Space Journey!

deepSpaceJourney.png

Hey! You! Yeah you, you're the captain now!

Want a quick game to play, rate, and move on? Don't want to install anything?

Look no further than https://ldjam.com/events/ludum-dare/48/deep-space-journey

Here is what current critics say: critic1.png critic2.png

i twitch

https://www.twitch.tv/itsboats

i play ur game in stream come see post ur link into the chat

rates + comment etc

I feel stupid rn

I've just read the tilemap documentation of C2, and I'm now starting to realize that my code could've been optimized by a ton. I'll release the last Deem LD48 bug fix today and start working on the rewritten version. Thank you all who played Deem!

Come on you apes, do you want to live forever?!

The space marines are looking for a squad of brave, young soldiers who are willing to enter the heart of the enemy base and end the alien invasion. Do you have what it takes? Then suit up for humanity!

201.gif

200 (1).gif

https://ldjam.com/events/ludum-dare/48/one-butt-alien-corridor

Video rating games

Hey, leave a comment below and I'll rate your game, and leave a video of my play through. If you'd like to do the same for me, that'd be much appreciated :)

I think it's really valuable to help you understand how new players perceive your game, and learn your mechanics.

The Final Frontier : Arcade travel to the bottom of an unexplore trench

Almost one week since LD48 entries were submitted, I hope your entry is doing well and that you kept the fun and enthusiasm of seen it participating.

I hope you can find a chance to play my entry: https://ldjam.com/events/ludum-dare/48/the-final-frontier

I enjoy reading your feedback and responding to it

Enjoy the weekend!

Gameplay Gif1.gif

Come to play Maggots

3bd90.png.320x256.fit.jpg

Come and fall in the infinite pit with us! and try to beat the current best Score : 14000 points ^^ !

https://ldjam.com/events/ludum-dare/48/vladimir-in-the-infinit-hole![recours-collectif-CRT-televisions.jpg]

Rooted devlog and post Mortem

Hey all! So it's the first time I actually write a postmortem of a Ludum Dare game, so I'll try my best here!

Devlog

Day 0

This is the 5th time I enter the jam, yer every sin Ludum Dare feels really different than the last. This time around I took it with a lot of calm. I started thinking about possible uses of the theme as soon as the theme was revealed, 10PM on my TZ. As always, I start with a blank drive document and start by writing the definition of the relevant words of the theme. Then I start writing synonyms, words in full CAP for key concepts, and some random stuff that works for me. When I find something that I like I start expanding that idea and write possible mechanics and stuff that may or may not work at all. For some reason doing this always work for me, so I do it every jam. This was my first version of the Google Drive document about 40min into the jam

1.jpg

Once I had that general idea in mind, I did my best to write down some basic main mechanics list, I use that list to guide my work the next day. As a "rule" for myself, I never code until Saturday (Theme is released at 10pm here), so I dedicate my first 2 hour-ish to design how the game is going to work, write down a very basic "GDD" and then make a sketch trying to put what I have in mind into a very basic drawing. These drawings often include every single mechanic in a single image, which makes them super hard to understand later, but it's something that I actually make to kind of fixate the concepts in my mind.

2.jpg

3.png

Usually, the list starts in black font, and I color blue each task that has already been completed (Yes I'm aware of tasks management software, I use Trello and Jira every single day, but it's proven to be cumbersome for me during jams). This format allows me to quickly add, cancel, and modify every mechanic on the fly. I usually try to "Follow the fun" with the mechanics. When I see a mechanic Is not working or I can't make it on time, it gets scratched out and forever forgotten.

Once I had a document I was happy with I went to sleep

Day 1

I woke up on Saturday at around 8am and started working on the mechanics with placeholders for every single asset. Things were flowing and progress was steady. At around 1pm - 2pm, I started sharing screenshots and asking for feedback from my always trusty local game devs community (from which other awesome games by @azagaya @freddyturbina and @gamedevtraum were made and I encourage you to check out).

The first screenshot looked like this:

4.png

As Saturday advanced I finished writing most (around 85%) of the mechanics and tested them out in a sandbox test level. I knew I had some bugs and a huge chunk of messy code that needed to be fixed but I decided to postpone that (first bad idea...). By the end of day 1, the game looked like this:

5.gif Bonus placeholder of the mole 6.png

Day 2

On every Ludum Dare I've ever entered, both JAM and COMPOs, Sunday is Art day. So I started working hard on the art. This takes me FOREVER because I'm by no means an artist, so it takes me hours to make only a few sprites. At around 4 pm on Sunday, most of the basic art pieces were ready. I did some playtesting with the non-placeholder art and the rocks were very confusing, not much contrast between dirt and stone, but I said (yeah I'll fix that later... spoiler alter, there's no later).

so I started working on those mechanics that I haven't finished the previous day, this took me a LOT more than I've expected, and by the end of the day it's very bugged and I had NO LEVELS.

By the end of the day the game was looking like this:

gif6.gif

It kind of looked good, but there's a lot of work to do. Above all that, Mondays are mostly a no-go for me, since I work from 9 to 18, and I can't really do any more on the game. So I was aware that I had about 5hs left.

Day 3

I woke up at around 7am and started working on polishing and thinking some levels. I started laying some levels, and by the time I got to 3rd or 4th level, it hit me... HUGE bug, the entire mole mechanic wasn't working, at all.. it's a huge mess.. Of course, this was being caused by that HUGE chunk of code that I postpone and never got to revise again. I took the most extreme, but probably best, decision, I had to rewrite that entire part from scratch. So I did, and it worked! :D

---- No progress made between 9 and 18 ----

I started working again on the game after work and my first task in mind was to make some damn levels!! So I said, ok from here until 19:30 it's going to be "Level design fest." I have had written down some ideas and had some levels in mind.

I finished making levels at the planned hour and was missing SFX and music. As usual, tried to compile it a few hours before the deadline just in case (Good call!).

This is where a lot of things started to go wrong, HTML5 compilation wasn't working at all in unity, I had dozens of weird errors without explanation. After working out those errors, which took me A LOT, I started playtesting in the browser. Everything looked fine, so at about 1hour before dead I quickly added some music and SFXs, compiled, and uploaded a version to itch.io, with the idea of adding a few more last time levels if possible, (spoiler alert 2, it wasn't).

If not enough things had gone wrong already, the game wasn't working when uploaded to itch, Unity loading bar stopped at around 90% and the game never loaded. 45 minutes on the clock and I wasn't able to publish my game. Browsing like crazy I found a guy stating that they have had the same issue and it got fixed by disabling compression in player preferences. Oh how much I loved that person at that moment... The was up and running, hit the publish button on Ldjam, and started working a quick miniature, description, added some screenshots and, Rooted was alive!.

7.png

POSTMORTEM

The game did very well in my opinion! :D, a lot of people commented with very constructive feedback and, in general, seemed to like it. So I'm more than happy with the result. It could've been a LOT better, but as I told you before, some bad decisions took a lot of time from me.

*What DID work: * - Levels seemed to be interesting for most people and the main mechanic and control scheme was accepted by most of the players - Art was welcomed by most of the players, despite the low contrast mistake. - Total gameplay time was good, as it wasn't neither too short nor too long and most players seemed to enjoy it. - Adding a skip level button was a good idea.

What DID NOT work: - Some of the rules of how the game worked were not correctly explained, neither visually nor written in the tutorial - The mechanic of making the root unusable after connecting to a water node was not welcomed at all, and most players - thought it's annoying - Have I already complained about how bad I managed contrast between sprite??? - Music was annoying since it restarted with every restart. This was mainly a time thing, I added the music at the last minute, but still. - To few SFXs and at a very low volume

What I've learned for future jams:

  • Don't leave things for later and break your own organization rules
  • Ask for early feedback on your art, or you may end up with low contrast sprite which a lot of o people had a hard time seeing
  • Ask for feedback on things you think are trivial like main menus!! Some people gave me feedback telling me that they almost abandon the game because they thought the game wasn't working. This was due to not adding a button like an appearance to the main menu buttons, they were just plain text

Thank you for reading if you made it this far!! And see you again in LD49 :D

8.jpg

(Yes I wrote that ingame, and YES I had to retry like 10 times xD)

Devlog for my submission "Suichu"

Here is how I made my submission "Suichu" for LudumDare 48! Check it out!

https://youtu.be/Y6TiI2bWIW8

Untitled91

First time LDer? New to game dev? Post your game!

My favorite thing about Ludum Dare is its ability to push us to try things we haven't done before. If this is your first time participating, especially if this is your first game, I'd love to play it and give you feedback!


And of course, try my game out too while you're at it!

I play, rate, and comment on everyone who comments on my games or posts. Stop by and say hi!!

sxArX1x - Imgur.gif

New patched web version up!

41b06.jpg

Lose yourself in Mr. T's childhood of playing marbles and make believe. Go deeper down the rabbit whole to uncover secrets of old friends. Play EnRoot: https://ldjam.com/events/ludum-dare/48/enroot