dollarone 2 months ago

I'm currently working on my game for the js13k competition. As you might infer from the compo's name, you only have 13k to make your game, which rules out most frameworks. I've done this a few times before, and because of the restrictions, the things I end up spending time on are a bit different from more "standard" jams. For example:

Yesterday, I looked at how to do graphics. I want to have some minimal pixel art in my game, but even small images can take up significant space, so I want a solution as cheap as possible in terms of space. I looked at creating an Image object dynamically, which lead me to looking at the data structure and the getImageData() and putImageData() methods - but I concluded that creating my own structure and just drawing the pixels individually is a cheap and good enough way for what I need.

Before that, I spent a fair amount of time researching how fonts work in HTML5 Canvas and especially how to not anti-alias them and how to make them crisp and clear even with a small resolution. There are some libraries that will give you a cross-browser/OS consistent font, but I don't want to dedicate too much space to this.

Today I am looking at mouse input. If I didn't use canvas, it would be easy, I could just attach events on images or buttons. However, in canvas you basically only get a single event (there is a addHitRegion() API but it's currently only available in experimental builds of Chrome and Firefox). Looks like I'll have to write my own thing to temporarily add a thing you can click on.

If I had been using a framework (like Phaser or otherwise), pretty much all of this is taken care of for me and I could focus on gameplay and features instead. I do enjoy the different approach and it is interesting to write a game completely from scratch every now and again. It is also amazing to see how much people can get out of 13k worth of javascript - the deadline is September 13th if you're interested!

Comments (2)

Wan
2 months ago

I've had a couple attempts at entering it in the past, but never managed to keep the bandwidth large enough to complete something. My main effort was porting an unfinished Java4K Texas Hold'em game to JavaScript, but I never got past the graphics part.

Finding creative ways to do more with less bytes is quite exciting though! Finally a kind of competition that rewards dirty tricks and ugly code :)

Any chance to see what your entries from the past years looked like?

dollarone
2 months ago

Yes, sure!

My first one was a top-down blocky adventure called "A bad day for Frank". This one was made in a week on holiday and was pretty close to not getting finished.

Frank's adventures continued the next year, this time in a rhythm/tower defense mashup thing: "Frank in the Disco Dimensions" (might take a few seconds to load). My main memory from this is Jupiter Hadley skipping the tutorial in her play-through and then complaining the game was confusing.😤

FInally we have last year's entry, which was an idea of doing a different tetris-style game. It didn't really work out, I think, and there's some bugs that never got fixed - not too happy with this one, but not all ideas work out. Maybe I could have modified it a bit and make it work, perhaps by making the game-board smaller? Kinda ran out of time on this one as well: "Spines" (Z/X to turn blocks)

This year I'm making a dungeon crawler/encounter-based RPG inspired by FTL and optimised for mobile in portrait mode. It'll have randomly generated levels and encounters, and I hope I can finish enough features to make it fun! WIP

Login to comment