HTML5 and JavaScript Game Development Competition in just 13 kB

What is js13kGames?

Js13kGames is a JavaScript coding competition for HTML5 game developers. The fun part of the compo is the file size limit set to 13 kilobytes. Theme for 2014 is The Elements: Earth, Water, Air and Fire. The competition started at 13:00 CEST, 13th August 2014 and will end at 13:00 CEST, 13th September 2014. See the Rules for details, good luck and have fun!

Competition is organized by Andrzej Mazur from Enclave Games.

Gamedev.js Weekly

Weekly newsletter about HTML5 Game Development

Sponsors

Spil Games Boostermedia
Mozilla

Supporters

Share the love for HTML5 games and support the js13kGames competition!
See the Contact section for more details on how to get in touch.

Judges

Robbert van Os

Robbert van Os

I am your friendly neighbourhood game developer evangelist from Spil Games. My goal is to build communities around writing the best games possible, and providing the tools and knowledge to do so. Based in Europe, I’m the founder of html5united.com and active in the global games industry for over 12 years.

@gamerhero | html5united.com

Jason Weathersby

Jason Weathersby

Jason Weathersby is a Technical Evangelist for Mozilla, evangelizing Firefox OS. He is also a committer on the BIRT project at the Eclipse Foundation. He is a proponent of HTML5, Open Source and all things related to web-based gaming.

@JasonWeathersby

Michael Wales

Michael Wales

Michael Wales is the Web Dev Curriculum Manager at Udacity, building courses with industry partners like Google, Facebook and Twitter. Before joining Udacity, he developed web applications for the US Air Force, Defense Intelligence Agency and National Security Agency.

@walesmd | michaelwales.com

Prizes

Playcanvas

10 × PlayCanvas Pro account

Ten 12-month PlayCanvas Pro accounts offering cloud-hosted, collaborative platform for building video games.

Construct 2

5 × Construct 2 game engine

Five Personal Edition licenses for Construct 2 game engine created by Scirra.

GitHub

30 × GitHub 6 month medium account

Thirty paid GitHub plans - medium accounts for six months.

Blossom.io

1 × Blossom.io Enterprise account for 12 months

One Enterprise license for Blossom.io, agile project management tool.

JetBrains

7 × JetBrains product license

Seven licenses for one of the many various JetBrains professional development tools.

Proto.io

1 × Proto.io Startup account

One Proto.io account with Startup plan for 12 months.

Clay.io

Advertisement on Clay.io

Winner of the Desktop category will be featured on the Clay.io homepage and the Mobile winner on the mobile site.

Kendo UI Professional

2 × Kendo UI Professional

Two licenses for Kendo UI Professional for 6 months with upgrades and commercial support.

The Few

The Few game

Unlimited copies of The Few game by Blackmoon Design, one for every participant (or team) in the competition.

McPixel

McPixel game

Unlimited copies of the McPixel game by Sos Sosowski, one for every participant (or team) in the competition.

QbQbQb

QbQbQb game

Unlimited copies of the QbQbQb game by Rezoner Sikorski, one for every participant (or team) in the competition.

NodeBB

5 × NodeBB hosting

Five Hamlet hosting plans for 12 months each from the NodeBB team.

Categories

There will be three different categories with top 10 games in every category.
You can submit your game to any of the categories - it's up to you.

There will also be a Twitter, Facebook and Google+ Specials just like a year and two ago.

Prize

Desktop

Full power of the hardware.

Prize

Mobile

Mobile touch devices.

Prize

Server

Node.js multiplayer.

Rules

Package size below 13 kB

All your code and game assets should be smaller than or equal to 13 kilobytes (that's exactly 13,312 bytes, because of 13 x 1024) when zipped. Your package should contain index.html file and when unzipped should work in the browser.

Two sources - readable and compressed

The competition is focusing on the package size, but learning from others is also very important. Please provide two sources of your game - first one should be minified and zipped to fit in the 13 kB limit (sent via the form) and the second one should be in a readable form with descriptive variable names and comments (hosted on GitHub).

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 (Desktop and Mobile categories, not applicable to Server) and all the game assets should fit in the package(s) 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.

Main theme - The Elements: Earth, Water, Air and Fire

The main theme of the competition in 2014 is The Elements: Earth, Water, Air and Fire. It is optional, so you can use it, use part of it (one Element), or drop it. Remember that there will be bonus points for implementing the theme in your game.

Deadline - 13th September 2014

The competition starts at 13:00 CEST, 13th August 2014 and ends at 13:00 CEST, 13th September 2014. No submissions will be accepted after the end of the competition.

Licensing

You have to 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.

New content only

Do not submit any old games or demos - you have a whole month to work on something new and fresh, this should be more than enough.

Errors and browser support

Your game must work in at least one browser. The more supported browsers, the better - you can get more points for that. There should be no errors - you can lose some points if your game is showing any errors in the console. If we cannot play your game, it won't be accepted. You'll get extra points if your game supports any mobile devices.

Teams

It doesn't matter if you're working alone or with your friends, just remember that the number of prizes is fixed, so you'll have to share your trophies with your teammates.

Sending submissions

There will be a special form to submit your game. Please remember that you have to provide two sources (see the Rule #2 for details) - a link to a public repository on Github and a zipped package. Participants are allowed to submit more than one game in the competition.

Accepting submissions

Submissions will be checked manually and published after positive verification. This may take up to a couple of days, so be patient if your game is not yet online. I claim the right to reject any submission without giving a reason, although I hope I don't have to. I also have the right to update the rules of the competition at any time.

Server category specific rules

Sandbox server
You can find the official sandbox server at github.com/aurium/js-game-server - it is maintained by Aurélio A. Heckert and Florent Cailhol.
Package size still below 13 kB
In this year one game package will contain all the game code and assets, for the client and the server.
Sandboxed environment
Your game will run in a node.js based sandbox environment. That means you will not really use node. You can require a limited collection of modules and your own modules shipped by your 13k pack.
The allowed modules are:
Assert, buffer, events, path, querystring, string_decoder, sandbox-io (a shimed version of socket.io already listening your game port) and sandbox-server (a shimed version of http.server already listening on your game port).
Do not leak the sandbox
This is not a hacking competition. This is a way to help the competition admins, the site persistence, and you. Trying to directly write files, to read files outside of your package, to use not allowed modules, to change the server port, or any other tries to leak the sandbox will cast you out of the competition.
Yes, you can persist some data
The sandbox has a global function "db(key[,value])". That can abstract the read/write json data from the disk for you.
Socket.io client lib
You can use it. Simply add <script src="/socket.io/socket.io.js"></script> to your HTML and that will be loaded. No server configuration will be needed. The sandbox already did it.
Respect your neighbours
Besides the fact that you can be cast out if you deliberately affect another game by accessing files or it's server, you also have to try to not plunder the host computing resources. That is also needed to preserve the server health.
Can I test the sandbox before submitting?
Yes, you can and you must! Installing and getting it running is simple. Visit the project page at github.com/aurium/js-game-server.
Is there any example? How do I develop my game using the sandbox server?
Read the how to and the example to learn more. Feel free to ask questions if you have any.

Frequently Asked Questions

Why exactly 13 kB?
Well... why not? :)
What's in it for you? Are you getting paid?
Nope, it's just my own idea and it's made for pure fun. I'd love to get a sponsorship though as I spent my own private money on the first edition to cover shipping of the prizes worldwide, making t-shirts etc.
What does the "zipped" term exactly mean?
Sent package should be zipped with your usual system archiver, the only allowed extension is .zip. Let's keep it simple - it's a competition for coders and this should be your main focus, the code itself. Thanks to the zipped archive you will easily send your game and we will easily check the file size.
Can I use Flash?
No, you can code your game using only the open web technologies like JavaScript, HTML and CSS.
Can I use WebGL?
Yes, though it might be hard to fit it into 13 kilobytes if you plan on doing an FPS game.
Can I use CoffeeScript or TypeScript?
Yes, you can use it, but you can't submit it. Only pure JavaScript code will be accepted, so remember to have your compiled code within the 13 kB limit.
Can I use compression through the self-extracting PNGs?
No, this technique is strictly prohibited. Only pure JavaScript minifying is allowed.
More questions?
Send them in via email or social media or post them in the dedicated topic at the HTML5GameDevs forums.

Contact

If You have any questions or propositions please feel free to contact us via e-mail: contact@js13kgames.com.
The other options include visiting our profiles on Twitter or Facebook and sending us the private message.