What can we learn from 800 games made for a jam, 13 kb each

Open Source Budapest meetup powered by Mozilla Hungary

Andrzej Mazur@end3rEnclave Games
Open Source Budapest meetup #23, Hungary, April 10th 2018

Andrzej Mazur

Andrzej Mazur

onGameStart 2012

onGameStart 2012

dev.end3r.com/2012/09/ongamestart-2012-the-aftermath/

Enclave Games

Enclave Games

enclavegames.com

js13kGames

js13kGames

js13kgames.com

Prizes

  • ~20.000 USD total in software
  • free t-shirt + gadget + shipping
  • fame and fortune

js13k t-shirts

13 kilobytes

 

"Limitations spawns creativity"

Improve skills and learn new tricks

 

github.com/js13kgames

48 hours

30 days

 

Eat, sleep, code, repeat.

"Size was never an actual problem."

Shuttle Power Dash

 

"I ran out of time
before I ran out of space."

Galactic Backfire, Blade Gunner

13 kb is A LOT

HTML

<style> body { margin: 0; background: black; ... } </style>
<canvas></canvas>
<script>
  document.title = "Blade Gunner";
  ...
</script>
Blade Gunner

Loading images

var i = new Image();
i.addEventListener('load', function() { // image can be drawn });
i.src = 'data:image/png;base64,iVBORw0KGgoAAAANS...RU5ErkJggg==');
Blade Gunner

Level data

Snake.UI = {
    food: [
       [       ],
       [ , ,1  ],
       [ ,1, ,1],
       [ , ,1  ]
    ]
};
Buggy Snake

Sounds

Snake.Sound.sounds = {
// Example sound - entering the TRON mode
enterTronMode: [
jsfxr([0,,0.0864,,0.4458,0.2053,,0.3603,,,,,,0.2349,,0.4484,,,1,,,,,0.5]),
jsfxr([0,,0.2012,,0.4803,0.2939,,0.326,,,,,,0.525,,0.6112,,,1,,,,,0.5]),
jsfxr([0,,0.2424,,0.2184,0.2631,,0.2023,,,,,,0.2315,,,,,1,,,,,0.5]),
jsfxr([0,,0.0429,,0.4426,0.5,,0.2284,,,,,,0.1798,,,,,1,,,,,0.5]),
jsfxr([1,,0.2311,,0.2188,0.2821,,0.0801,,,,,,,,,,,1,,,,,0.5])
]
};
Buggy Snake

Procedural content generation

Procgen

Lost in the Woods, Phosphorus Dating

Tools

js13kgames.github.io/resources

Setup

  • Microlibary - kontra
  • Artwork - pico8
  • Sound - jsfxr
  • Music - sonant-x
  • Minification - advzip

 
Galactic Backfire

Don't try this at home

  • Replacing Math.PI with a global variable named pi
  • Removing the end tags for HTML, BODY, HEAD, CANVAS
  • Removing/shortening string constants
  • No images, everything is rendered using primitives
  • Shortening class names in CSS
  • ...
  • Removed space in "GAME OVER" so it read "GAMEOVER"
 
Poust

Post mortems

js13kgames.github.io/resources/#posts2017

js13kGames

===

Enclave Games

===

Front-end

Scope

MMORPG

Lost In Labyrinth, Greeble

Working prototype

Prototype

LOSSST

Perfection or vanity

Perfection

Wizard Quest

If at first you don't succeed,

try again start something else

Captain Rogers

Captain Rogers

You suck

You suck

Know what you don't know

Knowledge

Have a plan

Have a plan

Keep It Simple, Stupid

Keep it simple
Keep calm and iterate
Version 2.0

Expose yourself

Expose

Be open to feedback

Feedback
Test

Deadline is your friend

Deadline

Focus and deliver

Focus and deliver

Get it done

Get it done

It can be a demo.

Juice it

Juicero

Show me the games!

js13kgames.com/entries

Summary

  1. KISS
  2. KISS
  3. KISS
KISS

Thanks!

 

 

end3r.com/slides/budapest-js13k

 

 

Andrzej Mazur@end3rEnclave Games

Ender Efka @end3r