The brilliant arcade game Defender now playable inside the favicon of your browser! The idea was to push the concept of generated favicons far and beyond and pack a thrilling retro shooter in 16×16 pixels.
DEFENDER of the what ?
DEFENDER of the favicon is a JavaScript remake of Eugene Jarvis' brilliant arcade game Defender written by Mathieu 'p01' Henri and inspired by Scott Schiller's experiment with generated favicons VU meter.
The idea was to push the concept of generated favicons further and pack a thrilling retro shooter in 16×16 pixels using JavaScript, canvas and data: URIs.
Gameplay & Controls
The menace come from above! Protect the humanoid population from the waves of aliens coming to abduct them. Thankfully the shield of your Defender can take a few hit.
Controls
- N to shoot or start a game
- WASD or the arrow keys to move your Defender over the humanoid city
Behind the scene
DEFENDER of the favicon was done in 3 nights, from start to finish, in the summer 2008. Each frame of the game is generated on the fly in JavaScript into a 16×16 canvas element, then converted to a 32bits PNG image and used in place of the favicon.
The core of the game act as a state machine. Notice a few details such as the pause when this tab is not focused, and the resuming and game over transitions.
The game logic isn't really complex but remains true to the original Defender and provides enough action for 16×16 pixels.
The original game mechanics would make Defender of the favicon insanely difficult. Therefore a few adjustments were done : none of the enemies fire at you, your Defender got upgraded with a shield, and finally the Landers do not mutate into unstoppable war machines after abducting a humanoid but wander in your general direction.
Feedback
The feedback to Defender of the favicon has been overwhelming. It was all over the place: Boing Boing, Laughing Squid, Digg, Reddit, Kotaku, Youtube, Ajaxian, IDEAxIDEA, ... And it is the highest rated original JavaScript production on Pouet.
Last words before blasting off
I tried to stay away from my usual size optimizations experiments, but I guess this little game still falls in that category. One day I will make something BIG. One day.
Other recent projects
There are many experiments and projects like DEFENDER OF THE FAVICON to discover other here.
OUTER_M2 OUTER_M2: EXPLODING NEUTRINOS, a smashing JavaScript demo for the 1024 bytes demo competition at the Assembly 2019.
WE DON'T MAKE MISTAKES AT DEVONE 2019 Giving the closing keynote DEV ONE 2019, held on April 11 in Linz, Austria was absolutely fantastic. The conference was very well organized with one track, 11 talks about "scale" and 600 wonderful delegates. I learnt so much that day, got confirmation for some good practices but also learnt about many opportunities to improve our work. Also it was a pleasure to meet new people and see familiar faces among the organizers and attendees from Script'17.
MUSIC FOR TINY AIRPORTS AT WEB AUDIO CONFERENCE The Web Audio Conference 2018, held in September 19-21 in Berlin was a great mix of researchers, web developers, artists and performers presenting their projects. I had the chance to provide a deep dive into music for tiny airports, explaining how to generate hours and hours of music in a handful of bytes.
FRONTFEST MOSCOW It was an honour to be invited to Fronfest Moscow 2017 with the little family to give my first workshop; implementing a Twin-stick shooter using ES6 and Canvas, and to continue my CODE🎙ART series of talks + live coding aiming to inspire new web developer artists.
BLCK4777 Winning 1kb intro at Assembly 2015, BLCK4777 is a JavaScript explosion of light and triangles in 1023 bytes
SUDOKU SOLVER Solves a Sudoku grid using magic, recursion, and 140bytes of brute force.
MANDELBROT TRACER Possibly the smallest Mandelbrot tracer ever in JavaScript: 101 bytes
TUNNEX Ascii art tunnel + Scroll text: The first multi-effect 256b production in JavaScript
URYA A sweet text mode 64kb intro on PC, written in PASCAL and showed at the WIRED'96 demoparty where it ranked 4th.
Let's talk
Don't be shy; get in touch by mail, twitter, github, linkedin or pouet if you have any questions, feedback, speaking, workshop or performance opportunity.