Ludum Dare 50 April 2–5, 2022

Uploaded a devlog!

Yo! I'm not sure if this is considered a devlog but I made a video recounting the experiences I had in this Ludum Dare, or at least a few of them. If you want, check it out below. Just be warned of the really bad acting lol

https://youtu.be/R1Eo9N9wAgY

Newsflash!

Security camera shows thief who can stop time and see the future using sneaky tactics to evade capture.
crime-time-ld50-extra-sneaky-16x9-910x512.gif
Crime Time is an HTML5 Browser Game for LD50: https://ldjam.com/events/ludum-dare/50/crime-time :wink:

action2title.png

Made a mobile version of my game!

So happy with how my game turned out as well as the feedback I have been getting from here, so I decided to make a mobile version of my game. Now I'm just waiting for Google Play to approve the app and then I will have my first published game! :sparkles: :sparkles: https://twitter.com/BangTheWall1/status/1512115852694499332 Feature Image.png

Wanna play a cool, cute (slightly satanic) [now mostly bug free] crafting game?

I Love My Sheep is an adorable crafting game focused on polish, neat ui, and plenty of content. Now has very minimal bugs - so if you saw it before, try it again! icon.png

Craft a plethora of kooky collectibles to please your God.

I love my sheep scrn3.png

Sate his appetite with sheep, jewellery, crosses, totems, to appease him! Because you love him!

And not because he will smite you if you don't!

I love my sheep scrn1.png

Play it with this Convenient link!

Hacker-themed play in browser game

Would you like to play a hacker-themed game with a realistic discord experience?

Play in browser: https://ldjam.com/events/ludum-dare/50/lets-make-gta-6

In the game, the discord clone game engine (bitcord) is used; Rockstar games company decides to release gta 6, but some do not want this game to come out.

Our goal is to join the hackers and delay the game's release date.

ss1.png

ss2.png

Feedback Stream on Twitch - Thursday

ld-50-schedule-4-3.png

I will be playing submitted games live on stream and giving feedback all this week. Join me at https://twitch.tv/marcmagus to see some games, discuss, and share yours.

When you get there: !register ldjam-game-page to tell me about your game; once again we'll be doing FIFO while the queue is small and switching over to our progressive raffle as the queue fills up.

Thursday's stream is going live now.

Please make HTML5 builds!

Unless there is a really good reason not to (e.g. your game engine does not support it), please build your games for HTML5. With Unity, you can embed them in itch.io by uploading a zip file of the WebGL build.

Many people do not want to download files onto their computers to play a game. It makes the experience much smoother for those that play your games.

Thank you.

Wanna give the people of Earth a few more minutes to live?

If that's something you have ever felt like doing (as I'm sure you have)... well, now you can!

AstroPhysical is a multitasking game where it's up to you to delay an asteroid from hitting Earth. That's right, you can't prevent it, but at least you can feel the burden of having everyone you have ever loved depend on you to let them live a little longer!

AstroPhysicalemCover/emNEW_1.png

Have fun launching nukes, missiles, solar beams, gravity tractors and much more in this once in a lifetime chance to handle Weapons of Mass Destruction yourself :D

Play it now with this very convenient link! https://ldjam.com/events/ludum-dare/50/astrophysical

SS2.jpg

In all seriousness I really hope you enjoy the product of two very sleepless nights :)

Create your emo legacy

20emGif/emProtectYourLegacy.gif

The main idea about our game was about playing a vampire who creates a legacy by biting people in a village, without being caught by guards. But early in the process, we thought about our teenagers years and laught about the idea of villagers becoming emo-kids by becoming vampires. So it is how this first sketch come to life : 23_Communication.png

Soon, Ikowa, our 2D animation artist made some walk cycle to define everybody's behaviour : walk_3.gif

But our GameDesigner created a new character, the priest ! So we ask him if the priest could be bitten. He said yes so we created a Emo version of the priest : 08_LePretre.png

Our gamedesigner also said in the GDD that the hero could go to a tavern to hide himself. So, with Ikowa, we figured out the idea that emo could be hidden in a Tokyo Hotel concert, so we chose to replace the Tavern by a Concert. Here is the first rough animation : 06emTaverne.jpg emos/emdancing.gif

If you want to see the final version ingame, please play it here : https://ldjam.com/events/ludum-dare/50/the-endless-night 11_MenuTitre.gif

March of the Mega-Machines (HTML5/WebGL and Windows)

Screenshot.png

The infinite robot army is here! You are the last line of defense against this overwhelming force. The only thing we can do is hold them off as long as we can.

Use our last resources to construct towers along the enemy's path towards our base. Whenever you destroy an enemy you gain more resources. Construct more towers or upgrade them with the resources.

https://ldjam.com/events/ludum-dare/50/march-of-the-mega-machines

Controls:

Select: Left mouse button

Deselect: Right mouse button

Pause: Esc / Ctrl / Top-right button

MenuScreenshot.png

EndScreenshot.png

https://ldjam.com/events/ludum-dare/50/march-of-the-mega-machines

Who ARE all these people even?

chaos.png

How many people work in this office?

Don't they have anything else to do except for touching plants?

Do they ever go to sleep?

Is that Mario? TWICE?

Also, I think I just broke the record on my own game. 234 seconds. Can you beat me?

Give it a try here!

New Update!

I just made some changes and uploaded them. There now are a player walking animation and a particle effect on smashing. If you want to play the game without those changes to rate it properly, there are additional links marked (Jam). If you want to try the game with latest changes, use links with (Latest) mark.

The Game

Unapocalyptic is a survival-clicker where your objective is to survive as long as possible during a zombie apocalypse, nuclear war and survive during a meteorite fall.

Screenshots

Screenshot 1 Screenshot 2

https://ldjam.com/events/ludum-dare/50/unapocalyptic

Our game trailer

https://youtu.be/35l3wYgoiaU

Clear Skies with a Chance of Meteors

I made a card game in which you delay the impact of a meteor for as long as possible in order to save people. Some more ratings would be appreciated!

screen1.png

Play here

Good evening Folks!

This game is about the never ending fight against weed. Crops can't grow if there is weed on their patch. Deliver your hard earned crops at the chest and get new seeds to fullfill the next orders!

There is a Webbuild you guys can play. :arrow_right: :joystick: PLAY AND RATE HERE

LD-50-small-2.gif

Write me comments and i try to plan some slots to play and rate your game as well! Looking forward to your feedback :smiley:

Not sure why they never let me do any art!

I found some concepts for minigames I drew at the start of the jam. Sometime between then and the deadline, my friends went behind my back and replaced all my beautiful programmer art! The nerve!

art.png

Anyway, try out The Assessment!

It's a collection of tiny minigames, thrown at you in rapid succession! As usual, we had so much fun making this stupid thing.

When the artist is occupied.

It's a weird teaser but anyway I'm not the artist of the team x)

(Yeah I copied the post below but it was too funny)

https://ldjam.com/events/ludum-dare/50/1-man-6-bullets

imageem2022-04-07/em211911.png

The Coolest Version of Pong You've Ever Played

A game where you protect the earth from an incoming asteroid that is bouncing around the earth's magnetic field Screenshot (65).png

use the platform on earth to bounce the meteor away!

use the keys a and d or the arrow keys to move

Play it here: https://ldjam.com/events/ludum-dare/50/the-end-is-coming

Newest Update: I fixed a game breaking bug that some people found and made some minor fixes and improvements.

Let's play Ludum Dare 50 - Part two

Today's stream was super fun again, only awesome people and games, handed out 5 stars left and right :)
You can check it out here:
https://www.youtube.com/watch?v=moEABKSaTuI
Games in this video: Chronolapse by @neithernathan, @letiguaxinim, @francisco-lucas and @patrick-stefano - https://ldjam.com/events/ludum-dare/50/chronolapse
Wicked Flame! by @brousse-dylan and @kaldrin - https://ldjam.com/events/ludum-dare/50/wicked-flame
Wormageddon by Flatfist Studios (@idan9000, @justin-ma-wav and @matterlinx) - https://ldjam.com/events/ludum-dare/50/wormageddon
Wickfall by @originaldog - https://ldjam.com/events/ludum-dare/50/wickfall

Next one is tomorrow at 6pm / 18 CEST. To submit your game fill out this survey: https://forms.gle/XwC8zZZG6FCgfkjw7
Join the stream for an astronomically higher chance of getting featured :)
Looking forward to the next one, see you there!

What are you waiting for? The inevitable? Then it is time to rescue some bears!

Brown Bears and Polar bears in planet x in solar system y were living peacefully until the sun z began to melt their land! Unable to escape their fate, they are left to drown. Fortunately, you and your bear friends, the astrobears aka "The Bear Rescue Force" concoct a plan to save your kind. This new technology, a rocket able to move from planet to planet.

Play Now: https://ldjam.com/events/ludum-dare/50/bear-rescue-force-aka-global-warming-simulator

There is no time to waste! a.gif

Remember, the ice melts fast, so you need to keep these in mind. - You are able to recruit bears by giving them 2 fish - You need 5 oil to escape a planet - To get a bear in the rocket you need 1 fish, so when you recruit a bear account for total amount the fish you have

b.gif

Here are some tips to help you save the bears: - Pick the best spot in the first planet 68cf223a24902dd54d0e1fb036757c4d.png This is a good spot because the oil is near, and there are also fish spots near. - Find an area where 5 oil is accessible so you can leave the planet when you need to - When you recruit one bear, make sure you have enough fish to board that bear to the ship after recruiting them - Make sure to go between planets much faster, you may want to utilize every resource in the planet, but there is no time to spare - You dont need to start at your beginning planet! Scout out other planets behind you to find a more suitable start

Show us your results! How many bears did you save in the end? 3e5a9f99fc316bc7c602b1e59a645378.png

extremely extra disco ball for an extremely extra game

after doing the compo for years, it's weird to say "eh, I don't need to finish this for like another week at least"

It's been nice to get deep into juice / polish / etc and get stuff to where I like it before having to call it done.

discoemball/emwith_glow.gif

Technical Postmortem - BLACKSUN

Hey guys and gals, Davide here! :v:

I partecipated to LD50 with BLACKSUN, a resource management game based on the Aztec myth of the Fifth Sun and the subsequencial destruction of the Earth.

Cover-pm.png

The postmortem will be a little more on the technical side, mainly because I am a developer by myself and my art skills suck :robot:

I will talk about Unity, C# and shaders (just a little). There is also a little chapter on the release, matter I'm not really expert, but during the compo I got some knowledge worth sharing.

About any suggestion, critique or challenge to a duel to the death, please write them in the comment section. Happy reading you all! :v:

P.S.: you can find the complete source code at https://github.com/DavideRoss/BLACKSUN!

Singleton Pattern

The singleton pattern is a very diffuse software pattern that let you instantiate a specific class (MonoBehaviour in our case) once, like it is a global variable. This is often seen as anti-pattern (something to avoid because prone to problems later in the project), but I find it very useful in Unity.

In practical usage let you access a MonoBehaviour object almost as static, so you don't have to link the object around the scene. Usually I have a block of important objects I use frequently called managers, like in my case the GameManager, the ResourceManager and the AltarManager.

There are different ways to create a singleton in Unity, each one with its bonus and malus, personally I use this one:

```csharp using UnityEngine;

public class GameManager : MonoBehaviour { static GameManager instance; public static GameManager Instance { get { if (instance == null) _instance = FindObjectOfType(); return _instance; } }

// Public variables
public bool IsPlaying;

} ```

The script declare a static property of the GameManager object returning the non-static _instance variable. If _instance does not exists yet, then search for it. That means if also you put two GameObject in your scene, both with the GameManager component attached, GameManager.Instance will refer to only one of these two. Then, if I want to get the IsPlaying variable from anywhere in the project, I just have to write GameManager.Instance.IsPlaying.

The theory behind a generic singleton pattern is not really intuitive to get in the beginning, but trying the pattern on Unity really shows how it's used and why. Give it a try!

Defining the ticks per second

In the beginning there was nothing, then Unity created Start and Update. But Update has a problem! It runs every frame, not caring if the game is running at 5 or 500 FPS, and I cannot calculate the duration of a job based on Update!

(small trivia: a lot of games from 80s/90s cannot be played without a proper support because modern CPU are much faster. This problem is still present nowadays: a famous Doom 2016 speedrun strategy depends a lot by the FPS. And about the speedrun: do you know that speedrunners prefer running on NTSC SNES instead of a PAL one because has a higher refresh rate?)

Yes, I could have used FixedUpdate, running on a fixed physics engine timeframe, but it's not really meant for that and I wanted more granular control. So I went for writing a tick clock by myself!

The system is actually pretty easy, it consists of three components: the interface, the registration and the propagator (not real computer science name, I like to be a little dramatic).

The interface is barely a couple of lines: its job is define a method that a class must have when it's inherited. The benefits of this method is that I can inherit the interface on multiple objects, and still I can fit them all into a single List. This is the code for the interface:

csharp public interface IOnTickHandler { public abstract void OnTick(); }

Pretty simple, huh? The interface just defines the signature of the method that must be implemented later in the class. Every class can implement the method as needed, like this:

```csharp using UnityEngine;

public class JobView : MonoBehaviour, IOnTickHandler { private void Start() { GameManager.Instance.Register(this); }

public void OnTick()
{
    // Do stuff here
}

} ```

This script do three things: inheriting the interface, implementing the method and registering the object. But why the registration is needed? You can find the solution on the GameManager code:

```csharp using System.Collections.Generic; using UnityEngine;

public class GameManager : MonoBehaviour { // Singleton implementation, see above

public float TickPerSecond = 20f;

float _time;
long _ticks = 0;

List<IOnTickHandler> _jobs = new List<IOnTickHandler>();

private void Update()
{
    if (_playing)
    {
        _time += Time.deltaTime;
        if (_time > 1f / TickPerSecond)
        {
            _ticks++;
            _time -= 1f/ TickPerSecond;

            foreach (IOnTickHandler jv in _jobs.ToArray()) jv.OnTick();
        }
    }
}

} ```

The object with the interface inherited is added to a List<IOnTickHandler>, then in the Update function I sum Time.deltaTime (the time past from the last time Update is called) and check for a new tick. If the new tick has happened, cycle every object that inherit the interface and basically propagate the information that there is a new tick.

And that's conclude the whole lap. It's a little convoluted and probably overengineered for a game jam, but in this way I can control from the GameManager component the speed of the game during the game itself, and it could be extremely useful!

Difficulty ramp

I am not a game designer, and resource management games needs a lot of balancing, because there is the risk that a skilled player can manage to gather enough resources to keep playing the game indefinitely.

To solve this problem I've implemented an incrementing difficulty ramp. The variable is defined in the GameManager script:

```csharp using UnityEngine;

public class GameManager : MonoBehaviour { public float Difficulty = 1f;

private void Update()
{
    // ...

    if (_time > 1f / TickPerSecond)
    {
        // ...

        Difficulty += .0001f;

        // ...
    }
}

} ```

For each tick, increment the Difficulty variable a little. Then this variable is used in various places around the game, like in the AltarManager script to pick the amount of resources to demand:

```csharp using UnityEngine;

public class AltarManager : MonoBehaviour { public void SpawnHead() { // ...

    int count = Mathf.RoundToInt(Random.Range(1, 3) * GameManager.Instance.Difficulty * (Random.value < .5f ? 3 : 5));

    // ...
}

} ```

In this way the amount of resources is not only dependent from a random value, but it's also biased by the difficulty of the game. In the end some players managed to survive basically forever, but this method shoud have worked for most of the games.

The names of the gods

This is a last moment addition, only for giggles: on the tooltip for the god head you can found the god's name and his/her domain. This elements are generated randomly, you can find the code in the GodHead script:

```csharp using System.Collections.Generic; using UnityEngine;

public class GodHead : MonoBehaviour { public static List Names = new List() { "Macuilcozcacuauhtli", "Macuilcuetzpalin", "Macuilmalinalli", "Macuiltochtli", "Macuilxochitl", "Cuahuitlicac", "Patecatl", "Ixtlilton", "Ometochtli", "Tezcatzoncatl", "Tlilhua", "Toltecatl", "Tepoztecatl", "Texcatzonatl", "Colhuatzincatl", "Macuiltochtli", "Iztacuhca", "Tlatlauhca", "Cozauhca", "Yayauhca", "Cipactonal", "Huehuecoyotl", "Huehueteotl", "Mictlanpachecatl", "Cihuatecayotl", "Tlalocayotl", "Huitztlampaehecatl", "Quetzalcoatl", "Xiuhtecuhtli", "Mictlantecuhtli", "Acolmiztli", "Techlotl", "Nextepeua", "Iixpuzteque", "Tzontemoc", "Xolotl", "Cuaxolotl", "Tloque-Nahuaque", "Ometeotl", "Ometecuhtli", "Tonacatecuhtli", "Piltzintecuhtli", "Citlalatonac", "Tonatiuh", "Nanauatzin", "Tecciztecatl", "Tlahuizcalpantecuhtli", "Xolotl", "Xocotl", "Tezcatlipoca", "Quetzalcoatl", "Xipe-Totec", "Huitzilopochtli", "Painal", "Tlacahuepan", "Tepeyollotl", "Itzcaque", "Chalchiutotolin", "Ixquitecatl", "Itztlacoliuhqui", "Macuiltotec", "Itztli", "Amapan", "Uappatzin", "Itzpapalotltotec", "Miquiztlitecuhtli", "Tlaloc", "Tlaloque", "Chalchiuhtlatonal", "Atlaua", "Opochtli", "Teoyaomiqui", "Tlaltecayoa", "Cipactli", "Itztapaltotec", "Cinteotl", "Ppillimtec", "Omacatl", "Chicomexochtli", "Chiconahuiehecatl", "Coyotlinahual", "Xoaltecuhtli", "Xippilli", "Xochipilli" };

public static List<string> Domains = new List<string>() {
    "stars", "medicine", "fertility", "underworld", "ballgame", "sacrifice", "earth", "art", "excess", "pleasure", "gluttony", "music", "gambling",
    "healing", "peyote", "maize", "astrology", "old-age", "deception", "wisdom", "winds", "light", "fire"
};

public string Name;
public string Domain;

public void Initialize()
{
    Name = GodHead.Names.PickRandom();
    Domain = Random.value < .5f ? "Goddess of " : "God of ";
    Domain += GodHead.Domains.PickRandom();
}

} ```

It's not really remarkable, if not for the PickRandom() method: this method is not native of the List<string> object, instead is added by the developer using what's called an extension method. You can find them on the EnumerableExtension script:

```csharp using System; using System.Collections.Generic; using System.Linq;

public static class EnumerableExtension { public static T PickRandom(this IEnumerable source) { return source.PickRandom(1).Single(); }

public static IEnumerable<T> PickRandom<T>(this IEnumerable<T> source, int count)
{
    return source.Shuffle().Take(count);
}

public static IEnumerable<T> Shuffle<T>(this IEnumerable<T> source)
{
    return source.OrderBy(x => Guid.NewGuid());
}

} ```

Those methods are using generics and LINQ queries, but the gist of it is that returns the first element of a shuffled list.

Pretty neat, huh? You can achieve the same result using a static method asking the list as parameter, but I'm a sucker for syntactic sugar, hence the expansion :stuckouttonguewinkingeye:

Clicking on the elements

I have doing UI stuff. I really despise it. And of course my games are heavily UI based, guess I hate myself a little too. Making the player interact with UI, but still keeping a GameObject is boring: you can create a canvas for each GameObject that needs UI elements, or you can set your UI in world space and move GameObject and UI element together, and both methods seems a little hacky.

I need that the player can click on a GameObject, but usually require casting a ray from the camera to the mouse position, but converted in world space and not in screen space. Then the method that shoots the ray should propagate the event to the correct object and make sure that the object handles it. A lot of work, isn't it?

Luckily, Unity ~~warlords~~ developers provide us a couple of useful interfaces: IPointerClickHandler, IPointerEnterHandler and IPointerExitHandler. An explanation about the interface is provided a little above.

This those three interfaces I can handle all mouse events without caring to shooting rays, setting up colliders and propagating things. Thank you Unity devs!

I used them mainly in GodHead and JobView scripts to handle the assignations and the tooltip. The methods provides also an object with a lot of useful informations, like the mouse position and the button clicked. This is the JobView script:

```csharp using UnityEngine; using UnityEngine.EventSystems;

public class JobView : MonoBehaviour, IPointerClickHandler, IPointerEnterHandler, IPointerExitHandler { public void OnPointerClick(PointerEventData e) { if (e.button == PointerEventData.InputButton.Left) { // Assign a villager to this job }

    if (e.button == PointerEventData.InputButton.Right)
    {
        // Remove a village from this job
    }
}

public void OnPointerEnter(PointerEventData eventData)
{
    Tooltip.Instance.ShowJob(Job);
}

public void OnPointerExit(PointerEventData eventData)
{
    Tooltip.Instance.Hide();
}

} ```

I found this method straightforward and easy to use. The only thing you have to care about is setting up a Collider2D component (otherwise the events won't trigger) and be careful to not overlapping them with other UI elements blocking the raycasting.

A little take on shading

I didn't used so much shaders for this project: the only one is a shader assigned to the god heads, changing the color of them while the time is running out. The shader itself is pretty basic, plus a couple of lines to make it work with the alpha.

The shader is pretty hacked up together, time was running out, the shader is called GodHead_Shader (here's only the interesting part):

```glsl sampler2D _MainTex;

float _Timer; float _Darken;

fixed4 frag (v2f i) : SVTarget { fixed4 col = tex2D(MainTex, i.uv) * i.color;

float4 alt = col * _Darken;
float blend = step(_Timer, i.uv.y);

clip(col.a - 0.5f);

return lerp(col, alt, blend);

} ```

In the fragment shader I use a step between the UV on the Y axis and an external property to change the color to a darker one. I can control the external property via script, like in the GodHead script:

```csharp using UnityEngine;

public class GodHead : MonoBehaviour { public SpriteRenderer Head; public float TotalTicks;

float _pastTicks = 0f;

public void OnTick()
{
    _pastTicks++;
    Head.material.SetFloat("_Timer", Mathf.Clamp01(1f - (_pastTicks / TotalTicks)));
}

} ```

The clip function on the shader basically skip rendering the pixels when its argument is below zero. Writing the fragment shader this way make a cutout shader, where a pixel can be fully opaque or fully transparent, with to actual transparency.

Building and delivering

That's the part I was not really so expert. And to be honest I'm still not really that expert. I wanted to build the game for Windows and WebGL, so first thing I did is installing the "WebGL Build Support" module through Unity Hub. It took a dozen of minutes, pretty easy.

Second step was changing the Project Settings, specifically the Player section. For the Windows build I just changed a couple of settings, mostly the Fullscreen mode and the Default Screen Width/Height.

ps_2.png

Third step: open Build Settings and add all required scenes to the Scenes in Build box, roughly ordered by the order of loading. I left all the other settings as they are and press Build: after a dozen of seconds it was done, zip the folder and upload it to my Drive. Done!

To build for WebGL the first thing you have to do is to switch platform from Build Settings: grab a snack, it will take a while. With WebGL had a little more problems: the first build I did has the resolution too high and for some users went out of screen, not good. So I limited the resolution and make the UI Canvas adapt the size for good measure.

ps_3.png

Then I had a couple of problems with Itch.io: with the default settings the browser cannot load the game, complaining about decompression issues. I solved disabling the compression from the Publishing Settings: the build is a little more heavier, but still manageable by any modern device.

ps_4.png

Done! Finally I can rest my old and worn body!

Outro

Whoa! That took a good time to write. If you are still reading, thank you very much! I hope that this postmortem can help you in the future. If you want to go deeper down the rabbit hole of game programming you can check the code from the other Compo participants: understading other people code is an awesome tool to learn!

Keep up the good work people, share as much you can without fear or doubt, we are not here to judge, but to help. Davide out!

cover_heads.png

Snail Always Trails is Finally Published!!!

menu art.png banner.png

Submission Page: https://ldjam.com/events/ludum-dare/50/snail-always-trails

Created by: Albus Grizzle Team

Our game inspired by famous Immortal Snail Assassin hypothetical scenario. :snail:

As a player you try to avoid touching the snail while it chases you in your house.

You can throw objects to slow down the snail but not every object may not work as you wanted.

:trophy: The goal is avoid from snail as long as you can, every time you fail restart and try again for better score! :trophy:

Feel free to comment and give a feed back :v:

Screenshots:

WhatsApp Image 2022-04-07 at 8.34.39 PM.jpeg

Witchcraft

Play online: https://ldjam.com/events/ludum-dare/50/witchcraft

Untitled_Artwork 39.png

I remade my first Game Jam game for the 20 year Anniversary

I kinda wanted to do something special for the anniversary and I thought remaking my first game jam game from 7 years ago would make for an interesting experiment.

https://www.youtube.com/watch?v=GUP_j1RfDrU

RATE IT HERE: https://ldjam.com/events/ludum-dare/50/nelsons-nightmare-remastered

PLAY IT HERE: https://clemonades.itch.io/nelsons-nightmare-remastered

PLAY THE OLD ONE HERE: https://clemonades.itch.io/nelsons-nightmare (if you want to compare the 2)

Remaking an old game?! Is this even legal? Who knows. Did I haz fun? You betcha!

gif5.gif

gif6.gif

gif7.gif

Trying some more entries!

Quick plug: My entry is the stupidly-named Turbo Toilet Tomfoolery!

tomfoolery.png You gotta get to the toilet before you soil yourself! Make it quick! Don't.... sigh, delay the inevitable!

But that isn't the point of this post!

The point is, if I'm going to link my own game, I should respond in kind: I'm going to set aside plenty of time to playing your entries.

Now why does it matter if I play your game, apart from escaping the Danger zone? Well, I make sure to post a detailed comment with my thoughts on your game..... uh, not really sure if that means anything, but I DO try to post something meaningful, as stupid as that sounds.

I've also included entries that I've rated on my profile, frivolous, I know; I should also state that this isn't a ploy to get you to follow me! I won't enter another Ludum Dare for a while, if ever again, so it may not be the best decision to follow me.

Basically, post a link to your game in the comments, including whatever you want to say, and I'll respond in kind. Thanks for reading this, even MORE so if you post your entry down there, and to end this comment, an undo history timelapse of the thumbnail drawing!

ldThumbnail.gif

PLAY AND RATE CARROT GROVE!

screen1.PNG screen11.PNG

https://ldjam.com/events/ludum-dare/50/carrot-grove

Do you like visual novels? Some romance? Play our unique slavic-themed game :D btw we'll surely also rate yours!

Playing your games!~

Hi, I'm playing games over at https://www.twitch.tv/nardandas20. If you're having trouble getting a download game played please stop on by, I play them all!

Streaming Tonight

I will be live at 6:00 p.m. Eastern U.S. Time (10:00 p.m. GMT) streaming games.

https://www.twitch.tv/tiger_j

If you name is below, your game was submitted earlier this week and will have priority if you are able to join.

@gummibot @martynas @helzinko @tadas-migauskas @jamieok @benjamin-halko @shawn-moore @gustavo-doo @thalisson @eduardo-kolody @arthurds

336_TeamTiger.jpg

No Way Out

Have you tried No Way Out?

4b3bb.png

Run away from the devil for as long as possible, while the devil - knowing how much you hate trivia - has made a game out of every crossroad in his endless maze

4b3c3.jpg

Two of the roads are filled with traps while one is completely safe, but don't take too long to decide as the devil is right behind!

4b3c7.jpg

Can you juggle surviving many different traps and answering trivia all while running away from the devil?

https://ldjam.com/events/ludum-dare/50/no-way-out

The Last Keeper

Hello! We made a game where you can become the Last Keeper of the Ruined Island! Create magic buildings, protect the island, and escape it before it too late.

Screenshoot4.png

Link to our page: https://ldjam.com/events/ludum-dare/50/the-last-keeper

Link to itch.io: https://bugord.itch.io/the-last-keeper

How to play "= Catchbot Tournament ="

Have you try our game ?

Here's how to play to = Catchbot Tournament =

Your opponent, this bad guy here, will try to catch you.

His speed is increasing over time. If he catches you, it the end of the current run. Each run, his base speed will increase. So each run will be more difficult than the last. Badguy.gif

If you get caught within 10 second, it's a "Death run".

If you do 3 Death runs in a row, it game over and you'll have to start again from the beginning ! So watch that counter at the bottom right of the screen : Deathrun.gif

To escape your opponent your drone have been equipped with 2 skills :

  • DASH : Dash away from the opponent by pressing Left Shift. Short cooldown.
  • EMP bomb : Trigger a Electro Magnetic Pulse that repel and stun for a short time the opponent. Use it with the Spacebar. Long cooldown. Skills.gif

After being caught, you'll earn credits and enter Build mode

Use your earned credits of the last runs to add obstacles and traps to the arena. You'll be affected by them too but your opponent only go toward you, without trying to avoid those things, so trick him into them ! Hover any buildings to display an info panel about it. Drag and drop then into the arena. Keep in mind that they can't be too close to each other. portal.png

Repeat, try to do the best number of runs (22 is the best recorded so far) and have fun !

try 9.gif

Thanks for playing our game :) - Quasar Shrine Team : @Arktas, @Lut1n, @WegPast - Logo.png

Help our indestructible furry friends achieve victory :)

Hello, we are a team from Ukraine, we made a game between air raids during the war.

We want to dedicate this game to faith in the victory of our country :)

I hope you enjoy playing and evaluating our work :)

Our victory and the victory of our cats is inevitable! icon.png https://ldjam.com/events/ludum-dare/50/indestructible-pawscat 3.png1imageem2022-04-07/em23-50-41.png

[Insert advertising here]

Just in case you haven't seen or played our push-your-luck trash stacking game yet:

Gameplay_Cut2B.gif

Play it here

We are currently working on a working version for android and webgl on mobile devices. Giving the nature of our game this was the plan from the start. But game jams have this one little thing called time constraints... The main game play was running on our phones from the start. But the UI and the placement of some items were not working out. And every time we thought we fixed it, something else popped up.

Sooo, long story short, the final jam version isn't really playable on mobile devices. But we are at a point were we have a running version. And with some more testing and polish tomorrow we will release an update / post jam version over the weekend. Maybe we will even experiment with a release to the google play store (which neither of us has ever done before) to get all those pretty ad cents. And DLCs... oh yet! Who wouldn't pay $5 for a DLC containing new ... ahhh ... trash?

But seriously: Play it now on your pc or follow our updates over the weekend to find a new link to a mobile friendly version and apk file.

Thanks for all the love and let us know if you have a cool web playable game we can try to give something back.

Thanks to you, a patch is available!

WOW WOW WOW :heart:

Many of you came to play our game, and gave very nice comments!

Thanks to that, we were able to discover a few minor bugs and inconveniences hidden in our game! They have been fixed, so get prepared to Baggy & Maggy v1.2!

Credits.png

For anyone who didn't have the chance to try it, come take a look at Baggy & Maggy!

Also, the game is now available for Web browser and as a Windows executable!

5 Years Later...

This jam was a lot of fun and also my first one in about 5 years. I wasn't sure whether I'd still have the energy and speed to finish any idea I'd come up with, or whether I'd get bogged down in the details of the implementation (as I sometimes do in my job these days). Turns out my fears were unfounded and the jam took me away with all its excitement and ups and downs :)

If you haven't played my game yet, please do! It's a funny little dungeon crawler with an interesting take on the theme. The idea took me a while to come up with, and I was almost worried I wouldn't be able to come up with something I'd be willing to spend the three days working on, but when it struck me I know I'd have a lot of fun making it.

Cover_Image.png

Lessons Learnt

A few things I want to bear in mind for the next jam I do (I really want to make this a regular thing in my year), which may be obvious for some. - I should actually plan out my idea and attack it strategically, starting with the core elements. It's too easy for me to just identify the parts which I find the most interesting and focus on those, only to realise too late that I still haven't worked on the part which is meant to bring the most fun for the player (and not just the developer). I very nearly didn't have time to implement the "AI behind the game" part of my game because of this. - In the run-up to the jam, every morning I'd ask my partner to give me a random theme and then I'd think of a game idea for it throughout the day. This was intended as practice in case the theme turned out to be something I didn't really like! Because of this I now have about 3 different ideas of games that I want to make outside of jams, which maybe isn't a good thing given my finite amount of time. I think this really helped me with this jam's theme, though, since I struggled with it at first. - More sleep before the jam. The week before the jam was quite hectic for me, and ruined my sleep schedule. Because of this I was already sleep deprived on day 1 of the jam (I only managed 6 hours of work before I couldn't concentrate properly!). This was actually out of my hands this time, but next time I'll be careful :) - Only on the last day did I decide to check up on what other people were doing, and it really gave me a second wind. With my head stuck in my own idea it's easy to forget that half the fun of jams is other people's games, so it's a shame I didn't check in more!

Some of my favourites!
  • Forest Fire has a really cool "faceless enemy", and I think the gameplay would be perfect expanded to a Overcooked-style co-op game.
  • VargaVinter drips atmosphere and has an excellent world and characters that I'd love to know more about.
  • The Fire Will Die is a great miniature survival game is that dying to be expanded.
  • Merge Getaway is a super-slick highscore game with really satisfyingly swervy controls!
That's all really! Thanks for the games, guys! :)

PickyBurrito's DevLog - Somnipathy

giphy (1).gif Hello and welcome to my very first ever DevLog. My team's entry for LD50 (https://ldjam.com/events/ludum-dare/50/somnipathy) marks the completion of my 4th game jam. I have been lucky enough to do them with the Tearcell Studio team and each time I have not only had a blast but learned about game design and programming in the process. The Mix and Jam 2020 was how I got into programming/game dev when @cyzaine (founder of The Tearcell Studio’s) asked if I wanted to help him. I remember that weekend quite fondly as I sat down at my computer with nothing more than a vague notion of what we were doing, a group of friends, Zero programming knowledge, freshly downloaded versions of Godot and Aesprite, and about 100 open YT tutorials in my browser.

Looking back I am pleased with what was accomplished. I did still ask my fair share of questions, but they were more along the lines of “Hey what is the name of the thing that does x and y again? I cannot remember enough to Google it.” And once I had the name I went back to my tried and true technique of ‘open 100 YT tutorials in my browser. The enemies do still need some work as they don’t release Aggy quite quick enough and I do plan on removing the text during attacks as it doesn’t add anything. The idle text and outros I do enjoy, especially the lamp chirping “Lights out for me!” as it clicks off for the final time.

I hope you all enjoy fighting them as much as I enjoyed the challenge of coding them and I hope to catch you all in the next Jam!

Keep your eyes out for future updates as we plan on continuing work on Somnipathy over the summer!

*pro-tip for those that read through the whole thing: if you click on the stove as it starts the attack you can knock-out every symbol before they have a chance to spit out! This is 100% going to be patched so take advantage while you can!

It's a Feature, Not a Bug!

Everyone knows that a big explosion in space instantly wipes out all cloud coverage on Earth. I just wanted Space Ninja to be scientifically accurate. It definitely wasn't that I forgot to test how multiple transparent shaders interact :wink:

clouds shader.gif

Any shader wizards out there who can tell me what I need to do in Unity to see transparent materials behind other transparent materials? I'm guessing something to do with ZWrite or depth stuff? The clouds and the distortion effect are both made in Shadergraph.

Anyone got really cool shader magic they made and want to show off? Link your game below, I love seeing cool technical art.

GUYS, HELP ME ACHIEVE MY GOAL TODAY

Hey guys, so today my itch.io page is almost at the 200 views for my game and I so glad and happy that people are enjoy it, so please if you didn't played it, please do it now because it will make me sooooo happy!

https://ldjam.com/events/ludum-dare/50/will-there-bee-another

IMG_1710.png

bring me games

https://www.twitch.tv/tiger_j

Detour

Detour is a turn-based tetris + survival + card game. It is soothing, relaxing and easy to play.

The Cube moves to a flag on its defined path. You have to block its way using tetris-like shapes. They can be placed strictly on the path.

Hopefully we’ll have time to improve Detour and fix some bugs.

vid3-low.gif

Thank you for playing + rating.

P.S. :flag_ua: We are a studio based in Kyiv, Ukraine. So, if you liked the game, we encourage you to donate a few cents. All the donations will be sent to our army, which is currently fighting for our existence in an absurdly cruel war that russia brought to our country.

Work in progress

Hello, It's us again, we're working on cleaning up the game code but also on the visual side with new graphic assets for the characters, as well as including more "cinematic" when switching to berserk mode in particular . (come and try I promise it's cool) here are the first visuals, as usual it's much more advanced on the dev side but you know what a teaser is... ;)

https://ldjam.com/events/ludum-dare/50/1-man-6-bullets

teasz.png

Back to basics

On this Ludum as a team we have the goal of creating a simple and fun core loop. Somehow we did it (obviously with a lot of room for improvement) so we're happy about that but what made us most happy was seeing how people enjoyed something as simple as building. It left us thinking how valuable it is that a game can produce something in those who play it. We play games for that very reason and we are so grateful to have the opportunity to see that spark when someone plays our games. https://ldjam.com/events/ludum-dare/50/aster-defense unknown.png unknown (1).png 4d5e9.png 4d4ea.png 4d4c4.png 4d390.png 4cef4.jpg 4cc7e.png 4cc6d.jpg

MAGICAL JUGGLER EXTRAORDINAIRE is coming to google play!

The first post-jam update to my entry has been completed and the game is pending publication to the google play store! The game was begging to be released as a pick-up-and-play mobile game from the moment I settled on the idea, and I'm really happy with how the port has turned out! I'm having so much fun with this project right now that I'm going to keep the development going a bit longer, moving forward with the mobile version and keeping the current jam WebGL build as it is for posterity.

The new 1.1 version of the game comes with a few updates suggested to me by the kind people who gave feedback on my jam entry, most notably an overhaul of the wind spell which makes it more fun and a bit harder to use:

windComparisonText.gif

as well as a few QoL changes, progress saving, and separate high-scores for each spell.

The games publication date is in Google's hands now but expect another shameless promo post when it releases!


You can play the original jam version of the game here.

absolutefinal.gif

Post-Mortem: Eternal Crisis

Looking through all the screeshots I made for my timelapse video, I was able to recreate a pretty detailed Post Mortem of the design process, in case anyone is interested. Danger, wall of text ahead!

Preparation

It's always good to set some goals before Ludum Dare, so I started out with a few plans beforehand:

  • Make something with really good mood and create a fitting orchestral soundtrack
  • Move away from GameMaker Studio and learn to make a game with Godot instead.

I expected the engine switch to be quite a big challenge so I did not set any other goals.

After my previous Ludum Dare 43 entry The Omicron Fleet had been quite successful (my first bronze medal and top 10 game!), I was a bit apprehensive because I thought I had to live up to that success. However, I forced myself to focus on the process instead of the outcome because I don't deal with that kind of pressure well.

As always, it is important to make sure in advance that all the tools work and everything is properly set up. I had played around with Godot a few weeks before the competition, so I wouldn't have to start at zero. I also set up Reaper with Miroslav Philharmonic and my MIDI keyboard since I very often run into hardware trouble just when I am ready to go.

I usually do a mental exercise and pick one of the theme finalists to think about the kind of game I would make out of it, but this time I didn't really find one that I was excited about. However, after a lot of people wanted Folklore to win, I thought that would give me a lot of freedom in terms of game mechanics and focus on making something with good atmosphere.

Day 1

7:00

I make it a rule to follow a normal sleep schedule in order to have a rested brain, so I started my day at 7:00 after the theme was already announced for a few hours. Turned out it was Delay the inevitable.

It's usually a good idea to make a list of all the ideas that come to mind and cross out the most obvious ones. This reduces the chance of making something that ten other people have also made. This time, I really struggled at that stage. With the pandemic on the way out, the war in Ukraine currently going on and the effects of climate change on the horizon, I didn't really feel like making a game where the inevitable would be war, death or the downfall of civilization. That would have been way too depressing.

One idea I played around with was a story-driven adventure game of a mouse who lives a peaceful life in a human house when suddenly a fire breaks out so the mouse has to help the human family escape. The inevitable would be the house being completely burned down, so there would be a positive outcome in the story because the family would be safe. I didn't go through with it because I felt intimidated by all the assets I would have to draw and I also didn't feel I could invent a sufficient number of interesting puzzles that went beyond "nibble this rope", "unblock that path", "find a hidden escape route". Being a regular mouse is fairly limiting after all.

So after over two hours of wracking my brain, I did something that I usually try to avoid: Go the path of the least resistance. I've always wanted to do an homage to one of my favorite SHMUPs - Warning Forever - and the concept of playing against a timer that would eventually run out fit the theme quite well. I wasn't going to win any innovation prizes but at least I wouldn't have to worry about learning a new engine and developing interesting game mechanics from scratch.

10:30

All this planning took way longer than usual, so when I finally fired up my PC, I had already lost more than three hours.

Warning Forever is a game where you have to battle increasingly difficult bosses that are made up of randomly assembled parts, which not only makes each battle unique, but allows for organically ramping up the difficulty by adding more and more parts to the boss. I realized that I could represent the boss parts as trees from graph theory.

So I started to draw the building blocks: Center piece, line piece, split piece and gun piece. Now I had to write some code that would enable me to randomly put these parts together. It didn't take long to realize how little I really knew about Godot after all, and I had to constantly look stuff up. I mean, really basic stuff, like how to convert degrees to radians without having to write down the formula all the time?, or how to spawn instances of a node?. This would become a theme for this LD and I think my timelapse video will probably be pretty boring because I spend most of my time in the code editor or googling stuff.

00_parts.png

When I tried to align the pieces and rotate them, I realized that Godot doesn't like rotating around single pixels in pixel-perfect mode, likely because the float pixel coordinates are not centered, but aligned with the edge of a pixel. Apparently I should not use sprites with an uneven size. Fortunately I realized this early on and adapted my sprites accordingly before it would break something later on.

In order to randomly create the boss, I thought about a simple data structure that allowed me to create the definition of the boss without actually having to create actual game elements. This decision would later pay off towards the end of the project. I wrote a simple function to randomize these structures without worrying too much about overlapping parts, I would fix those later (spoiler: I didn't).

01_randomize.gif

15:00

After a small break, I drew a placeholder spaceship, but as these things go, it would end up as the final design. I added player control and shots which again took a lot of googling until I found out how angles work in Godot. One reason everything was taking so long was that I wanted to find "good" solutions for my problems, so once I found something that worked, but seemed a little more hacky than it had any right to be, I kept looking for a potentially better solution. I know a game jam is not the place to write nice code, but I didn't want to start off with a new engine and fall into bad habits right away.

18:00

Now that things were moving along, I had to nail down one of the core concepts of Warning Forever: You could either shoot off a part at the end of the ship, or you could shoot off a whole branch. However, the longer the branch, the more damage you would have to deal in order to get rid of the thing. This should be implemented in a way that would promote damage down the line when an inner block was attacked, so that each individual block would get partially damaged as well. Also shooting off a branch should be slightly faster than shooting off the individual parts one by one to reward the player for this more risky strategy.

This was one of the moments where I was really glad to make this game in Godot, since GameMaker is notorious for its ugly data structure handling and honestly it would have been a nightmare.

19:30

With the damage model now in place, it was time for dinner (I skipped lunch because I had prepared a lot of snacks before the event).

20:30

Next were the boss's attacks. I wanted lasers that fire in the player's direction, a shotgun to fill a larger area with projectiles, a death ray that would cover the whole screen but would be telegraphed so the player could prepare, and heat-seeking missiles that followed the player but could be shot down. I had some more ideas but ended up scrapping them as I didn't want to overscope.

In order for the guns to track the player, I had to have the gun sprites trained on the player's position, but I wanted the gun towers to rotate at different speeds, so I had to change their angles incrementally. This caused me a headache because I introduced a bug that caused a gun to not take the shortest route towards the player, but do a full turn in the opposite direction instead. Angles are weird that way and I was already getting tired. I had spent way too long on this problem, so I decided to postpone this, and think about it with a fresh head the next day.

22:00

I used the remaining time till bedtime by starting on the logic for the different shots. After the first iteration of the laser shots worked now, I was getting a bit frustrated at my slow progress and the open rotation bug, but thought it would be wiser to go to bed, especially since I wanted to keep a proper sleeping schedule for the first day. So I went to bed...

02emfirst/emlaser.png

...and about five minutes after I had laid down, the solution to the rotation bug fell into my head. Funny how the brain works.

Day 2

7:00

The first thing I did when I woke up was to reconsider whether the bug fix in my head would actually work, and I could see no reason why not. I took a shower, which usually helps me gather my thoughts and I started humming a few tunes when I stumbled upon a melody that I could actually use. Knowing how my brain is really bad at remembering music, I recorded the tune with my phone for later use.

7:30

I implemented the bugfix and it really worked. Nice.

I knew that I had a lot on my plate, but I was in a playful mood so I decided to juice up what I had so far. I added a camera, which was surprisingly easy in Godot including smooth motion and handling screen limits. I also stole a few lines of code off the internet to create a camera shake system. Then I played around with Godot's particle generator to create some explosions, which worked really well. In less than an hour I had both systems in place.

9:00

Time for breakfast. I decided that it would be a good idea to write an open points list for my remaining tasks and conservatively estimate how long each step would take. To my delight I would only take about an hour longer than the deadline, so my estimate wasn't too far off from the time I had left.

10:00

Next, I added the missing weapons systems. Death Ray, Shotgun, Rockets. It was amazing seeing the rockets fly around and explode with a satisfying screen shake when I shot them. This was surprisingly smooth sailing. It felt like I was slowly starting to stand on my own two legs with Godot. In order to give the player a better grasp on what was happening I designed different sprites for the different gun systems.

03_rockets.gif

11:30

One core aspect of the game was the timer. I browsed online for some fonts and found some free ones that I really liked, but the license was not 100% clear so I wrote to the author hoping that he would answer before the deadline... And he totally did. Shoutout to http://www.imagex-fonts.com who let me use his fonts for free until the day I take this game to a commercial level (likely never).

12:30

I wanted to get rid of the bland background next. I had made a space game in the past and usually I just use the spraypaint tool and fill a black screen with differently colored pixels. I wanted to do it better this time and found this amazing tutorial by Slynyrd:

04_space.gif

I used his brushes with my old spraypaint technique. The final result is not as artistic as the tutorial example, but it is way better than any of my previous attempts at drawing space.

05_background.png

13:30

So far my game now was almost a complete vertical slice, with the all the mechanics in place, and it was time to go horizontal: Make the game playable from start to finish, which would include the boss approaching from off screen, handling what happens when the boss or the player dies until the game over screen and a retry option.

I needed to implement a state machine for that, and as far as I know there is no such thing baked into Godot, as I assume these things are better written from scratch. Fortunately I had some experience with state machines from my LD37 entry Henry Snackleworth's Weird Day, so it worked fairly well.

This was a pretty intense session where I added a lot of small touches as they became necessary. Player invincibility, text popup that informs the player when time is added or deducted, etc.

17:00

It was now time for something I had been putting off for a while now. Music is usually something that stumps me in Ludum Dare. I start out highly motivated and five minutes later I realize I have no idea what I am actually doing. I used to write simple chiptunes with Bosca Ceoil for Ludum Dare, even if I had set my sights on something more orchestral and epic. Although I had managed to pull off an orchestral score in Ludum Dare before, it has always given me trouble and I have never been happy with the results.

This time though I had a melody ready and I was feeling confident that three years after my last attempt at composing something for orchestra, I would have learned some additional skills that would make this easier, right? Right?

Well, no.

It was the same struggle as every time and instead of approaching this in a structured way, I fell back to the old desperately poking around different instruments and melody lines until something half-presentable came out.

Out of my originally planned two hours for music I took more than three. Good that I had written the schedule, so I realized this and could force myself to stop before sinking even more time into composition.

20:30

In contrast to music, creating the sound effects was smooth sailing. I returned to my tried-and-true method of using Chiptone to create all my sounds. One of these days I would like to try and record my own foley for Ludum Dare, but that would have to be a very small game as the recording would probably take so much time.

22:00

I drew a title and end game screen and decided on a name for the game. A fitting name for an homage to Warning Forever would be Infinite Danger. A quick google search revealed that not only did someone else already have that idea, they also made a Warning Forever clone with that name. Okay, so I tried a few alternatives and landed on the current name of Eternal Crisis.

22:30

Now that I had everything important out of the way and still more than four hours to go, I started juicing the crap out of the game. I improved the graphics, fine-tuned parts of the music, fiddled with the particle generators to make the explosions more impressive, added a missile exhaust particle generator (probably the single thing I am most happy with in this game because it turned out so pretty).

In the middle of all that I realized that I still didn't have a good grasp on level progress. All the bosses were completely random, but I wanted them to become progressively harder. But there was a problem caused by the random nature of generating the boss: Whenever an arm did not branch off often enough due to bad RNG, it was limiting the number of guns the boss could carry. So even if I wanted to have a very hard boss, this limitation could by chance force it to only have a few guns attached.

Fortunately, I had built the definition structure I mentioned earlier, that allowed me to define what a boss would look like without actually having to create all the game nodes. So my solution was to set the number of guns as a target and generate 100 different definitions, then pick the one that came closest to the target number. This turned out to be a pretty good way to control the size and difficulty of the boss.

Now the deadline had approached and I decided to better quit before adding any last-minute bugs and started packing up.

I swear, this is the second time I submitted a game with a misremembered name and now the link to the game page shows "endless-crisis" instead of "eternal-crisis". Crap.

06_game.gif

Summary

The Good

  • I made my first Godot game. I was totally won over by the experience. This is going to be my new go-to game engine. Goodbye GameMaker Studio, thank you for all the good memories, but I'm not coming back.
  • I think I made my most visually polished LD game so far
  • I am very happy with how my time management went this time. I finished the complete game with enough time left for fine-tuning and polishing and didn't fall into a last-minute panic.

The Unfortunate

  • I wanted to make an atmospheric game, but I wasn't able to fit this into the theme, so instead I ended up copying an existing game idea with little to no innovation
  • I wanted to compose an emotional orchestral soundtrack. Since I ended up making an action game that wouldn't have worked and I am not super happy with how the music fits the game feel.
  • I struggled with composing again. I think I need more practice writing music for orchestra before I attempt this again, as I would like to become more fluent in the process. It's a fascinating field, but I have to learn this outside of the tight schedule of LD I think.

The Bottom Line

I'm really happy with the way this game turned out. There are imperfections, but for a LD Compo game I think it turned out pretty well. It's not as good as The Omicron Fleet, but I still like it a lot. I feel like I made a good transition to Godot and hope that I can be more efficient next time I use it. For this learning experience alone, all the crunch was worth it.

So, congratulations for making it this far, thanks for reading this novel.

If you want to give the game a go, please be my guest: https://ldjam.com/events/ludum-dare/50/endless-crisis

Rate my game please

Hello there, I am planning another session of playing/rating games tonight. It has been very interesting and fun. If anybody would like to play and rate my game, I can return the favor. I appreciate it and I hope you like it. https://ldjam.com/events/ludum-dare/50/fly-and-dive ptue6U.png

The music of "The Assessment"

First of all, thank you so much to everyone who has played The Assessment, and for all the kind words about the game and my music! :heart:

I wasn't supposed to participate this LD at all. Just a week before, I said no. I was worrying a lot. The last time I made a soundtrack for LD I made Blackout. I just didn't think I could top it. I thought that score was the peak of my career. I still do. But I couldn't let my team down, and they didn't have a replacement, so I sort of half-agreed to it. But then came Friday and I was asked to work late on Saturday, since my job requires people working weekends. (Just for context, I live in Sweden so the jam started at 3 am on Saturday.) So now I only had Sunday and Monday left. But I had already planned a day trip out of town on Monday, which I couldn't cancel. Which means I now only had Sunday and a few leftover hours on Monday to do everything.

Anyway, I did what I could with the time I had and am quite pleased with most of it. Only thing I'm not happy with is the cutscene music, which was rushed before submission, as well as the win fanfare which was just a placeholder.

When I started composing I didn't really have a clear vision, I just thought "I'll make some whacky music with some cheap-sounding sounds," and I did a few tracks in that style. I knew we had to have a win and a lose fanfare, so I thought "wouldn't it be funny if they were overly dramatic?" I did the lose fanfare first, which was based on an unused main theme I composed quickly before work on Friday. There's no recording of it so I can't share it, sorry. I was pretty happy with it, and it made the game more insane. As I said before, the win fanfare is basically just a work in progress. I never got around to finish it because other stuff had to be done which had higher priority.

Last pieces of the puzzle were the title theme and the cutscene underscore which were made in the last 4 hours before submission. I originally had planned to do more sound effects, especially for the cutscene, but alas, there was no time.

All in all, it was a fun LD, and I'm glad I participated. I put together a short video featuring the very first music track I did and the second-to-last one. Enjoy, and thanks for reading!

https://youtu.be/ITdP8hQT8kY

Teaser of a new zombie

And he doesn't speak about something strange...

https://ldjam.com/events/ludum-dare/50/1-man-6-bullets

unknown111.png

Why not try my short horror experience: Night Frights?

Have 10 minutes to spare? You could try my entry for this LD and drop some ratings and feedback, it would be greatly appreciated! If you want, you can also drop your games and I'll play them when I can. captura1.png

Vampire Survivor with Slimes

You like Vampire Survivors but you miss the Slimes in their game? No worries Slime Survivor got you covered.

Look... this could be you right now!

werbung.png

*Check it out here: *

https://ldjam.com/events/ludum-dare/50/slime-survivor

DOWN the DUNGEON

What will you find down the hole in the floor? Only one way to find out!

tutor2.gif

Go check DOWN the DUNGEON: https://ldjam.com/events/ludum-dare/50/down-the-dungeon__

This wall art is its own scene's lightmap :D

Capture.PNG

Modelled the picture frame for our game and just searched through the project files last minute for anything to put in there. Well happy with that, ha! Tempted to get a real print

Playing+Rating

Give-them-to-me.jpg

Hi everyone!

As usual, I'm playing and rating games.

So if you like please, write a comment below and I will play your game :) I prefer games with less than 20 ranting, but I do not mind, if you have more.

I already have 20+ ranting, so if you want to play my game - thank you, but if you have limited time, then please, go to the Danger Zone instead, here:

https://ldjam.com/games/danger/all

The games that are out there still need more ranting to get to final scoring.

Last time as I was able to rate 255 games. This time the plan is way more ambitious, as you can see in the little animation I made!

image.gif

Gogo will die tonight, unless you save him.

The timer for Gogo is running out and he will die tonight if no one saves him.

savegogo.png

I've been playing a lot of games, but can't get my Smart Balance up to a point where new people are coming in to play the game, it seems to always be decreasing even though I have a 2:1 ratings ratio.

Please help me keep Gogo alive:

https://ldjam.com/events/ludum-dare/50/save-gogo

Thank you :heart:

Getting started with cutscenes in Unity

People seem to be enjoying the intro cutscene in The Ultimate Martian Roulette. Figured I could point you to a couple of resources that helped me wrap my head around the topic, in case that's something you'd be interested in for your projects.

4bbe3.png

We used the tools provided out-of-the-box by Unity, as packages you have to install in the project - Cinemachine and Timeline. The former dealing with camerawork, and the latter - allowing you to record animations and organize them in sequences.

Here are two links to get you started with those features (I think the previews are broken, so just click the icons in the bottom right): - Using Cinemachine: Track & Dolly - part 2 of the Cinemachine tutorial, most relevant for our case: link - Using Timeline (playlist) - to get the hang of the basic usage of the tool: link

With that out of the way, the setup for the cutscene is rather simple: - it's 4 dolly tracks, defining paths for the camera, - and a timeline animating the camera position on each of the tracks, and switching between different shots.

It takes a while to get comfortable with the tools but ultimately - it's not really difficult to get them to work, and then you're free to spend hours on tweaking camera positions and timings :sweat_smile:

Here are a couple of screenshots of the dolly tracks we ended up with: 01.png 02.png 03.png 04.png

And the timeline itself - the top track for switching between shots, and 4 tracks animating dolly positions. 05.png

That's pretty much it, I hope it'll serve you as a starting point. Happy directing!

As a bonus, here's my go-to video when it comes to implementing subtitles, be sure to check it out if that's something you're doing: link

The Pit is here!

ThePit_03.gif Piggy, piggy, into the Pit!
Don't you just love immoral wizards?
https://ldjam.com/events/ludum-dare/50/the-pit-2

Giraffes

baby-giraffe-735x525.jpg

Did this baby giraffe influence how you felt in ANY way, even if it's just a little bit? And do you like cheesy, witty jokes? Have you been craving a fully 2bit, cute, story-rich, 2d platformer about a baby giraffe going on an adventure to transcend space and time, with a banger of a famitracker chiptune soundtrack and a rhythm minigame as well?

You're not going to believe this!

I have THE game for you.

Giraffe o'Clock

Thank you

Giraffes <3

Kiwis Can't Fly

We are happy to report that we came out of LD50 successfully with a cute and peaceful game, Kiwis Can't Fly.

It's a short musical adventure about a flightless bird who loves the sky.

title.gif

wide.gif

You can play and rate it here: https://ldjam.com/events/ludum-dare/50/kiwis-cant-fly

Dev/Ludum Dare Entry Playing Hybrid Stream

Seems requests to play games have settle down, so I'm doing a hybrid stream where I do game dev but play some LD entries if new people come by and want their game played. If I haven't played your game yet, swing by, and I'll give it a go! https://twitch.tv/jitspoe

What was the hardest part of the jam for you?

fixed gent walk spritesheet.png

This walk cycle was the most difficult part of making our game SICKLY VICTORIAN BOY. I usually like animating, but animating a walk cycle in such a short time span with so much environmental and item art to do was insane! I had to completely redo it because the original I drew was too fast versus the actual movement speed of the character in game. Was there a part you had to redo in your game during the jam? Or something you got stuck on?

compressed sickly boy.gif

T. Hanks for the 35 ratings on AIRTIME! + how the flappy man flaps

Hi cool people!

It's time for the obligotory "thank you for rating our game!". But I want to give you more (info), so how about how we were able to make our regular man a FLAPPY man (i.e. traditional/physics-based animation hybrid?)

Well through a few neat tricks actually! With a rigged model, Unity's configurable joints, rigidbodies, colliders, and the secret sauce of a secondary (hidden) animated rigged model that the ragdoll model copies, you can turn those boring hand-crafted animations into physics-based acrobatics! This vid I found the simplest at explaining how to do this: https://www.youtube.com/watch?v=-pX-PobRLzk.

Seriously, try this trick out on your own games, its super fun. Plus, the animations have the adverse effect of effecting your movement, which may lead to some interesting things!

Anyway, thanks again for playing AIRTIME! Please tell your friends, your kids, your grandma to go try out and rate AIRTIME! as well! https://ldjam.com/events/ludum-dare/50/airtime

..........................................................................................................................

The inspiration for flappy man's flapping.

||

\/

maxresdefault.jpg

Analysis, Paralysis... Crystalysis?

2.jpg

I'd love to share my entry to the LD50 Jam, "Crystalysis." It's a 3D isometric view voxel-esque glow-particle run and smash game. :) If you're interested, please let me know what you think!! I'll happily play, rate, and comment on anyone's game that does the same for me. I appreciate it!!

Crystalysis-GIF-1.gif

Please play and rate HERE and I'll return the favor!

Looking for Artists!

Our game allows you to draw pictures and submit them to the server for other players to view. You can also draw on top of other players' art. We can always use more art so if you or anyone you know likes to draw, check out our game!

https://ldjam.com/events/ludum-dare/50/different-strokes

4b5a1.png 4ad05.gif

What is V.E.X.?

Who are these scientists? Why are they observing you? And what do they want you to do?

thumbnail_sq.png

Find out in the VortExperience.

https://ldjam.com/events/ludum-dare/50/the-vortexperience

The story behind the Leaderboard

Hey, thanks everyone for playing our game and for your comments! Now, I just wanted to share with you the story behind our Leaderboard - The why it was a a good choice and yet, why I would not recommend it.

POSTMAN.png

The leaderboard was never supposed to be part of this Game Jam. I was just feeling tired on Sunday at 1:00 AM, so I started to play this Compo game, and for a compo, it was still a pretty solid entry with minimalist visuals, the bare minimum of inputs - basically the kind of game that you could easily play on a smartphone.

For a full 10 minutes, I played the game and just COULDN'T STOP. Some guy had posted his score on the game page and all I wanted was to beat it. That's when I realized that, even if our game turns out ok, people will still play it again just to beat someone, or be the best at it. Then came the idea of adding the leaderboard.

Now, that's where I must be honest and say that, even though it was a good move, it was a risky one. The leaderboard didn't make it into the game until 5 minutes before release, and even then, it was an insanely stressful time. Thing is, it was a big move and if it hadn't worked out, I would've wasted a whole day for nothing. This is why, before actually doing the feature, I had to consider most of what it implied:

  • Finding a free hosting service (I guess that was an added challenge cuz I could've payed for it),
    • Back4app
  • Hosting the leaderboard
  • Doing the requests
  • Making the UI
  • Doing async calls, which meant adding some loading screen in the UI
  • Finding some way to remember the user without needing to sign-up / sign-in
  • Actually ADD a scoring system

It finally took 7 hours of nightmare to make it barely work, and 20 for the full integration. It could've taken less time, but the backend I used provided an SDK for Unity (Parse) that looked really easy to implement. I mean, look at that: c# ParseObject gameScore = new ParseObject("GameScore"); gameScore["score"] = 1337; gameScore["playerName"] = "Sean Plott"; Task saveTask = gameScore.SaveAsync();

Turned out that the it had been deprecated for 4-6 years and wouldn't compile in Unity because of some code in the DLLs that already existed in Unity. Luckily, they provided the actually source code, so I went in Visual Studio, removed the broken bit, recompiled the DLLs and VOILA. It worked.... ... ... In the Editor.

I was smart enough to build the project and run it in WebGL, which crashed immediately. That's when I remembered that WebGL is not a fan of Threads, and the DLLs were using TasksDon't use Tasks in WebGL kids. ... I ended throwing the SDK out and do simple HTTP request calls to the database using UnityWebRequest (since it's single-thread). The database documentation on how to use Web Request was scarce, but it provided a way to use cURL, which was.. kind of alright to understand...

console curl -X GET \ -H "X-Parse-Application-Id: 8ffbed6523c84319a7ae17979fbea93b" \ -H "X-Parse-REST-API-Key: 0b34122ce4fd4997b5993cc447cbfd1f" \ -G \ --data-urlencode 'where={"title": "My post title", "likes": { "$gt": 100 }}' \ https://parseapi.back4app.com/classes/Post I mean.. not great, but... alright. After all of the painful debugging and integrating, I finally had something that worked. I was really proud of it, the UI was done, I could post data and it would show up in the leaderboard... but when it was time to actually use it, we realized something...

No one did the scoring system.

It's one hour before release. We have to implement the tutorial scene, the scoring system, hook it up with leaderboard, show some UI to display the score, build, distribute, test-test-test and hope everything holds. It's pretty easy to guess that we did not do it all.

So this is the story, or part of it. I guess I learned new things, but 21 hours before deadline is not the time to implement a new massive feature!

My own constellations

Hey guys, for this game I made a mandala of satellites. The art is gorgeous, but what mandala will you make?

https://ldjam.com/events/ludum-dare/50/aster-defense

aster defense.png

https://ldjam.com/events/ludum-dare/50/aster-defense

Last Moment

Ball.png LLama.png

In Last Moment, the world is going to end in 1 minute.

But you can make time pass slower by being happy :)

So just be happy and delay the world ending


If you're interested, I also made a Devlog:

https://youtu.be/KWXJ781nJbs

DLAY: Sheep your way through sacrifice

DLAY.gif

Gamepad and Keyboard Supported

Play and Rate: https://ldjam.com/events/ludum-dare/50/dlays-buffet

Story

You are the Shaman of the Island Kalani.

DLAY, The Inevitable, is almost waking up from his sleep. His hunger has no match, no matter how much you feed it. The time to face him and release the island from this curse is near.

Grab and throw sacrifices at him to defeat him and avoid his attacks.

One More Song in HTML5!

Our goofy little point and click adventure is now playable directly in a browser! Proof: LD50_Capture03.PNG

Check it out here!

I tried it on my phone, for science, as it's playable with mouse clicks only, but it doesn't seem to work with touch :sob: ! Let us know if you have more luck, or if you know why Unity doesn't consider touch as a left click anymore!

Wormageddon

Hey everyone, thanks for all the kind and thoughtful comments on our submission! Much of the feedback we have received has been very insightful as to which areas of the game might be improved.

4.gif 1.gif ezgif.com-gif-maker (1).gif

We also added proper support for gamepads, check it out!

It's great to see people posting their high scores - currently @itsboats holds the record with a score of 5138!

Virus Bash

Play & Rate: https://ldjam.com/events/ludum-dare/50/virus-bash

49826.png

49827.png

How many Researchers can YOU save?

So far we've had @kuviman and @moe9times get the best high score of saving 12 Researchers, with @PomoTheDog close behind on 11.

Whilst you need to save at least 5 researchers to pilot the Rocket, the real challenge of the game is to continue to save Researchers as long as you can, delaying Mother Vine for as long as possible!

Some top tips

  • The game ends when mother vine reaches the lab and rocket. Delaying her inevitable approach is key. lars1.png

  • Researchers only board the rocket if they have taken a pre-flight shot. These are created when you harvest crops - so keep watering and harvesting the crops! lars2.png

  • Finally, don't cut it too close! In my Let's Play, I literally got caught by Mother Vine at the exact moment I was launching the Rocket :( https://youtu.be/8EnHJwLnJ58

Got a higher score? Leave a screenshot in the comments on the game page!

Have you played Post Solis?

When we decided to participate in Ludum Dare (not an easy decision for a team of 7 people!), we wanted to make something nice, simple and fun. In short, a standard jam game.

But already at the brainstorming stage, things went wrong. :)

M-m-m, drones. Launch one! ps2.jpg

We decided to create:

  1. An economic strategy game.
  2. About a planet with very little sun, and the light spot from it is constantly shifting.
  3. In addition, the buildings outside the spot of light are being destroyed.
  4. Controlled drones fly around for resources, scouting, and just around the base.
  5. With upgrades, rich lore and the ability to complete the game to the end (2 endings!).

Wanna try? :) ps1.jpg

You know, it looks like we made it. Yes, with balance flaws and a high entry threshold (a post-jam update is on the way!). We didn't have time to implement the tutorial missions, but we made up for it with the in-game tutorial.

Reading is an option, gameplay is the king! ps3.jpg

Check out the Post Solis page - we'd love to get more feedback on the game to make it even better, clearer and more interesting.

the color of the main tree is a unity lighting bug

it's not supposed to be that bright. see the flicker when i start/stop playing the scene?

you can see what color it's supposed to be when i duplicate it. i can't make any other tree look like it.

i've since updated unity and the bug went away and i can't get the tree's color back :(

https://youtu.be/Qf9wasvPnr4

https://ldjam.com/events/ludum-dare/50/taoreta-mura

Whare are your favorite games ?

Have you seen any gems among the games that you played ? In any category, can be graphics, mood, gameplay ?

I think my favorite for now is https://ldjam.com/events/ludum-dare/50/pass-the-torch a bit struggling to play but definitely a strong contender in the mood category.

Will you take up the challenge? Come beat our game SHOAL (100k+ score)

https://ldjam.com/events/ludum-dare/50/shoal

Hi there! When we released our game, we noticed after few tries an average 15k score. Some players started to try hard a bit and they reached 25-35k.

But after a while the players were able to play endlessly. It is an infinite scrolling game, and the maximum speed is definitely controllable. I personally consider you have beaten the game if you score more than 100k points. Few players has reached this step. Will you take up the challenge?

Here is @ausstein high score.

4d36c.png

How we delayed the inevitable NPE with Scriptable Objects (Unity devlog)

After several game jam coming across gameObject reference error, it was time to do something about it

LD50-ScriptableObjects-NPE.png


With a few developers and integrators working on the same project, every game jam we encounter a few recurring issues:
- Someone adds a new feature with new prefab(s) in the scene. Other scenes lack the prefab, and game is broken - A gameObject that references another gameObject from the scene loses the reference: the script breaks

One root cause links them all: a script (MonoBehaviour) references an external game object from the scene.
Maybe this is a SerializeField that we drag and dropped. Or a FindGameObjectsWithTag or Find to fetch an object. But at some point, the reference is used, and there is nothing behind.

Those habit we had ultimately fails to achieve one key concept: making a modular software, where systems do not directly depend on each other.


Before the jam, I was looking for some pattern we could use when creating our Unity game.
Thankfully I discovered that talk from Ryan Hipple and his article, which made me realize it was possible to build your game around Scriptable Objects.
If you run across the same issues as we did on Unity, I highly suggest you give a look at the article (and the video if you have the time).

What we ended up with is a game where every interaction between our prefabs was made using Scriptable Objects (SO). Suddenly all our prefabs could live independently. When we need to interact between different gameObjects, we know we have to rely on SO.
- Variables that are used by multiple prefabs are now stored in a SO that lives outside the scene and that will never raise a Null Reference Exception.
- Function calls between multiple prefabs rely on SO as well, using some generic event SO that can be emitted or listened to (using an observer pattern)

Here is the kind of design (or, should I say, absence of design) we used before:
LD50-ScriptableObjects-OldDesign.png
And now, making sure prefabs interact only through SO, it is closer to this:
LD50-ScriptableObjects-NewDesign.png


We tried to apply that architecture this game jam for the first time, and we are quite satisfied with it. We still have improvements to make on the generic classes we use as a basis for our variables and events, but it definitely helped us achieve a stabler game this time.
I hope this can help some other developers!

Lastly, we would be grateful if you could check out our game Sol Invictus. See you next jam!
LD50-ScriptableObjects-SolInvictus.jpeg

3D Design for dummies

Nobody in our team was very skilled with any kind of 3D art, so I took it upon myself to make the models this LD. (Not to imply that I'm skilled in any kind of 3D art in the least either)

Luckily, MagicaVoxel made it easy to create colored 3D models as if you were designing a thing in Minecraft!

Design.gif

I still can't claim anything is "beautiful" per sé, but at least everything is recognisable as the object it's supposed to represent.

Such as; Lamp: ssLamp.png

and Watering Can: gieterSS.png

After designing way too many models for the "co-workers" in our game, I decided it would be a shame not to use all of them, and thus the randomiser and character creator in Un-rooted was born.

I would highly reccomend MagicaVoxel (It's free!) to anyone wanting to dip their toes into simple 3D models! Exporting them to .obj files makes them usable in Unity without any hassle, but you can export 2D sprites for isometric use just as well!

Sand Castle

For my first entry in the jam compo, I made this sand castle game. Because the tide is rising, the waves will of course destroy the castle, but Justin must fight for it!

sandcastle screenshot.png

How to play : * Space bar to pass tutorial steps * Arrows to move * Hold X to build or evolve a tower * Hold W to build a trench * Keep the flag value of your castle above 5

Play : https://sdelay.itch.io/sandcastle and Rate : https://ldjam.com/events/ludum-dare/50/sandcastle

Thank you for playing :slight_smile:

Thanks for all the Feedback

Since the start of the Jam there have been hundreds of laps completed on our tracks and even more cars crashed, destroyed and exploded!

ApplicationFrameHost_4kdwE8emPe.png

The feedback we have received so far has been absolutely amazing!

keep it coming ;)

All three of us are super grateful for you all playing our game and giving us points for improvement and words of encouragement.

Most of the team is really new to game dev in general with only myself making things regularly. AutoGibbon participated in LD48 with me and this is Craig's first game that he has ever tried to make and his first time even opening Unity!

We all grew up playing racing games and have a great interest in making things go vroom and boom, so we have decided to continue development on this for a while and see where it goes.

Which feature would you like to see first?

  • Better driving
  • Better tracks
  • Better AI
  • More destruction
  • Championship/League mode
  • More content (cars, tracks)

We plan to start with the obvious performance increases and bug fixes closer to the Jam ending as we want to take time to play all the other awesome Jam games - feel free to link your game below for us to play

If you haven't played Give it a spin!

ApplicationFrameHost_1tmuWKqTYe.png

dev notes

note 1: board, ideas

Miro_F8S2uJtlhA.png fact: the idea of reptilians running inside the earth-wheel from a meteorite was my first ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ toy.png ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

https://ldjam.com/events/ludum-dare/50/5-more-times

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Miro_PA4CObc0Qk.png our first story timeline looks like this