How Much Gameplay Can You Pack In Just 13K?
Written by Nikos Vaggalis   
Monday, 16 October 2017

Given our expectations of Xbox games, you might consider writing a game within a 13K limit, which is the challenge for the annual js13K competition far too restrictive. Its results are now out and prove that it is possible to produce a game that is fun to play.  

Back in the tape loading days and on platforms the likes of Commodore64 games came in sizes of 4K or less. As proof of concept, here's a list of a few such 4K titles, copied over from Lemon64 's archive:

  • Alien Sidestep
  • Bug Crusher
  • Dot Gobbler
  • Close Encounters
  • Dot Gobbler v2
  • Gridrunner
  • Laser Cycles
  • Marios Brewery
  • Space Action
  • Space Ricoshay
  • Tank Wars
  • Hesmon64
  • Retro Ball 


 

Fast forward to now, at a time when Javascript's eating the world by making all sorts of applications or  games available to everyone through the medium of the browser, rendering the need of dedicated platforms and Operating systems obsolete, 13K is sufficient enough to pack both gameplay AND cool graphics due to the advanced browser engines and HTML5.

js13kGames then is a competition trying to answer two related questions :

  • Does it make sense to consider byte sized game development in a world of widely available broadband connections?

  • Do you think it's possible to go through all the entries of a given game jam and find patterns that you could use in any other competition, regardless of the restrictions or the programming language?

This year the competition lasted from August 13 to September 13,
but first things first; why the fixation with the number 13? why not 23 or 53? what does 13 signify? The answer comes from the host of js13kGames, Andrzej Mazur, himself:

I wanted something original over popular 1k/4k/10k back in the days, and thought that 13 could be a nice hit, also given "bad luck" theme.

In that one month period, competitors had to create a game that followed this year's set theme, 'lost', and adhere to a set of rules. Here are the most important:

 
1. As already said the package size must be below 13 kB or 13,312 bytes when zipped. This gets complicated
because of Rule 2

2. No external libraries or services
You can't use any libraries, images or data files hosted on server or services that provide any type of data - for example Google Fonts are not allowed. Your game should work offline by launching the index.html file in the browser (Desktop and Mobile categories, not applicable to Server) and all the game assets should fit in the package size limit. If you manage to shrink your favorite library below 13 kilobytes including the code itself, then you can use whatever you want, just remember about the 13 kB limit.

3. Two sources - readable and compressed
Provide two sources of your game - first one should be minified and zipped to fit in the 13 kB limit and the second one should be in a readable form with descriptive variable names and comments and hosted on GitHub.

4. Licensing
You must have the rights for every asset used in your game. Remember that the submitted games will be published and made available for everybody to see.

5. New content only
Do not submit any old games or demos, only fresh content is accepted.

6. Errors and browser support
Your game must work and be playable in at least two browsers: Firefox and Chrome and there should be no errors.

7. There are multiple categories that you can take part in. These are :

    • Desktop
    • Mobile
    • Server
    • A-Frame, a powerful open source web framework for building virtual reality experiences which combined with WebVR makes it possible for web developers to get involved.  

This year's entries amounted to the staggering count of 253 in all combined categories, and while there were many noteworthy entries the ones that actually won it were also the ones really worth it.


For example, the winner of the mobile category , 'LOSSST', was a game of a long journey to find a lost kid which included 75 puzzles and 3 different mind-bending mechanics.

 

 

Taking a different approach, 'Lost in CYBERSPACE', a cyber thriller and winner of the A-Frame category, involved an elaborate plot as well as game play: 

Lost in CYBERSPACE is a cooperative game designed for 2 players, each playing on a separate device. The only connection you need between each other is your voice. You can be in the same room or on the other part of the world, as long as you can hear each other.

One player takes a role of a HACKER lost in the CYBERSPACE maze of a corporate network. They need to move around CYBERSPACE, read the access codes to NAVIGATOR and find the TARGET node to hack it. But beware! Hacking wrong nodes will make you easier to locate and you will be lost in CYBERSPACE when the time runs out!

The other player takes a role of a NAVIGATOR who uses a terminal to decode the access codes they got from HACKER, read the map of CYBERSPACE and help HACKER find the way to the TARGET node. 

 

Despite the imposed 13K limit, the developers made use of the latest Web technologies HTML5, CSS3, JavaScript and other complementary tools/libraries/frameworks/techniques necessary for the job.

Examples of those, are libraries the likes of Kontra (used for game loop and assets preloading) and TinyMusic, frameworks the likes of Brevis.js, toolkits such as the homegrown js13k-toolkit , transpilers such as babel for compiling ES6 code to Chrome and Firefox, Webpack for modular JS code, minifiers for CSS and HTML, and graphics techniques the likes of Signed Distance Functions raymarching.

The winners indulged themselves in prizes ranging from game on Steam, to paid GitHub plans and personal accounts with unlimited private repositories, to Amazon gift vouchers.

In the end, through employing open standards and publicly available code, js13k inspired and forced game devs to think hard about both gameplay and code optimization techniques in order to collectively up their....game!

As for the rest of us, it offers plenty of excuse for spending time online, playing, experimenting and having fun with all those games!

 

More Information

js13kGames - HTML5 and JavaScript Game Development Competition

Related Articles

Minified JavaScript Games

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

 

Banner


Azure Container Apps Dynamic Sessions Generally Available
02/12/2024

Dynamic Session support has been added to Azure Container Apps. Azure Container Apps is a serverless platform for running containerized applications, and dynamic sessions is designed to provide fast a [ ... ]



Windows 11 Adoption Takes A Downturn
11/12/2024

With Windows 10 End of Life only ten months away, Microsoft is stepping up its campaign to get Windows users to upgrade to Windows 11. But while Windows 11 had been gaining users at a steady rate at t [ ... ]


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Sunday, 15 October 2017 )