Comparison shot of the first and the last screenshot of the jam game during the development

So! Ludum Dare 55 is almost over meaning that it’s time for me to wrap it all up in a text form and tell you my experiences with both event and my game, theGRIMOIRE_, also paving a path into its future at the end of the article.

Before the jam

My Ludum Dare began with the last round of voting. After failing to finish my 7DRL 2024 game after eight years of being in a gamedev hiatus, I thought that I should give Ludum Dare a chance, after all a lot of my jam games were made during LDs. With that said, themes that I saw in the last round were… not very inspiring to put it lightly. But after “fuck it, we ball” moment, I’ve waited until the theme reveal and…

…“summoning”.

The one that I voted against. Well, shit.

Brainstorm

I woke up the next morning and started brainstorming the ideas. Summoning, summoning… what can I summon… I could imagine that a lot of people will end up making some sort of rituals, pentagrams, mages and dungeons (and I was oh so right), so I wanted to summon something else. But what?

My first idea was to make something weather-related along the lines of summoning some kind of weather conditions to proceed through the game. With no better idea in mind, I started thinking about the ways I could do the, well, summoning process. Choice fell onto DDR-like sequences of arrows or maybe buttons. Yes, I’m aware that Helldivers 2 made this concept popular in the last few months, but I was taking inspiration from rhythm games, since I was exploring that genre for the potential project back in the day, hence the DDR.

And then it kinda clicked. What if I made what I always do: a puzzle game. I decided to shelf the weather summon idea and thought of the way I can integrate summoning into a puzzle game…

…and that’s how theGRIMOIRE_ was born.

Development

“Don’t make engines, make games!”

“You never finish anything, you only make engines!”

“Unreal Engine is easy and free and it looks like AAAA game!”

“Dude, dunno if you heard of it, but Godot…”

Fuck it. I’m a programmer, I spend most of my time using programming languages, I know how to write stuff. I use Kotlin for coding, I use LibGDX for graphics API layer, and I’d rather struggle through making them work on the low level rather than fighting some high-level concepts made by the designers of the engine. Pawns? Tree? GameObjects? Not for me, thanks. I tried it, and I wasted more time fighting those tools to make them work in the way I want, in the way I’m comfortable with, than actually developing something with them. Plus why waste time learning a new tool, when the old one uses 100% of my skills?

I made a LibGDX project in Maven, I set up the base, wrote few classes to ease up my process and then I started coding. I blocked out the first level to work on render, imported some sprites, tileset, then mechanics and new levels started forming up, etc., etc.

At the dawn of the first day I already had a pretty solid foundation both mechanically and visually.

View post on imgur.com

View post on imgur.com

Game at the end of the first day

Next day was dedicated mostly to polishing the mechanics and I also created few new levels.

With that said, by the end of the second day I already had a somewhat complete project, I could just slap some sounds and music, replace one sprite and just release it as compo… but I wanted to make a proper product, even if it’s “just a jam game”.

Game at the end of the second day

So my Monday I dedicated to polish the hell out of the game. I added menu, I added options, I added rebindable controls, I found music and sounds and I added them to everything, I tested it all and finally…

Main menu of the final version

…I submitted it to the Jam category. The grind is over. Time to rest.

First week

…or so I thought. During my 8-year abscence from the event LD community went through a huge paradigm shift: streaming. I don’t remember that back in 2016 there was that many folks streaming and playing others’ games, only few YouTubers picking interesting projects and making videos with them.

But damn, it all changed now and these days people just rush into the fellow devs’ streams on Twitch submitting their games, going through cringey raffles (some of them even with the elements of pay-to-win or more like watch-to-win). I understand that a lot of such things folks implement to keep the viewer count high, can’t help, but feel, though, that sometimes the simple dice throw is more fair that those raffles. But anyway.

My game was already receiving votes and I was voting back and commenting on games of others, but I couldn’t just ignore the massive part of LD that is streaming.

Plus I had never seen people playing my game live with no editing and post production. Pure, uncut and unedited, raw playtesting. It was tempting, so I started poking in people’s streams, submitting my games, watching others. And I should say, that was a huge experience for me, which I am very grateful for. Seeing how people suffered through the puzzles were almost eye-opening. I could watch hundreds and hundreds of hours of some dudes on YT talking about playtesting and puzzle design, but unless you experience it first-hand, you’ll still be in the “gray area” of knowing a lot, but never seeing it for yourself.

I took notes, I saw issues and I saw problems that people went through, I heard a lot of positive also. Of course a lot of people were trying to be polite so instead of “FUCK WHY THIS FUCKING GAMES SUCKS SO MUCH” they just grimaced a bit, sighed and said “Well! That’s a very nice game! Puzzles are very hard and I’m not fully awaken, haha!” It’s at this moment I realised that I’ve made a “dark souls of puzzle games”. 😂

Jokes aside, I want to thank everyone who played my game live, recorded it and cut for YouTube, or just tried it outside of anyone’s lurking eyes. Thank you kindly. It means a lot for me.

This is the part where I rant a lot

This is the part where I rant a lot. And oh boy, do I have stuff to say about Ludum Dare. You can skip it for more fun experience, though.

So what I want to highlight is the ostracization of non-Web entries. And it is astonishing. I remember back in 2016 people recommended to have a web version of your entry in addition to desktop version so people could quicker give your game a try and rate it. But in 2024? A lot of streamers were doing only Web-entries explaining every single time how they are afraid that games will blow up their PCs and then bringing up some examples of how one game bricked their stream. That’s understandable, personal security is above it all.

But let me rant a bit about it, okay? Okay. When you can open a game’s page and you see lots and lots of comments and none of them are warning about the dangers of the exe file, when you can literally upload the downloaded file to some sort of online antivirus like VirusTotal to check if game is a-ok, when you can set up the VM or enable sandbox in Windows 11… those arguments really just can be translated as “I don’t want to do it all, I just want to click and spend 5 minutes on the game and then move on”.

“They are streaming your game, they are setting the rule” — sure, and that’s why I never questioned it when they told me that they don’t play desktop entries. Your channel — your rules and I’ll follow those rules (just make them clear so people wouldn’t have to ask you over and over again if you play non-Web games).

But it’s impossible to keep your mouth shut when one day I opened Ludum Dare site to see the post “Hey guys, port your games to web, it’s not that difficult”. Hello? Not that difficult for who? For HTML5 and Unity developers? Not everyone uses them though? Just say you don’t understand how games are made and never really used anything but your favourite engine with one click export to HTML5. But even then, I saw a lot of people who struggled with those exporters: Godot 4 rejected to work on LD entry page and was unstable on itch.io. Same goes to some Unity games and that basically just cut off every game that used HDRP pipeline to make things, you know, look better.

I don’t like this ostracizing. It’s humiliating. Especially when it’s posted or said publically and especially when it’s a “norm” of the current Ludum Dare “meta”.

But enough of ranting, let’s get back to my entry analysis.

What went right / What went wrong

First of all, what I did right is I took one extra day (Monday) to polish my game to a solid condition. A lot of people commented positively on the main menu, some noticed that I implemented key rebinding and I even saw someone using it. Everyone loved the music I’ve found, so it’s also a bonus.

What went wrong, however, is the difficulty curve. As I described it during streams, it was basically 1+1, 2+2, 238 squared, log(x) = y^2, 3+4, solve the world hunger. My game was designed to be “learned by experimenting”, however it lacked certain amount of levels to first force player through the mechanics to show them that they can do this or that. As the result, a lot of folks were making the very same mistakes at the very same spots of the very same levels because I didn’t explain something. Lessons are learned.

Also, I want to mention, that during watching people playing my game, I tried not to interfere too much into their gameplay. I read one time, that if you actually want to see how players experience the system you designed and see if they are intuitive enough and allow people to use them the way you imagined, you should not get in the way. Just stand behind them and watch. It’s hard. It’s very hard. Especially when you know how to solve it or when you see a player just rushing through the same spot again and again and again and you just sit there helplessly, screaming at the monitor “NOW GO RIGHT. YES, RIGHT. NO. NOT HERE. FOR FUCKS SAKE!”, but you can’t really blame the people. It’s your responsibility as well to guide players through your game as smooth as possible. If they are lost, maybe you didn’t explain something. If they are frustrated, maybe your “fun little death trap” is not as “fun” as you thought it would be. In any case, it’s your responsibility as a game designer to look into the issue arisen and decide if that was the case of bad design decisions or missing the target audience in this exact case.

Because let’s be honest, difficult puzzles is not something all of us can equally enjoy. It’s a very niche genre that balances between giving player enough information to keep them hooked, but not enough to straight up give them a key to the exit door.

My biggest issue was, of course, lack of undo feature. Many many times people had to restart the whole level and those groans of disappointment ringed in my ears for a very long time. 😅 First time when I was pointed out that Undo feature is important was when I made my NECLiD game for Ludum Dare back in 2015 by Alan Hazelden, creator of lots of amazing puzzle games. Back in the day I thought that undo will, quote, “ruin” the “puzzleness” of sokoban. This time I had this in mind, but despite me spending a day on polishing, I still didn’t find time to implement it.

And oh boy.

Did it backfire.

I personally think that a lot of frustration people experienced during puzzle solving in my game was due to lack of the ability to undo what they just did. I thought it will ruin the puzzle aspect and without the undo players will be sort of forced to think twice. What it actually did was punishing players for the experimentation. You know, the thing that I was actively encouraging people to do with the game design. I added undo feature in the post-jam version and, well, lesson learned, oh so learned…

Despite all of stuff that went wrong and frustrations along the way, one thing was interesting to see: people wanted to go on. Some had to force themselves to stop because puzzles were taking too much time to solve, but a lot of people was interested enough to spend time experimenting and solving puzzles which was very warming to see.

After all, I enjoy it when people play my games. Isn’t that what we are making them for?

The End?

And that’s it! Ludum Dare 55 is only hours away from closing its doors, the community will go into hibernation mode until the next one. It’s sad, but inevitable. And it’s sort of the vibe I love jams for.

What does it mean for theGRIMOIRE_ though?

To be honest, when I finished working on the entry I already had a thought at the back of my head that I really, really love the concept that I ended up with. After seeing people playing it and genuinely enjoying the puzzles, I decided that that’s what I want to do.

I want to make theGRIMOIRE_ into a full game.

I want to add more depth to it, more levels, more mechanics, polish its graphics, its engine, add story, playtest it to the right amount of difficulty.

And I want to release it on Steam.

That’s my goal. I don’t know how much time it will take me and I can’t imagine the struggles I’ll have to go through building a community, interacting with it, working on the game, marketing it.

For now I know only one thing.

I want to see theGRIMOIRE_ on Steam. I think it’s the project that deserves it.

And I already started working on it from scratch, building it properly this time without cutting corners and hacking features on top of each other. This might not be my magnum opus, but it’s the game that I want to make and that I want to finish and release.

In case you are interested in seeing how the project will evolve, I welcome you to follow me on social media, like Mastodon (I’m here more often), Twitter (less often, but still poking my head in here), itch.io and also maybe join my very very very young and small Discord server that I plan to use both for news, images, videos and for the playtesting/bug reporting purposes in the future when I’ll have a game in a proper state.


Thank you so much for reading it, see you on the flip side!