awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com

JavaScript games directory

Ranking updated Sep 30, 2026

For best games in js, the first results are phaserjs/phaser (Phaser is a comprehensive 2D game engine built in JavaScript that runs directly in web browsers, featuring canvas rendering, a robust game loop, asset management, physics, and input support), mustache-dev/mario-kart-3.js (Mario-Kart-3.js is a browser-playable JavaScript racing game featuring WebGL canvas rendering, keyboard and mouse input handling, a game loop, collision detection, and vehicle physics, though it is a specific clone rather than a general-purpose game engine) and gabrielecirulli/2048 (This repository provides a fully browser-playable JavaScript puzzle game with client-side game loops and keyboard input handling, fitting the category even though it is a single concrete title rather than an engine or a diverse collection). photonstorm/phaser and babylonjs/babylon.js round out the shortlist. Compare the match explanations and check the project documentation against your requirements.

Explore open-source JavaScript games on GitHub, featuring arcade clones, puzzle titles, and web-based engines for developers.

JavaScript games directory

Find the best repos with AI.We'll search the best matching repositories with AI.
  • phaserjs/phaserphaserjs avatar

    phaserjs/phaser

    39,791View on GitHub↗

    Phaser is a comprehensive 2D game engine designed for building high-performance, interactive content that runs directly in web browsers. At its core, the engine utilizes a fixed-timestep simulation loop that decouples game logic from variable browser frame rates, ensuring consistent behavior across diverse hardware. It provides a robust framework for managing asset loading, physics, input, and audio, enabling the creation of complex, responsive visual experiences for both desktop and mobile devices. The engine distinguishes itself through a high-performance graphics pipeline that automaticall

    Phaser is a comprehensive 2D game engine built in JavaScript that runs directly in web browsers, featuring canvas rendering, a robust game loop, asset management, physics, and input support.

    JavaScriptGame LoopsSimulation Loops
    View on GitHub↗39,791
  • mustache-dev/mario-kart-3.jsmustache-dev avatar

    mustache-dev/Mario-Kart-3.js

    4,578View on GitHub↗

    Mario-Kart-3.js is a browser-based 3D racing simulation implemented in JavaScript. It utilizes a WebGL game engine to render three-dimensional race tracks and vehicle models directly within a web browser using graphics hardware. The simulation features a physics-based drifting and maneuver system for gaining speed boosts and a power item system for deploying competitive advantages during races. The project encompasses a vehicle control system that maps keyboard and mouse inputs to steering and acceleration, alongside a simulation engine that manages collision detection and scripted item logi

    Mario-Kart-3.js is a browser-playable JavaScript racing game featuring WebGL canvas rendering, keyboard and mouse input handling, a game loop, collision detection, and vehicle physics, though it is a specific clone rather than a general-purpose game engine.

    JavaScriptGame LoopsCollision Detection
    View on GitHub↗4,578
  • gabrielecirulli/2048gabrielecirulli avatar

    gabrielecirulli/2048

    13,276View on GitHub↗

    This is a browser-based puzzle game and HTML5 JavaScript application where players slide and merge numbered tiles on a grid to reach a target value. The game runs entirely on the client side, using web standard technologies to handle game logic and rendering directly in the browser. The application is a mobile-compatible web app that translates touch-swipe gestures and keyboard inputs into directional commands. It includes a local storage score tracker to save and maintain a record of high scores across different sessions.

    This repository provides a fully browser-playable JavaScript puzzle game with client-side game loops and keyboard input handling, fitting the category even though it is a single concrete title rather than an engine or a diverse collection.

    JavaScriptWeb-Based
    View on GitHub↗13,276
  • photonstorm/phaserphotonstorm avatar

    photonstorm/phaser

    39,800View on GitHub↗

    Phaser is a cross-platform 2D web game engine and framework designed for creating interactive experiences that run on desktop and mobile web browsers. It serves as a GPU-accelerated rendering library and WebGL graphics engine for building two-dimensional games using HTML5 Canvas and WebGL. The engine features a dual-backend rendering pipeline that allows developers to switch between rendering paths. It distinguishes itself through high-performance graphics capabilities, including GPU-driven sprite batching for large-scale image management, a dynamic lighting system with self-shadows, and the

    Phaser is an established cross-platform 2D web game engine designed entirely for JavaScript and TypeScript browser environments, providing canvas rendering, a game loop, input support, and robust graphics features.

    JavaScriptGame Development2D Game Frameworks2D Graphics Frameworks
    View on GitHub↗39,800
  • babylonjs/babylon.jsBabylonJS avatar

    BabylonJS/Babylon.js

    25,652View on GitHub↗

    Babylon.js is a JavaScript game engine and real-time graphics renderer designed for creating interactive three-dimensional visuals and applications. It functions as a web-based 3D framework and WebGL engine that enables the deployment of high-performance 3D content across various web platforms and devices. The project provides tools for web-based 3D game development, real-time graphics rendering, and the creation of browser-based interactive visualizations. It also supports the development of WebXR virtual and augmented reality experiences using standard web technologies. The framework cover

    Babylon.js is a full-featured TypeScript 3D game engine that runs natively in the browser, providing canvas rendering, a game loop, and input support for creating interactive web games.

    TypeScriptWeb-Based
    View on GitHub↗25,652
  • max-mapper/voxel-enginemax-mapper avatar

    max-mapper/voxel-engine

    1,311View on GitHub↗

    This project is a browser-based framework designed for building three-dimensional, block-based games and interactive simulations. It functions as a JavaScript library that provides the core infrastructure for rendering voxel environments, managing dynamic terrain data, and executing real-time physics within a web-based context. The engine distinguishes itself through a high-performance WebGL rendering pipeline that utilizes texture-atlas material mapping to consolidate visual assets and reduce draw calls. It manages large-scale environments by dividing the world into discrete, chunk-based spa

    This repository provides a JavaScript-based voxel game engine featuring WebGL rendering, chunk management, and physics simulation designed for browser environments, though it focuses specifically on 3D block building rather than general 2D arcade games.

    JavaScriptCollision DetectionFixed-Timestep Loops
    View on GitHub↗1,311
  • iamkun/tower_gameiamkun avatar

    iamkun/tower_game

    1,596View on GitHub↗

    Tower Game is a browser-based JavaScript engine designed for building physics-driven stacking simulations. It provides a framework for developing interactive arcade-style challenges where players align blocks to build structures, with core systems that manage collision logic, health tracking, and precision-based scoring. The engine distinguishes itself through a modular architecture that allows for deep customization of gameplay mechanics. Developers can inject custom functions to override default movement speeds, oscillation angles, and scoring triggers at runtime. Additionally, the system s

    This repository provides a browser-playable JavaScript game engine with canvas rendering, a game loop, and physics simulation tailored for arcade stacking games.

    JavaScriptGame Loops
    View on GitHub↗1,596
  • alexnisnevich/untrustedAlexNisnevich avatar

    AlexNisnevich/untrusted

    4,654View on GitHub↗

    Untrusted is a web-based programming puzzle and meta-programming game where progress is achieved by rewriting the active JavaScript source code while the application is running. It functions as a code-editing adventure game that combines programming education with puzzle gameplay. The experience centers on real-time logic modification, requiring players to edit scripts to change environmental rules, manipulate game behavior, and resolve puzzle-based objectives. This interactive code editing allows players to overwrite active functions and variables to overcome obstacles. The project includes

    Untrusted is an open-source browser-based puzzle game built in JavaScript that features a game loop and interactive script modification, making it a fitting example of a web game even if it focuses more on code-editing puzzles than traditional arcade mechanics.

    JavaScriptGame Loops
    View on GitHub↗4,654
  • pmndrs/racing-gamepmndrs avatar

    pmndrs/racing-game

    2,203View on GitHub↗

    This project is a browser-based game engine and implementation of a racing game built using a declarative component architecture. It provides a framework for constructing interactive three-dimensional environments and game objects by mapping hierarchical data structures to a persistent scene graph. The engine distinguishes itself by synchronizing game logic with high-performance rendering through a centralized data store. This approach ensures that physics calculations, player progress, and environmental variables remain consistent with the visual output of the scene. Developers can compose c

    This repository provides a browser-based 3D game engine and racing game implementation written in TypeScript, featuring canvas rendering, a game loop, and state management suitable for web play.

    TypeScriptGame Loop Updates
    View on GitHub↗2,203
  • playcanvas/engineplaycanvas avatar

    playcanvas/engine

    16,051View on GitHub↗

    This project is a WebGL 3D game engine and comprehensive suite of tools for rendering high-performance 3D graphics and interactive scenes in the browser using WebGL and WebGPU. It provides a dedicated WebXR framework for building augmented and virtual reality experiences that run directly in a web browser. The engine includes a specialized Gaussian splatting renderer for displaying 3D point-cloud data to create photorealistic environmental captures. It utilizes a glTF asset pipeline to load and stream compressed 3D models and textures for efficient asset delivery. The system covers real-time

    PlayCanvas is a powerful WebGL and WebGPU 3D game engine that runs entirely in the browser with canvas rendering, a game loop, input handling, asset loading, and physics, aligning well with your search for browser-based JavaScript games and engines.

    JavaScriptInput Handling
    View on GitHub↗16,051
  • hiloteam/hilohiloteam avatar

    hiloteam/Hilo

    5,932View on GitHub↗

    Hilo is an HTML5 game engine for building 2D games that run across browsers and devices. It renders graphics through Canvas, DOM, or WebGL backends, automatically selecting the best option for the target environment. The engine provides a complete game development solution with sprite, skeletal, and particle animation, along with a texture atlas system for efficient image loading and rendering. The framework distinguishes itself through its integration of the DragonBones skeletal animation engine, which drives bone-based character movement without frame-by-frame sprites, and its Chipmunk phys

    Hilo is an HTML5 2D game engine with canvas and WebGL rendering, built-in asset loading, and physics support that lets you create browser-playable games in JavaScript, though it is a game development framework rather than a finished game itself.

    JavaScriptCanvas RenderingCollision Detection
    View on GitHub↗5,932
  • melonjs/melonjsmelonjs avatar

    melonjs/melonJS

    6,319View on GitHub↗

    melonJS is a lightweight HTML5 game engine for building 2D games in the browser using JavaScript. It provides a complete framework for sprite animation, tilemap loading, physics simulation, input handling, and audio playback, with a unified rendering system that automatically switches between WebGL and Canvas2D backends without code changes. The engine distinguishes itself through several integrated capabilities. It features a per-sprite shader pipeline for custom fragment shader effects, a SAT-based collision engine with swappable physics adapters (including built-in SAT, Matter.js, and Plan

    MelonJS is a lightweight HTML5 2D game engine that supports canvas rendering, game loops, input handling, and physics simulations, fitting the requirement for browser-based JavaScript game development.

    JavaScriptCollision Detection
    View on GitHub↗6,319
  • mozilla/browserquestmozilla avatar

    mozilla/BrowserQuest

    9,366View on GitHub↗

    BrowserQuest is a WebSocket multiplayer game engine and real-time state synchronization tool. It functions as a web-based game server designed to manage concurrent connections and broadcast updates to maintain a consistent shared world state between a central server and distributed web clients. The project enables real-time multiplayer gaming and browser-based game development by implementing low-latency data exchange. It focuses on game state synchronization to ensure that multiple players interacting within the same environment see the same actions and world states simultaneously. The syst

    BrowserQuest is a classic browser-based multiplayer game that runs entirely in JavaScript with client rendering and game loop mechanics, fitting the requested game genre well despite its abandoned status.

    JavaScriptReal-Time Multiplayer FrameworksAuthoritative Game Logic HostsBrowser-Based Engines
    View on GitHub↗9,366
  • killedbyapixel/littlejsKilledByAPixel avatar

    KilledByAPixel/LittleJS

    4,127View on GitHub↗

    LittleJS is a lightweight HTML5 2D game engine designed for building web games using Canvas and WebGL without external dependencies. It integrates a WebGL sprite renderer, a 2D physics engine for arcade-style collisions and rigid-body dynamics, and a grid-based A* pathfinding system for entity navigation. The engine is distinguished by its procedural audio synthesizer, which generates music and sound effects at runtime using parameter arrays to minimize file sizes. It also features a comprehensive graphics pipeline that supports custom fragment-shader post-processing and a dynamic 2D lighting

    LittleJS is a lightweight JavaScript game engine built for the browser that provides canvas and WebGL rendering, physics, and asset handling, making it a fitting tool for creating web games even though it operates as an engine framework rather than a finished game.

    JavaScript2D Game Engines2D Rigid Body Physics EnginesGame Frameworks
    View on GitHub↗4,127
  • craftyjs/craftycraftyjs avatar

    craftyjs/Crafty

    3,580View on GitHub↗

    JavaScript Game Engine

    Crafty is a JavaScript game engine that provides a component-based entity system for building browser games, though you will need to assemble your own asset loader and physics integrations since it focuses primarily on the core architecture and rendering.

    JavaScriptGame EnginesGame Engines and FrameworksGame Frameworks
    View on GitHub↗3,580
  • abagames/111-one-button-games-in-2021abagames avatar

    abagames/111-one-button-games-in-2021

    87View on GitHub↗

    I have created 111 one-button games in 2021

    This repository provides a large collection of browser-playable arcade games written entirely in JavaScript, directly fulfilling the core interest in small open-source web games.

    JavaScriptArcade and Action
    View on GitHub↗87
  • arturkot/the-house-gamearturkot avatar

    arturkot/the-house-game

    213View on GitHub↗

    Simple adventure game written in HTML, CSS and JS.

    This simple adventure game is playable directly in the browser using JavaScript and HTML, though it lacks the advanced features like a physics engine or asset loader that a full engine would have.

    JavaScriptCasual and Misc
    View on GitHub↗213
  • aeon0/multiplayer-babylon-js-gameaeon0 avatar

    aeon0/multiplayer-babylon-js-game

    114View on GitHub↗

    You can open the Demo in two different browser tabs, that way you spawn two different players into the world Demo here: http://185.82.21.82:8700

    This project is a browser-playable multiplayer game built in TypeScript, though it focuses more on networking and 3D Babylon.js integration than a comprehensive general game engine.

    TypeScriptProjects
    View on GitHub↗114
  • chvin/react-tetrischvin avatar

    chvin/react-tetris

    8,717View on GitHub↗

    This is a browser-based Tetris game built with React, using Redux and Immutable.js to manage all game state in a single immutable store. The application renders the game board, next-block preview, and score display as React components, with state transitions that are predictable and support time-travel debugging through the Redux DevTools Extension. The game distinguishes itself through several integrated capabilities. It automatically adapts between keyboard and touch controls based on the user's input device, with configurable repeat rates for responsive gameplay. A persistence layer serial

    This browser-based Tetris game runs entirely in JavaScript with React rendering and keyboard and touch support, making it a playable arcade project though it lacks a full game engine or physics system.

    JavaScriptGame ImplementationsPuzzle GamesComponent-Based Rendering
    View on GitHub↗8,717
  • basicallydan/skifree.jsbasicallydan avatar

    basicallydan/skifree.js

    553View on GitHub↗

    :ski: The classic PC Game SkiFree, but in JS.

    This repository is a faithful JavaScript port of the classic SkiFree game, offering a browser-playable arcade experience that fits the target category, though it lacks an explicit built-in physics engine or asset loader.

    JavaScriptArcade and Action
    View on GitHub↗553
  • ivan-kleshnin/tetris-gameivan-kleshnin avatar

    ivan-kleshnin/tetris-game

    16View on GitHub↗

    Classic tetris game implemented in CycleJS. Development in progress.

    This repository provides a browser-playable Tetris game implemented in JavaScript using Cycle.js, though it represents a specific clone rather than a comprehensive game engine.

    JavaScriptExample Applications
    View on GitHub↗16
Compare the top 10 at a glance
RepositoryStarsLanguageLicenseLast push
phaserjs/phaser39.8KJavaScriptMITJun 10, 2026
mustache-dev/mario-kart-3.js4.6KJavaScript—Dec 26, 2025
gabrielecirulli/2048
13.3K
JavaScript
MIT
Oct 24, 2024
photonstorm/phaser39.8KJavaScriptMITJun 17, 2026
babylonjs/babylon.js25.7KTypeScriptApache-2.0Jun 16, 2026
max-mapper/voxel-engine1.3KJavaScriptBSD-3-ClauseDec 8, 2017
iamkun/tower_game1.6KJavaScriptMITAug 29, 2025
alexnisnevich/untrusted4.7KJavaScript—May 31, 2025
pmndrs/racing-game2.2KTypeScriptMITFeb 23, 2023
playcanvas/engine16.1KJavaScriptMITJun 16, 2026

Related searches

  • a javascript library for building browser games
  • an open source game for local play
  • a JavaScript engine for browser games
  • a game engine for developing iOS apps
  • Game development engine
  • an open source clone of classic games
  • a python library for game development
  • a comprehensive collection of JavaScript development tools