BoltKey

Ludum Dare 45

Done! Play my game made in 5 hours now!

It was tough 5 hours, and I am glad I actually managed to pull together something playable in that time. It is a shame I didn't have the full weekend, but I am keeping the streak alive, which is what matters at this point.

ld45_3.gif

Play here.

Check out the game page here.

Good luck to all the jammers out there and stay strong!

Just made a screenlapse

5 hours of coding crammed into a minute.

https://youtu.be/6DuNYPQ77NQ

The game page: https://ldjam.com/events/ludum-dare/45/float

Ludum Dare 46

I'm in, not gonna break my streak of 12

12 solo compo Ludum Dares in a row that resulted in a game so far. Hope to make it 13, despite the virus!

I have some other things arranged for that weekend, let's see which of them will get cancelled due to the situation. I hope to have at least 8-ish hours of jamming.

Good luck everyone!

Finally an actual 48h jam after a while

Last two jams, I had very limited time to finish the game - 9 hours both times. One time because I started over after 15 hours of going in the wrong direction, and the other because I had other plans for the weekend.

This time, it looked not great with two other events happening durin Ludum Dare, but both got cancelled because of the virus. Which means I will finally have the whole weekend to make a game.

I decided I want to make a puzzle platformer. I have several reasons for that.

  • I haven't made a puzzle platformer yet
  • I like puzzle platformers
  • There is infinite space for innovation with the core mechanic
  • Basic play through takes 20 minutes, but there is always space for speedrunning and time trial of individual levels with online scores and replays
  • It is very flexible with pretty much any theme
  • Puzzle platformers are fun
  • There is always space for a cute story
  • It makes me learn a new framework

So far I was pretty conservative with my technology choices, using vanilla JS for every single Ludum Dare and pretty much all my other projects. That is finally going to change, starting this jam.

One thing I learned is that making proper physics is pain in the ass. Even collisions of two squares took me like 6 hours to get properly in my first Ludum Dare. Is pretty much what they warn us about as "reinventing the wheel". So I am going with Phaser, let's see what all this fuss is about!

I am getting really excited about the jam, just like in the old days. I haven't made a webgame in a while, so I am especially looking forward to this one.

Are we still doing warmup weekends?

I would like to create a speed run oriented platformer for this Ludum Dare, and because I didn't want to deal with physics, I decided to learn a game framework. As I make my games mostly in JavaScript, I went with Phaser 3. I imagined my first experience with the framework to be much smoother than it was, given its reputation.

However, the opposite happened. I spent stupid amount of times on simple stuff like:

  • First, I created sprites based on a 2d array to create a map. However, the collision with the player didn't work as expected. I spent a bit wondering what is wrong, until I found out I should have used actual tilemaps for that, as Phaser has them integrated. And sure enough, it worked very well.

  • Once I knew I should use actual tilemaps, I thought the rest would be easy. Well, there are (among others) two functions of tilemaps to set up collisions: setCollisionBetween(start, end) and setCollisionByExclusion(values). One would think that setCollisionBetween(1, 1000) and setCollisionByExclusion([]) will do the same thing (considering there are less than tile 1000 ids), and so said the docs. Well, two things worked differently in those two calls: first, an empty tile has id of -1, so setCollisionByExclusion([]) set up collisions with empty tiles. And second problem happened when you add a tile with a new id after setting up the collisions - if it has id between 1 and 1000, it will have collisions when you use setCollisionBetween(1, 1000), but it will not have collisions when you use setCollisionByExclusion([]). I was digging through the source code of Phaser endlessly until I realized how those function actually worked.

  • And finally, there are many errors among the lines of cannot read property 2 of undefined that were caused by completely different piece of code. The error messages with depth of call stack of size 10 where most function names are something like step but from 5 different contexts that say no relevat information can get frustrating, and I think proper exception throwing is definitely something the devs could work on.

  • Also, as it turns out, Phaser 3 is relatively new, so there was not enough learning content for it, as most of it is about Phaser 2, so that slowed down stuff a bit too.

There of course were many other problems along the way, but I am happy I had to overcome them now, rather than stress about them during the jam weekend.

Anyway, during the past days, I finished very basic platformer. It has player acceleration, animation, double jump, ghost replays, multiple levels, time measuring and coin system where you need all the coins to open the exit.

ld46_pre.gif

I think I have grasped the concepts and workflow to be able to create a nice little puzzle platformer for the jam.

And maybe, I will team up with my sister who is learning digital art and design.

But now, it is time for a bit of rest from game making so I am not exhausted before the jam even begins!

Good luck everyone and see you on the other side!

Had a little brainstorm and here's what I found out

First and foremost, the theme is obviously very broad. In most games where there is a character, the game is about keeping the character alive.

Some other interpretations I came up with include

  • Keeping traditions alive
  • Keeping a computer from BSODing
  • Play as cells in human body to keep it alive
  • Ecoactivism
  • Resiscutation simulator
  • Vegetarianism
  • Keeping a dream alive

I kinda like those ideas, but couldn't see a game in any of those.

Before the start of the jam, I kinda wanted to make a puzzle platformer, and I definitely couldn't see a creative puzzle platformer in any of those ideas.

So far, I see the most real an idea of a puzzle platformer where you have dying flowers, each needing some amount of water. You have watering supplies like watering can or a hose and need to provide sufficient water to all the flowers as fast as possible. Water will be solved via particle physics, so you can either water the plants from far away, with only some of the water ending up in the pot, or spend some time reaching the plant and not miss a single drop. Also, the more water you have in your can, the lower you can jump and the slower you move.

My game is (•_•) ( •_•)>⌐■-■ (⌐■_■) alive

I made a quick mock up prototype to get a better idea of how my mechanics will work. And I can see it becoming a game actually.

The theme interpretation is a bit of a stretch. But with a theme this broad, I really don't think I can find a spot-on theme idea.

ld46_0.gif

You are playing as a watering can trying to keep flowers in pots around the level alive by watering them.

The more water you have inside, the slower you are and the lower you can jump, but the faster you provide water for the flowers.

It will be mainly time trial based, where you try and find the fastest way to finish a level, optimizing amount of water to find the perfect compromise between volume and speed.

I will see if I can come up with some nice puzzle mechanics. But I like the direction it is going so far.

What do you think?

Progress! Also, I am excited to welcome a new member to the team

Exciting news. After successfully completing 12 compos in a row, I am finally taking part in the jam this time, as I am teaming up! However, I plan on following the compo rules, with the exception of time limit and solo limitation, eg. 100% custom assets. The custom sound effects are always half the fun in Ludum Dare!

My sister likes the idea of a live watering can trying to save dying flowers for some reason I cannot fathom, but I am glad she does. She will create graphics for the game. Now, I just need to figure out how to set her up so she can have as straightforward workflow as possible, as she doesn't have any programming experience. And it turns out you need a local web server to even run Phaser. It would be ideal if she was using Git, but I don't think we will be able to get going on that.

My game is about a live watering can that found itself in a basement with many dying flowers. There is however a very conveneint water leak in the pipes above. There's no time to lose, save those flowers!

ld46_1.gif

The best score system works quite nicely. There are multiple kinds of plants, each having different required water and speed of dying.

Honestly, I have no idea how I ended up with such a story of the game. I swear I was not high on anything.

Now off to a break and cook something tasty.

Meet Kevin the Can!

First sneak peek of the graphic style, made by my talented sister @klara-spanelova.

menubackground.png

The game is about a watering can trying to keep flowers alive.

Currently, I am working on level design. And oh boy, is it fun. But what noone warned me about is the sheer frustration of when you know the level you made is possible, but you cannot get yourself to actually complete it. I spend good 40 minutes just trying to complete a level I created. But the satisfaction I got was worth all the effort.

Right now, I only have 4 game elements in my game - player, water source, plant and floor. That's it. But surprisingly, I was able to create some nice (I think) puzzly or skilly levels. A version (very rough around the edges) is here: https://boltkey.cz/ld46/.

ld46_2.gif

(don't mind the not quite matching pipe pieces)

Next, I will keep working on more levels. I have 8 so far, but want about 20, and perhaps a few bonus. Also, playing in my head with sound effect ideas.

Almost finished, getting everything 100% ready. Help fill my database please :)

I am marking off the last items on my checklist as fast as ever, with no mayor hiccups. I will actually finish everything I wanted in time!

Play the game now in your browser! https://boltkey.cz/kevinthecan/ I need some data for the highscore list to make 100% sure they work correctly.

I am not linking the game page as the game is not yet complete.

can.png

Done! I am extremely happy with the result!

Play Kevin the Can now in your browser: https://boltkey.cz/kevinthecan/

Game page: https://ldjam.com/events/ludum-dare/46/kevin-the-can

ld46_3.gif

Kevin the Can post-mortem

This Ludum Dare, I didn't capture a screenlapse, as good portion of the work happened outside my screen. I didn't keep a dev log either. All I have are 22 commit messages. So I will try to make up for lack of information on how my project came together by writing this post-mortem.

menubackground.png

If you haven't yet, you can play Kevin the Can in your browser and leave feedback at the game page.

can.png

The story

I was hanging out in the Discord voice chat with some very nice people, discussing themes and stuff leading up to the theme announcement. I spent a few more minutes in the chat until disconnecting and brainstorming ideas on my own.

I kept getting rather dark ideas - moral dillemas, blood, death. I spent about an hour brainstorming ideas. I couldn't come up with anything I had vision for. I went to bed to give my thoughts some rest. After waking up, 8 hours in the jam, I still had no idea what will I make. After having so many darker ideas, I decided to go in the exact other direction and create the most family-friendly light and cute game imaginable. I had an idea of plants dying, and you are trying to keep them alive. Naturally, you play as a watering can.

I wanted to make a puzzly platformer before the jam even begun. I didn't let that restrict my brainstorming, but eventually I made a full circle and returned to it.

I spent 4 hours mocking together a prototype. I keep repeating it, and it is one of the most important things - just get the gameplay working as soon as possible. Create the core idea. Try it. Do you like it? Great, now make it into a game. Don't like it? Start over.

Fortunatelly, I liked it. So I showed it to my sister who was thinking of joining in for the first time, and she liked it too, somehow.

The day 2 was spent mostly on integrating and tuning the graphics, with some level design work.

I had the core mechanic, and managed to create 3 interesting levels from it.

Initially, I wanted to create 20 levels. But it turns out it was just too many. And many platformers in the style of my creation have less levels. So I went with 15.

I started pushing to complete the levels through the night. And boy, was it a long night. I had a very nice and elegant mechanic, and I didn't want to waste it on bad levels.

I kept pushing through and finished the 15th level at about 7am, when I finally went to sleep.

Day 3 was all about finishing everything up. It was very unusual and convenient to have so much time all of sudden. And I think I used it well - I polished the living shit out of the game. There were so many little details, but after the whole day of having the game completed, but just "finishing it off", I am happy to say there is nothing I would change about the game or made differently.

I always like to make games with high scores. I have been a big fan of Trackmania for a while, and that game is all based on time trialing. It is great, because there are always two layers of the gameplay: one is just finishing all the levels, and the other is trying to push limits. You get some satisfaction from completing the game, which is there for the casual gamers, but for the people that enjoy the game and want to get competitive, there is that possibility.

So anyway. I am very proud of the end result, it may actually be the most polished thing I have ever made. And I really believe the ratings could finally be very decent.

This Ludum Dare was my first real experience with Phaser 3. While I quite enjoyed it, the documentation sucks. But other than that, scene management is very convenient for menu management, and I think I saved a lot of time not having to fix my physics or try to optimize the game so it runs at 10 fps or more.

And asset loader is convenient too.

Ludum Dare 47

Light it up!

ld47_2.gif

Almost done. It's not much, but it's honest work.

Ludum Dare 48

In my game, you will be gathering rare resources with a submarine

I always really liked the "gather resources, upgrade, repeat" games that were the backbone of the golden era of flash games between about 2006 and 2014. Some call them "mining", some call them "launch", but I always found them very fun nonetheless.

While I am sure the idea is not tremendously innovative or anything, I am sure I will have heaps of fun with this project. Going to sleep now. Enjoy my quick concept art sketch. I will try to focus on art a bit more this time, as I will not have to spend as much time on game mechanics, since I am not inventing anything tremendously innovative.

concept.png

Look at him go!

Isn't he just so cute with his little windows and tiny little propulsion motor making cute little bubbles!

ld48_1.gif