Joined 3 years ago
I know this is a problematic idea, yes, but hear me out:
This here is pretty cool (a 404 page with a little pixel canvas where visitors can paint and some user creations next to it): https://leftlogic.com/error
Now, what if I made this for the alakajam homepage but instead of painting an image you build a level for a vaguely Pacman-style game with ghosts and some destructible walls and a door thing you have to reach?
The player builds a level for other players to get out of.
You unlock new/more stuff to put into levels by beating other player's levels. The levels have tiers based on the number of things used in it.
Yes, the necessary backend is a problem and I have a couple of ideas about how to do it (feedback/other solutions would be very much appreciated!):
There was a small discussion about the requirements for the 404 error page and what I'm taking away from it is that I will try to make a very small game, hopefully around 2 MB altogether.
I aim to keep the footprint minimal and use the tools I like, which excludes JavaScript frameworks.
I'm going with Sokol and Odinlang. I haven't really tried Sokol properly, so this will be a learning experience and I'm looking forward to it!
This is the gist of it. Everything else is just notes and rants you might want to skip.
Although I don't want to use JS I thought in the spirit of serving the user and not just myself, I should have a look at what's out there in the world of minimal JS engines and frameworks. Maybe that would change my mind, if there was something overwhelmingly well suited to the task of creating an HTML5 game.
What I clearly don't want to use: Phaser, Playcanvas, GDevelop, ct.js and loads more
While those projects aren't necessarily bad, they don't fit my prerequesites: I want to host the game on my server / itch.io, not some sharing platfrom dictated by the framework. I don't want to create an account anywhere. I want to quickly download very few, small JS files, include them in my HTML file and hack away. I absolutely and under no circumstances want to npm install anything!
After looking through the options I might actually try out some of those frameworks at some point in the future. I mean a browser really is a platform for interactive media these days and ships with loads of useful stuff.
I wasn't quite sure how to approach this, because some libraries I usually use (like SDL) tend to create relatively big files for the web. Also I sure am not going to use Godot with an insane minimum web deployment size of 50 MB! This is fine if someone wants to explicitly play a web game, but it's obnoxious if it is more or less forced down your throat via an error page.
Using Sokol and Odinlang I can get the boilerplate Javascript and WASM module to compile to around 1.2 MB (no minification applied yet). If I can generate most of my assets procedurally and make a tiny game, then I think 2 MB should be doable. Wish me luck!
Ok, so I just uploaded the game to itch with 15 minutes left on my watch, 10 minutes left on the event website :)
I think I made it in time and this was still admissible, no idea how the exact timing is verified.
This is my first game jam entry as a programmer and my personal goal was to submit something that has a beginning, middle and end and does not crash.
I think from that perspective this is a success.
Another initial goal of mine was to program something in Ziglang, but after the first week it was clear that I it would be fairly tough to build anything resembling an actual game. I had problems with Zig's Raylib bindings, because it crashed for some reason if I set the game to fullscreen. Some other zig gamedev libraries are in very early stages and since I'm not experienced in low level rendering APIs that didn't work out either.
So, slightly disappointed with myself, I did the sane thing and chose an engine I knew: Godot.
Phil and I came up with the initial game design on a 2 hour bus trip to a concert. The original idea was to build an Arkanoid clone with bricks that are levels within the level and you can zoom deeper into them, basically like inception, but you could see every level layer at the same time squashed to the edges of the screen and time would go on on all levels, but slowed down heavily, again like in inception.
That did not work out because it was hard to visualize and I could not figure out a nice way to render it in Godot (I'm sure it's possible, but I decided to do something that had a bigger chance of becoming playable).
Now new levels are simply teleported into the game on top of the previous levels.
I did some quick initial placeholder graphics for the bricks and paddle, which are still in the final jam entry.
For the music I created a placeholder soundtrack using abundant music and did some cleanup of the midi file in LMMS, exported to OGG Vorbis. This placeholder is also still in the final jam entry.
Next time, I'll take more care while creating placeholders because they will probably end up in the final product.