LD 44 April 26–29, 2019

Come play Enemy Of The State!

-- cover3.png

ezgif.com-optimize (1).gif

The capitalist deal was never worth it! Or was it? https://ldjam.com/events/ludum-dare/44/enemy-of-the-state

Self Surgeon Post-Mortem

surgeon-cover.png

Hey y'all! I finally managed to finish writing a post-mortem for Self Surgeon. I decided to write it in Notion, just like all my notes for the game. Read the post-mortem here and let me know what you think in the comments:

https://www.notion.so/dzejky/Self-Surgeon-Post-Mortem-Public-3486c9da66574ef5b76419b316037799

Making of Work Life Balance

Work Life Balance is a work simulator, your spend your entire life performing menial tasks to earn profits for the corporation.

I've written a postmortem about the development process and decisions I made along the way, including the origins of the infamous sound effects and some small strategy notes.

My own highest score is 6 minutes 28 seconds for $3,624.00. Feel free to have a read or just have a play and let me know if you can beat that :)

Devlog: https://dignz.itch.io/work-life-balance/devlog/79560/making-of-work-life-balance

LD submission page: https://ldjam.com/events/ludum-dare/44/work-life-balance

EDIT Sorry I didn't publish the devlog on itch! Try again :)

Video summary of our LD44 experience making Pew Pew Crew!

My friend and collaborator Jonas Tyroller made a summary video of our experience and the takeaways from participating in this Ludum Dare. It's pretty cool, check it out!

https://youtu.be/uPs2cC299pc

PewPewCrewLogo.png

LudumemDare/em44em2019-04-30/em02-22-16-28.png

LD48.Paylife (Compo in 24h !)

ingame.png

https://ldjam.com/events/ludum-dare/44/ld48-paylife

Welcome ! Paylife (Ludum Dare 44 Theme: Your life is currency) is built in plain HTML5/JavaScript with a framework I am developping.

I challenged myself creating this game in only 24h instead of the regular 48h !

Rules :

  • it is a mouse-only game
  • you have 60s to break your best score

  • clicking on cards cost life

  • cards increase life per second releasing hearts
  • catch hearts to gain life

  • when an heart flies away, you lose 1 life

I'd like to :

  • add sfx

This was my second Game Jam, so I hope you'll like this game. Thank you for your support.

https://ldjam.com/events/ludum-dare/44/ld48-paylife

My future self will thank me for this

So I finally did something useful that I've been planning for ages. Will make the life on future game jams so much more :ok_hand:

I've had this AudioManager for a while that takes in all the audio clips and then with one line of code I can play a sound effect with some pitch variation at specified position. For each sound effect, I usually use around 2-4 different clips with different volume balance for each so tinkering with them has been a pain because the process of change code, build, find the sound source, test, rinse and repeat until good.

sd.png

But now I made this editor window to go with it. It lists all the clips in the AudioManager, you can select some of them, tinker with the volume and play them right then and there. And then it spits out the code needed to play the combined effect. Will make designing sound effects so much smoother.

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

public class SoundDesigner : EditorWindow { AudioManager am; Vector2 listScroll; List sounds = new List(); List soundVolumes = new List(); string output;

[MenuItem("Window/SoundDesigner")]
public static void ShowWindow()
{
    EditorWindow.GetWindow(typeof(SoundDesigner));
}

public void FindAudioManager()
{
    // never do this crap in an actual game
    am = GameObject.Find("AudioManager").GetComponent<AudioManager>();
}

void OnGUI()
{
    EditorGUILayout.BeginHorizontal();

    if (am)
    {
        listScroll = GUILayout.BeginScrollView(listScroll);
        EditorGUILayout.Space();

        for (int i = 0; i < am.effects.Length; i++)
        {
            GUILayout.BeginHorizontal();
            GUILayout.Label(am.effects[i].name, EditorStyles.boldLabel, GUILayout.MaxWidth(150.0f));
            if(GUILayout.Button("Play", GUILayout.MaxWidth(70.0f)))
            {
                Play(i);
            }
            if (GUILayout.Button("Add", GUILayout.MaxWidth(70.0f)))
            {
                sounds.Add(i);
                soundVolumes.Add(1f);
            }
            GUILayout.EndHorizontal();
        }

        EditorGUILayout.Space();
        GUILayout.EndScrollView();
    }
    else
    {
        if (GUILayout.Button("Find AudioManager"))
        {
            FindAudioManager();
        }
    }

    if (sounds.Count > 0)
    {
        EditorGUILayout.BeginVertical();
        EditorGUILayout.Space();

        output = "";

        for (int i = 0; i < sounds.Count; i++)
        {
            var sb = sounds[i];
            GUILayout.BeginHorizontal();
            GUILayout.Label(am.effects[sounds[i]].name, EditorStyles.boldLabel, GUILayout.MaxWidth(150.0f));
            soundVolumes[i] = EditorGUILayout.Slider("", soundVolumes[i], 0f, 2f);
            if (GUILayout.Button("Play", GUILayout.MaxWidth(70.0f)))
            {
                Play(sounds[i]);
            }
            if (GUILayout.Button("Remove", GUILayout.MaxWidth(70.0f)))
            {
                sounds.RemoveAt(i);
                soundVolumes.RemoveAt(i);
            }
            GUILayout.EndHorizontal();

            var pars = sounds[i] + ", transform.position, " + soundVolumes[i];
            output += "AudioManager.Instance.PlayEffectAt(" + pars + "f);

"; }

        EditorGUILayout.Space();

        if(EditorApplication.isPlaying)
        {
            if (GUILayout.Button("Play in play mode", GUILayout.MaxHeight(50f)))
            {
                for (int i = 0; i < sounds.Count; i++)
                {
                    am.PlayEffectAt(sounds[i], Vector3.zero, soundVolumes[i]);
                }
            }
        }
        else
        {
            if (GUILayout.Button("Play", GUILayout.MaxHeight(50f)))
            {
                for (int i = 0; i < sounds.Count; i++)
                {
                    Play(sounds[i]);
                }
            }
        }

        EditorGUILayout.Space();
        GUILayout.TextArea(output, GUILayout.MinHeight(100f));
        EditorGUILayout.Space();

        if (GUILayout.Button("Clear"))
        {
            sounds.Clear();
            soundVolumes.Clear();
        }

        EditorGUILayout.EndVertical();
    }

    EditorGUILayout.BeginHorizontal();
}

void Play(int i)
{
    var path = "Assets/Sounds/" + am.effects[i].name + ".wav";
    var c = (AudioClip)EditorGUIUtility.Load(path);
    PlayClip(c);
}

public static void PlayClip(AudioClip clip)
{
    Assembly unityEditorAssembly = typeof(AudioImporter).Assembly;
    Type audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil");
    MethodInfo method = audioUtilClass.GetMethod(
        "PlayClip",
        BindingFlags.Static | BindingFlags.Public,
        null,
        new System.Type[] {
     typeof(AudioClip)
    },
    null
    );
    method.Invoke(
        null,
        new object[] {
     clip
    }
    );
}

} ```

Cold Dream: Postmortem

My entry, Cold Dream, is a survival solitaire game. You've been exiled to Makemake and left to look after yourself. You have four vital resources: food, water, oxygen and heat, and you have to make sure you won't run out of any at the end of each turn. To make matters worse, every turn a random crisis occurs, that will reduce your resources at the end of the turn.

You have a bunch of other resources to work with, and 8 cards, dealt from a deck, that provide you with options for staying alive. Some cards let you build equipment that you can keep, giving you more options in future turns.

cd_screenshot.png

What went well

  • Doing Ludum Dare for the first time in years. I used to take part in LD regularly, but eventually my lack of energy got the better of me, and the last time I competed was in LD37 (Dec 2016). I've really missed it though. So as soon as the situation afforded it, I took the chance to take part again. And I'm really happy I did.
  • Pushing my personal envelope. Of my 12 previous Ludum Dare entries, 11 were puzzle games and 1 was an action game. At one point a couple of my puzzle games got good ratings and I sort of developed a fear of straying from the formula. It's been a slow realisation that the ratings aren't as important as just bloody doing the competition, and stretching myself. So I'm glad that I made a card game, something really different from what I normally do.

What didn't go as badly as I feared

  • Doing things in the wrong order. I normally try to make sure I have a fun, balanced game before I get on to matters that I consider "polish" (things like menus, getting the graphics looking good, etc.) But for this card game, there was a lot of work to do on the interface before I could playtest it at all. And interface work takes a lot of effort for stuff that people barely notice (but would notice if it was missing) - e.g., dealing the cards out one at a time, tweening the card position when you click to look closer at it, etc. As a result, the game only really came together in the last 6 hours or so of the competition. So there was a worry that the gameplay just "wouldn't work". But I'm glad to say that on the whole it doesn't work too badly. It is not as perfectly balanced as I would like, but the gameplay works and my goal was accomplished.

What went badly

  • Being rusty. Having not taken part for a couple of years, I was much slower at doing some things (mainly DOM manipulation code) than I used to be. Making a small practice game some time in the weeks beforehand probably would have helped with this.
  • SVG. I normally use canvas graphics but decided to use SVG this time. The whole web page consists of one big SVG element, and all the code jams stuff into it. This is good for stuff like buttons. But it leads to lots of browser compatibility problems. In particular, the game doesn't look right at all on the Edge browser. Also, I tried to use an asset that was an svg file with an embedded png. This worked fine in Firefox, but Chrome didn't allow it. So I had to scratch that. So what would I do in future? Probably canvas. A mixture of canvas and SVG could work too, if I was sure that the SVG stuff I use is safe to use in most browsers.
  • Lack of sleep. Every time I do this, I tell myself to set the scope small, and get lots of sleep. Every time, it doesn't work out. I will let you know when I figure out the solution to this.

Lets celebrate!

Whoo hooo! 100 ratings!

Untitled.png

Thank you everyone who played my game, Enemy Of The State! I sincerely thank every single on of you, especially those who took the time to carefully give me feedback.

121.png

Heres one for all of ya'll, and I wish all of you guys a great LD, both for the current one and the ones of the future.

As for the game, well, here it is: https://ldjam.com/events/ludum-dare/44/enemy-of-the-state

My first Game!

monsterSlayer Cover Screen.PNG

https://ldjam.com/events/ludum-dare/44/monster-slayer

My first public game. Please have a look and FEEDBACK.:smile:

MeltUP Postmortem

ldBanner.png  

I wrote a post on my blog detailing all the ways I screwed up my game, plus some bonus griping about the theme and theme selection in general! Read it here. There's no comment section, so feel free to leave 'em below.

Working on your suggestions

Everybody who tested and commented once again thank you, your suggestions are definitely helpful. And because this is my first ld game that i really think have some more potential i will work on a post jam version.

Partly because i do like the gameplay itself but also because i really liked working with Godot and i think if i keep working on this game i will learn a lot more. Also i can challenge myself a bit with the animations and art as i decided i would use a limited palette for my art.

For now i am trying to make what i have more pretty and of course remove the bugs. But some examples

water.gif

mouse.gif

Experimenting with new software

I've found myself using a lot of new software recently, and I've been blown away by the quality of a lot of freeware. Here's a short list of some incredibly powerful software, that I strongly recommend trying.

Krita is amazing

Not sponsored or anything, simply an amazing resource that I stumbled into. It's an image editing software, similar to photoshop, but it's completely free. Easily the most powerfull free image editor that I have found. It has a bunch of incredible features, and it really seems like an all-round software, with animation and pixel art modes (from what I've read, I'm still experimenting).

I spent an hour mucking around in that, and whilst I am certainly no artist, I managed to pull together this:

Krita Test.png

Whilst what I've made is certainly nothing incredible, this is my first time ever creating a scene like this, and it's o.k for something made in a bit over an hour. I'd seriously recommend checking out this software, it seems to do everything that photoshop would, all free, and even open source, which is great. Krita is a true photoshop rival, and this software's free.

File Converter is also amazing

Whilst it isn't as creatively named, it's a free converter, made by some friendly people on itch. I've seen far too many horrific premium conversion services, and this one's nicer in every way. Best part is, once it's installed, you just right click on a file to convert it. I've tested it with gifs, and quality is much better than the free online conversions.

Has all the major conversion types, and is pretty quick, so there's really no downside; and that's great!

Trello is amazing too

This Ludum Dare, I experimented with using Trello, and wow was it a help! It truly is the perfect project management tool. You create a bunch of lists, checklists and ideas, and it just holds them all in a nice, usable way. Fits everything project management into one, free website. You do need to sign up, and there's still the freemium approach of 'pay to get everything', but what you get for free is all you really need.

Trello.PNG

That's all the useful software that I've been using recently. Is there anything else that you'd add to this list? These are all free resources, so something like Aesprite doesn't make it here (although Krita has a pixel art mode too, not sure how effective that is).

Also, a hot shoutout to my game, Sigillis, cos why not? In it, you draw things on the screen to cast spells. The game uses a neat algorithm that I made to figure out what you drew, then casts the spell. It's surprisingly fun, and I'm having fun continuing its development. I'd hoped to release a patch today, but was way too busy to find a second of time till now. There's also a devlog coming that will talk about all the techy, algorithm stuff, stay tuned for that (maybe follow my LD account?).

One issue with the file converter mentioned above is that there isn't any control over the compression of a gif, other than low quality or high quality. Unfortunately, I need small file sizes to post gifs here, so one from an online converter will have to do...

Freeze Spell Demo.gif

The game is available on the web for your own convenience here and then perhaps rate and comment here.

Thank you to everyone who's been leaving feedback on my work, much appreciated! If you have any favourite software, then please do share it with us, and I'll compile a huge list of useful LD (and general gamedev) tech.

Cheers, JUSTCAMH :smiley:

L.Y.L.A. - I need Feedback for an improved version!

So the first round of feedback was great, thanks to everyone who has played and rated the game so far. The comments that came up made me think about how this game could have turned out, hadn't I rushed for the compo. And therefore, I plan on gathering more and more constructive feedback to give this game a one-week-treatment after the play+rate phase is over. I don't want to retroactively jumble up the ratings, but I think there is some potential in there and maybe it could actually grow into something bigger.

That one feature that I hated to scrap due to the time limit was an actual representation of relationships you form and make over the time. The plan was to let the player have an actual journey to a city or a country, do some things there for a certain amount of time, get into conversations, having to decide between multiple people and stuff like that. That's partially written already, but that will definitely become the main focus of the "Definitive Edition".

Nonetheless, the more feedback I get the better the do-over will turn out, so please, take a few minutes and rate my game.

SPOILER-HINT: You'll get to the end faster by making yourself appear older to LYLA.

Play & Rate here: https://ldjam.com/events/ludum-dare/44/l-y-l-a-your-personal-living-your-life-assistant

Streaming Again!

Untitled-1.gif

I will be streaming 4-8PM. Come and say hi. If you're in the queue make sure to be present!

I will only play your game if you're watching, so even if the queue is big I might skip some entries, don't be afraid to join and submit your own game. If I don't play it today I will play it tomorrow :)

Cat Animation 101 - a little series - Part Four

Read the previous post here

immaginipostanimazione_05.gif

What's the quickest way to draw something so that it looks good enough? Using the tecnique you are more familiar with. Period.

I'm a programmer as you know if you have read my past posts, and the pen tool has been a mistery to me for years XD. I started to use it last year and even if I'm more confident now, I'm deadly slow compared to freehand drawing. Plus the results are actually pretty close.

If you have time of course vector tracing is the best choice, the result is flawless, but if you, like me, are not so expert in moving, adding and deleting points quickly, just go for a freehand tool, like a basic brush.

Choosing a thicker brush also helps a lot to get slicker looking lines.

For Zoltan's cats *I used a 5 pixel hard round brush with no dynamic al 100% opacity *.