js13kGames Competition or How to Write a 13K Game

August 13 started The 13th js13kGames (JS13K) game jam for JavaScript web game developers. Participants have one month to write browser games that are no larger than 13 kilobytes when compressed to ZIP format. This year's JS13K theme is “Triskaidekaphobia” — the fear of the number “13.”

Path to Glory - last year's JS13K winner

Path to Glory – last year's JS13K winner

The jam is organized by a web game developer Andrzej Mazur and a studio for creating indie and mobile web games Enclave Games.

JS13K 2024 will feature five categories that may overlap, including browser-based desktop and mobile games, virtual reality and decentralized platform projects, and unfinished games.

WebXR games create using open source web frameworks A-Frame, Babylon.js, Three.js or PlayCanvas. Launched in 2021, the Decentralized category directed to study the decentralization aspect of web games. Participants will compete in four competitions: OP Guild , Avalanche, Thirdweb And Arcadia. This year will be the first for the Unfinished category, in which developers will be able to share the progress of creating their projects.

Winners will receive various prizes, including branded T-shirts, magnetic and laser discs, books, games and other attributes dedicated to the past JS13K, as well as a number of certificates.

Rules

As the name of the jam suggests, the project's code and game assets must be less than or equal to 13 KB in compressed size. The ZIP file must contain an index.html file in the top-level folder structure. Once unzipped, it must run in a browser. The organizers encourage developers to keep the ZIP file simple so that it can be unzipped on any platform. Developers can use tools that minify JavaScript source code.

Participants need to provide the organizers with two forms of their game. The first version requires minifying and zipping the project to fit the 13 KB limit, and the second version must be published on GitHub in a readable form with descriptive variable names and comments.

JS13K developers are prohibited from using libraries, images, and data files hosted on a server or services that provide any type of data. For example, Google Fonts are not allowed. Analytics and other statistics-collecting scripts are also prohibited. All game assets must comply with the package size limit, but the listed frameworks for WebXR games are not counted.

On September 13 after 14:00 Moscow time the competition ends. From that moment the organizers will stop accepting applications, but there may be exceptions.

JS13K participants must own the rights to every resource used in the game. Submitted projects will be published and available for everyone to view. The organizers encourage only new and original games to be submitted.

Projects must work and be playable in at least two browsers: Firefox and Chrome. However, the more compatible browsers, the better. The game can be developed by one person or a whole team. You can submit an application for participation at link. Participants are allowed to submit more than one game to the competition. Applications are processed within approximately two days.

Voting among participants will last three weeks from September 15 to October 4, with the winners announced on October 5. More than 20 subject matter experts will provide feedback on the games over the same three weeks. Their comments will also be published on October 5.

Competitions of previous years

Last year's JS13K was themed “The 13th Century”. The first place went to Remi Vanstillandt's game called Path GloryIn this medieval beat 'em up, players will have to fight through waves of enemies on their way to the final boss.

Dante

Dante

A year earlier, the competition was dedicated to the theme of “Death”. The winner was a puzzle Dante by Salvatore Previti. The 2021 JS13K competition focused on the theme of “Space”. Its winner was Ryan Malm with his space walking simulator Space Garden.

Space Garden

Space Garden

All works that have won awards since 2012 can be found at the links below. 2023, 2022, 2021, 2020, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012.

One of the 2021 JS13K participants Frank Force told more about my project Space Huggerswhich was awarded eighth place in the ranking of the best works of the year. In total, 223 games were submitted that year. For Force, the 2021 competition was already the third.

Space Huggers is a run and gun platformer with procedurally generated environments and pixel art. The project is inspired by games like Broforce, Metal Slug and Contra. Force said he created the game engine LittleJS from scratch in pure JavaScript. The project in question uses LittleJS.

Before creating Space Huggers and other projects for JS13K, the developer made over a thousand small programs. In 2018, Force won second place in the competition with the game Bounce Back. Two years later, his project NoteCraft won in the Audio and Innovation categories. Force later introduced the operating system OS13kwhich was awarded a special prize by JS13K. Force last entered JS13k in 2022 with Egg Time Rewind.

Force tried to make the LittleJS engine as compact as possible, but highly productive. The solution uses an object-oriented architecture, which makes it easy to create games. LittleJS uses WebGL to render a huge number of sprites at 60 frames per second. The ZzFX tool is responsible for creating sound effects. The input system supports keyboard, mouse, touch screen, and gamepad.

Broforce

Broforce

Space Huggers is indeed very similar to Free Lives' Broforce. The original came out in 2015, and its prototype Rambros made in one weekend for the Ludum Dare game jam, Force notes. He added that as part of his research for his game, he spent several hours playing both Broforce and its prototype, taking notes.

The developer chose to use procedurally generated levels to save space and ensure replayability. Instead of adding a lot of additional content, Form focused on creating a fun and polished core gameplay. To make things more challenging, the author decided to add four-player multiplayer to Space Huggers, the first such project on JS13K.

For his project, Force wanted to emulate the look of classic 16-bit games, so Space Huggers uses a pixel art style sprite sheet. Most of the tiles are 16×16 pixels, with a few smaller tiles being 8×8. The entire game sprite sheet is a 16-bit image measuring 128×48.

Space Huggers Sprite Sheet

Space Huggers Sprite Sheet

When designing the sprites for Space Huggers, Force used the Broforce sprite sheet to help him understand the character designs. However, in his game, he reduced the character animation frames to two. The protagonist of Space Huggers is inspired by Greedo from Star Wars.

The player has a classic platformer move set, including the ability to break blocks and climb walls by jumping. Force noted that one of the most challenging aspects to implement was the way the ladders interact.

The protagonist can use the multi-functional throw ability for dodging, short-term invulnerability, speed boosts, and other abilities. The main weapon is a pistol that kills most enemies with one shot and destroys objects and terrain in the level. The weapon has a limited range. The player also has access to three grenades.

All enemies use the same base code as the protagonist, so their AI works more like a bot than typical video game enemies. At a high level, the code sends input to a generic character class in the same way the player would. This approach allows for interesting and complex combat situations while reducing the amount of code required.

The enemy design is inspired by the Spartans from the Halo series. They all use the same sprite, but with different shades and visor colors. The enemies also have different abilities. There are also mini-bosses in the game.

Force used several objects that combine to implement complex behaviors, such as fire spreading. Some of these objects are capable of catching fire and setting nearby objects on fire. Other objects can explode, damaging and pushing nearby objects away, and setting more things on fire. There are also barrels of water in the game that can put out fires.

All of these objects use only three sprites: a crate, a barrel, and a slab. By using different shades and colors, Force was able to represent many different types of objects.

The main characters respawn via flags after interacting with them. The developer also included a radar system at the bottom of the screen. It shows where the enemies are in relation to the player.

To give structure to the level design, they have enemy bases that are made up of different rooms and follow a specific set of rules. This includes both the level geometry and the placement of enemies and objects. Force called this perhaps the most challenging part of the game.

Space Huggers uses a multi-layered sky system as a background. The parallax of the mountain landscape is generated by an algorithm that creates the landscape using a tiny piece of code. A gradient with moving stars across the sky emphasizes the feeling of being on another planet.

Some levels feature precipitation effects like rain and snow, which are a great way to showcase particle systems and collision physics, as well as add atmosphere, Force writes.

The sound is handled by the open-source ZzFX tool. It is a small, standalone sound effects player that generates audio samples from 20 parameters. In total, Space Huggers uses 11 different sound effects, and getting them to play correctly required a lot of tweaking.

Force shared that with Space Huggers, he has completely automated the build process. The developer created a BAT file for Windows that combines all the JS files together and runs Google Closure, Uglife, and Roadroller to convert the code. The script also combines the minified code into a single HTML file and archives the HTML using the Efficient Compression Tool.

Over the years Frank Force worked on the games Psi-Ops: The Mindgate Conspiracy, Red Faction: Guerrilla, Starhawk, Doom (2016) and Mafia III.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *