Game-mon

Ludum Dare 55

Anyone looking to hire a programmer?

Hey, it's Ludum Dare again! I'm obviously in.

Just leaving an open message here, I'm a game developer from France, and I'm looking for contract/internship opportunities. If you are a recruiter and looking for a programmer, I might be your person! Contact me here below or on my LinkedIn.

Ludum Dare 56

My friend's first game!

My friend just made his first game! It's a simple game but honestly for a first-timer I think he did an incredible job. He's very good at shaders and visual effects.

In his VHS style scary game, you shoot and dodge creatures.

Play in browser & rate!

Capture d’écran (761).png

Please go play his game and give him some support :fire:

Procedural animation snailness

Just thought I shared some behind the scenes of my snail game! :snail:

As you can imagine, making a procedurally-animated sticky snail takes quite a bit of patience... and some bugs along the way :joy:

snailproto.gif

But it somehow didn't turn into a complete buggy mess in the end though!

Play in browser!

snailgif1.gif

Did you know... in Godot?

Did you know that in Godot, you can select any Sprite2D, and create a polygon collider with the same shape as your sprite?

(Sprite2D > Create CollisionPolygon2D Sibling)

polygon.gif

I used it all over my game Snail away so that my little snail could stick onto anything!

Capture d’écran (764).png

Also you can play in browser!

How I make simple, yet satisfying animations!

I'm no animation expert, but when animating my mushroom for my game Snail away, I tried to follow some animation principles:

  • Exaggeration: you can see the stretching of the mushroom being greatly exaggerated

  • Squash and stretch: the volume of the object should stay consistent, so when stretching one axis, the other axis should squash.

snailshroom.gif

You can see how just using 3 keyframes, I was able to make a simple but very satisfying animation, adding quite a bit of game juice. Here's also how it looks in-game:

snailshroomgame.gif

And of course you can always play the game in your browser!

A postmortem about a platformer where you can't jump!

So, I had a blast taking part in this Ludum Dare and haven't written a postmortem yet, so here we go!

Let me introduce you to Snail away, the platformer where you can't jump!

logo.png

Day 1

A chaotic start: who needs a CI/CD pipeline :sob:

The jam started very chaotically for me. I recently learned about CI/CD pipelines, which, for those who don't know, allow you to automate the process of exporting and publishing a project. So, like, 2 hours before the jam, I thought, let's give it a go! (Spoiler: that was a mistake...)

I had no experience in making such pipelines, and it was way harder to get them to work than I thought, with many examples being either outdated or needing tweaking. So I was hard at work on that when the theme dropped. My two least favorite themes of the round were Strange Machines and Tiny Creatures, so when I saw Tiny Creatures on Twitter while working on my half-broken CI/CD pipeline... man. :sob:

On Saturday morning, I woke up obviously very uninspired by the theme and thought I'd try to fix my CI/CD pipeline. It took me a lot of trial and error, but after a few hours, I got it working! Man, the feeling of just doing a git commit and having your game actually playable online felt incredibly good. The only thing was... there was still no game to play, not even a concept, and I had already burned the entire morning of the first day.

cicd.png

Brainstorming time! :gun: or :boxing_glove: or :snail:

Earlier I said I didn't like the theme, but taking a step back, it wasn’t so bad after all. After some brainstorming, I had three game ideas:

:gun: A first-person shooter where you play as a mosquito trying to take down a (giant) human. I liked the idea and thought it would make for interesting gameplay, but at the same time, I felt the success of the game heavily relied on the AI and animations of the giant human, which seemed too difficult to get convincing results within the time frame. Plus, I'm more of a 2D artist than a 3D one, and I thought it would be too challenging to make the game look good.

:boxing_glove: A 2D, first-person fighting game set inside an anthill. Making a 2D first-person fighting game was something I already had in the back of my mind. In the end, I didn’t really like the idea of using an old game concept and just slapping a Tiny Creatures theme on top of it.

:snail: And lastly, a 2D platformer where you play as a snail. The idea quickly stuck with me (pun intended) because I thought there was something really cool to do with how a snail moves—sticking to surfaces or rolling inside its shell. So I eventually picked that idea. And I think I made the right choice!

Making good platformer physics!

Since the game was a platformer, my main priority on the first day was movement and physics. For anyone making a platformer out there, please, good controls and physics should be an absolute priority—this is the core of the game.

From a technical point of view, my snail is a CharacterBody2D in Godot that always tries to stick to the ground. When rolling inside its shell, the CharacterBody2D despawns, and a RigidBody2D spawns instead. Since the sprites stay in place, it’s impossible to tell that the collision object actually changed under the hood. But it works great.

snailproto.gif

Procedural animation?

Once I had that working, the snail's graphics were another priority. I knew it just HAD to be procedurally animated because that’s how a snail’s tail should look like. So, I used a Line2D in Godot and animated the points with code.

I used raycasts to anchor the tail's points to the ground. For the head, I made some basic damping physics. For anyone interested, the math is very straightforward: it's basically just, every frame: position += (target - position) * speed * delta, where delta is the time between two frames, and speed is a parameter to control how fast the object should follow. Very simple, but it looks nice and satisfying.

snailgif1.gif

Once I got the physics and procedural animation somewhat working, it was Saturday night, and I started playing with it a bit. And I realized: wow, this is actually pretty cool! I didn’t know how good it was going to be, but by the end of the first day, I was surprised at how good it felt to play with the snail. At that point, I just had a simple snail controller... but still no real gameplay, or levels, or graphics, or any sort of complete game.

Day 2

Throughout day 2, a lot of things got done! I started by fixing some bugs on the player physics and animations. I made a few mechanics, like plants that bend as the player walks. I also worked on graphics—the snail’s shell, some leaves, and a few decorations.

snailgif2.gif

Level design time!

Then it was time for level design. And I realized that being a snail means... you can walk anywhere! Like, literally anywhere. For example, if I put a wall to stop the player... well, the snail can just walk on top of it. There’s no stopping a snail. So I added a new mechanic: spiderwebs, which you can’t stick to, and block the player. This mechanic turned out a little buggy, but it worked well enough for most playthroughs.

I was finally ready to design some levels. The trick I used was to make the levels within the engine itself with basic polygon shapes. This way I could prototype very quickly, and the game still looked okay without needing to create more art. Very handy. I also used Godot's feature to automatically generate collision polygons from sprite—again, super handy!

polygon.gif

Extra stuff! :heavyplussign:

I still had to cut the scope down and make the game much shorter than expected, though. I spent a bunch of time at the end polishing the game: adding a parallax background, sound effects, music, and collectible ladybugs. And that was it! Before the end of the jam, a friend tested my game... and really liked it! At the end of the jam, I played it a few more times and realized I was super happy with what I had made!

snailgif3.gif

That's a wrap! :clapper:

Now it’s been about 10 days since the game was released. So many people have played it, and most really liked it! The response has been overwhelmingly positive—the best response I’ve ever had for a game I’ve made! I’ve made quite a few games in the past (this is my 12th Ludum Dare!), and it’s so cool to see I’m still making progress and creating better and better games. There are still some things that could use more work, like certain aspects of the level design, and the game is very short. It’s obviously not perfect, but that’s not what it’s all about. For me, it’s about trying to make a better game than last time, even if it’s just a little bit better. And I think I achieved that.

Anyway, thanks for reading my postmortem, and thanks to everyone who gave feedback. You can still play the game if you're interested!

Awesome results on Snail away!

My platformer where you can't jump, Snail away, did super well! My best results by far!

snailawayscore.png

I even got featured by Mike! Last (or first?) to get featured because 16th, but featured nonetheless!

snailawaybsky.png

snailgif1.gif

I couldn't be happier! A huge kudos to everyone who played and left great feedback! I appreciate it :)

I'll try to be back with more awesomeness for next LD!

Ludum Dare 57

My debut game is coming to Steam!

Hey everyone!

Super excited for this Ludum Dare, it's gonna be awesome.

Since last LD I started working on my first commercial game: Bleached!

Wishlist Bleached on Steam!

It's an incredible journey already. You can already wishlist on Steam to show your support, join the Discord and watch the trailer:

https://www.youtube.com/watch?v=Ln_3J-8sE78

Cheers everyone, and have a nice LD!

home.gif

Hypeee

So hyped for this LD. One of my fav themes is Doors: simple, effective, a lot of potential!

Btw since last LD I started making Bleached, my first Steam game: a story about colors and emotions. While you're here, perhaps wishlist Bleached on Steam!

subway.gif