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. The competition started at 13:00 CEST, 13th August and ended at 13:00 CEST, 13th September 2015. Theme for 2015 edition was Reversed.
Read Tuts+ Gamedev intro article, my blog post and see the Rules for details, good luck and have fun!


The competition is organized by Andrzej Mazur from Enclave Games,
check out promo game Triskaidekaphobia and grab the stickers.

Sponsors

Spartez Mozilla
Famobi Codility JScrambler

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

Will Eastcott

Will Eastcott

CEO of PlayCanvas, the open source WebGL game engine. Former EU Technical Director at Activision. Credited in Call of Duty, Max Payne, DJ Hero and many more.

@willeastcott | playcanvas.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 | hacks.mozilla.org

Wojciech Urbański

Wojciech Urbanski

Senior Front-end Developer at Spartez where he is working on Atlassian JIRA. Passionate about UX, good design and Open Web. Meet.js meetups co-organizer. Casual gaming enthusiast, audio books addict and amateur brewer.

@wojtiku | spartez.com

Ilker Aydin

Ilker Aydin

Founder and CEO of Famobi, a cross-platform game service with 300+ HTML5 games and high revenue-shares for developers and publishers. Before Famobi, Ilker founded SpielAffe.de and KralOyun.com, Germany's and Turkey's biggest online gaming portals. Also created Smarty Bubbles, the most successful cross-platform Bubble Shooter worldwide.

famobi.com

Pedro Fortuna

Pedro Fortuna

Co-founder and owner of JScrambler where he co-leads business development, and supervises all R&D and technical activities. Inventor and co-author of three patents in the Computer Security area. Holds a degree and a MSc in Computer Science. Speaker at several IT events, related with Security and JavaScript.

@pedrofortuna | linkedin.com/in/pedrofortuna

Tomasz Wesołowski

Tomasz Wesolowski

Senior Software Developer at Codility. During the day, responsible for frontend code and API; after work a passionate gamer who never really grew out of the 90's titles.

@KosGD | kos.gd

Winners - Desktop

Poust

14th place Poust by Madmaw

Relink

15th place Relink by Daniel Cohen

    31-40. Fruit rev, R3V3RS3 IT, Glitchtris, Please die, rotatris, Grav Bot, Super Dragon Rescue, Riversed, Reverse and Try Again, Reverse Ground Battle
    41-50. Fantastic Monster Chronicles, Dutch Dredge, Anti-Paradox Run, Flappy Box, ParaTec Systems, Shapes Love Numbers, PAPERTRON, Drawbacks, Move my World, Eugor
    51-60. Roulette, Reversed Sandwich Maker, Squared Lines js13k Reversed, desreveR, Drake's quest 🏃, Bridge The Gap, Nova Runner, nbody, WooM, kfish

Winners - Mobile

Poust

6th place Poust by Madmaw

Relink

7th place Relink by Daniel Cohen

Cargo-72

8th place Cargo-72 by ElementalSystems

Winners - Server

Community Awards winners

Voted among the developers themselves.

Social Special winners

For the most popular games on the social networks.

Twitter Special

Facebook Special

Google+ Special

Prizes

Construct 2

1 × Construct 2 game engine business license

One Business license for Construct 2 game engine created by Scirra.

Playcanvas

10 × PlayCanvas Pro-5 account

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

Proto.io

1 × Proto.io Startup account

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

WebStorm

7 × WebStorm personal license

Seven personal licenses for the WebStorm JavaScript IDE created by the JetBrains team.

CodePen

3 × CodePen Pro account

Three CodePen Pro accounts with lots of cool features for 12 months.

NodeBB

5 × NodeBB hosting

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

Blossom.io

1 × Blossom.io Enterprise account for 12 months

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

Pusher

3 × Pusher $300 credit

Three promo codes worth $300 each for the Pusher services.

JSBin

JSBin Pro accounts, t-shirts and stickers

Two JSBin Pro accounts for life with t-shirt and stickers, six JSBin Pro for 6 months with stickers and ten stickers, all from Remy Sharp.

Firefox OS Flame

3 × Firefox OS Flame

Three Firefox OS Flame devices from Mozilla for the best mobile games, and three special custom Mozilla t-shirts.

JScrambler

3 × JScrambler license

Three JScrambler Starter Plan licenses for three months each.

Categories

There will be three different categories,
you can submit your game to any of them - it's up to you.

Prize

Desktop

Full power of the hardware.

Prize

Mobile

Mobile touch devices.

Prize

Server

Node.js multiplayer.

There will also be a Twitter, Facebook and Google+ Specials just like before,
and something new: Community Awards voted among all the participants.

Places

Desktop category

Top 15 games

  • 1st-3rd places: Isogenic Premium, Kendo UI Professional, WebStorm, PlayCanvas Pro-5, Gunslugs 1&2 and Heroes of Loot
  • 4th-7th places: Isogenic Premium, WebStorm parsonal, PlayCanvas Pro-5, Gunslugs, Gunslugs 2 and Heroes of Loot
  • 8th place: Isogenic Premium, PlayCanvas Pro-5, Gunslugs, Gunslugs 2 and Heroes of Loot
  • 9th-10th places: PlayCanvas Pro-5, Gunslugs, Gunslugs 2 and Heroes of Loot
  • 11th-15th places: Gunslugs, Gunslugs 2 and Heroes of Loot

Mobile category

Top 10 games

  • 1st-2nd places: Phaser Box2D Premium, CodePen Pro, Build an HTML5 Game, From Null to Full, The Curious Expedition, The Marvellous Miss Take
  • 3rd place: CodePen Pro, Build an HTML5 Game, From Null to Full, The Curious Expedition, The Marvellous Miss Take
  • 4th-5th places: From Null to Full HTML5 Game, The Curious Expedition, The Marvellous Miss Take
  • 6th-10th places: From Null to Full HTML5 Game, The Marvellous Miss Take

Server category

Top 5 games

  • 1st-3rd places: Pusher $300 credit, NodeBB hosting, The Curious Expedition
  • 4th-5th places: NodeBB hosting, The Curious Expedition

Social Specials

Twitter Specials (for the highest number of tweets)

  • 1st place: Construct 2 game engine business license, Making Money with HTML5 ebook
  • 2nd-5th places: Making Money with HTML5 ebook

Facebook Specials (for the highest number of likes)

  • 1st place: Proto.io Startup account, ImpactJS game engine
  • 2nd-5th places: ImpactJS game engine

Google+ Specials (for the highest number of +1's)

  • 1st place: Blossom.io Enterprise account for 12 months, Complete Mobile Game Development Course
  • 2nd-5th places: Complete Mobile Game Development Course

Community Awards

Top 25 entries (voted among developers themselves)

  • 1st-2nd places: JScrambler license, Elliot Quest game, A Wizard's Lizard game, JSBin Pro for life with t-shirt and stickers
  • 3rd place: JScrambler license, Elliot Quest game, A Wizard's Lizard game, JSBin Pro for 6 months with stickers
  • 4th-6th places: Elliot Quest game, A Wizard's Lizard game, JSBin Pro for 6 months with stickers
  • 7th-10th places: Elliot Quest game, A Wizard's Lizard game, JSBin Pro stickers
  • 11th-25th places: A Wizard's Lizard game

Firefox OS Special

Top 3 mobile entries (handpicked by Mozilla staff)

  • 1st-3rd places: Firefox OS Flame device plus special Mozilla Games t-shirt

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 .zip package should contain index.html file and when unzipped should work in the browser. Don't overcomplicate building the zip package, it should unpack on any platform without problems. You can use tools that minify JavaScript source code like JScrambler.

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 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.

Main theme - Reversed

The main theme of the competition in 2015 is the word 'Reversed'. It's highly advised to follow it in your game, because the judges will pay attention to that, but you can freely interpret the theme and implement it however you feel would be the best.

Deadline - 13th September 2015

The competition starts at 13:00 CEST, 13th August 2015 and ends at 13:00 CEST, 13th September 2015. 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 and be playable in at least two browsers: Firefox and Chrome. 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.

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's 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, though sending the same game as independent submissions targeting different platforms (for example separate builds for desktop and mobile) is forbidden.

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.

Time frames for voting, judging and announcing winners

The Social Specials contest will be held from the start of the compo on August 13th till the end of the judging on September 27th, winners will be announced on the same day right after it ends. The Community Awards voting among the participants will last for a week between September 13th and 20th, winners will be announced on September 21st. Judges will vote for the games during the two week period after the submission time ends: from September 13th till 27th, winners will be announced on September 28th.

Server category specific rules

Sandbox server
You can find the official sandbox server at js13kgames.github.io/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. You must not use this feature to store assets, like essential game methods, images, or other data. Use it to game history or user related data. If you cheat the 13k limit using this feature you will be disqualified.
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 js13kgames.github.io/js-game-server.
Is there any example? How do I develop my game using the sandbox server?
There's an examples folder with the Pong game. You can also check out the Readme for details on running the server.
I have more questions!
Feel free to send them to [email protected].

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: [email protected].
The other options include visiting our profiles on Twitter or Facebook and sending us the private message.