Menu

Tree [e1aa49] master /
 History

HTTPS access


File Date Author Commit
 editor 2026-01-10 jay24120 jay24120 [ccb051] update
 public 2026-01-10 jay24120 jay24120 [ccb051] update
 src 2026-01-10 jay24120 jay24120 [3485c7] update
 src-tauri 2026-01-11 jay24120 jay24120 [e1aa49] add the desktop support with tauri
 vite 2026-01-11 jay24120 jay24120 [e1aa49] add the desktop support with tauri
 .gitignore 2026-01-07 jay24120 jay24120 [7b2265] initial commit of source code
 LICENSE 2026-01-07 jay24120 jay24120 [7b2265] initial commit of source code
 README.md 2026-01-08 jay24120 jay24120 [e15cad] update readme
 examples.html 2026-01-10 jay24120 jay24120 [3c4313] add collision to car-arcade demo
 game.html 2026-01-10 jay24120 jay24120 [11d9b9] somes fix
 index.html 2026-01-07 jay24120 jay24120 [7b2265] initial commit of source code
 package-lock.json 2026-01-11 jay24120 jay24120 [e1aa49] add the desktop support with tauri
 package.json 2026-01-11 jay24120 jay24120 [e1aa49] add the desktop support with tauri
 tsconfig.json 2026-01-07 jay24120 jay24120 [7b2265] initial commit of source code
 tsconfig.types.json 2026-01-07 jay24120 jay24120 [7b2265] initial commit of source code
 vite.config.ts 2026-01-07 jay24120 jay24120 [7b2265] initial commit of source code

Read Me

Quick Start

Once the project is created, follow the instructions to install dependencies and start the dev server:

cd arcadegpu
npm install
npm run dev

You should now have your ArcadeGPU project running!
A homepage let you choose between your game screen and a set of examples.
The game screen is located in src/game/main.js.
The default scene of the game is located in public/scene.blend, open this file with the portable version
of Blender inside editor folder to navigate the scene.

When you are ready to ship your app to production, run the following:

npm run build:game

This will create a production-ready build of your app in the project's ./dist directory.

Features

  • 🧱 Core

    • Maths
    • Tweening
    • Events
    • Curves
    • Quaternions
    • Object pooling
    • Physics primitives
  • 👾 2D

    • Static sprite
    • Animated sprite
    • Isometric animated tilemap
    • Orthographic animated tilemap
    • Particles
    • Rendering filters
    • Motion lines
  • 📐 2D Physics

    • BoundingRect
    • Tilemap box collider with slopes support
    • Box2D built-in
  • 🧊 3D

    • Debug shapes
    • Static mesh
    • Shader animation mesh
    • Static sprite
    • Animated sprite
    • Motion lines
    • Billboarding
    • Cubemap skybox
    • Particules
    • Flares
    • Fog
    • Vertex colorization
    • Decals
    • Shadow mapping
    • Shadow volume
    • Multi-viewport
    • Camera orbit
    • Camera WASD
    • Auto mipmap
    • Normal smoothing
    • Post rendering: many textures on input like depth/normal/ids
    • Rendering filters
    • Customizable shaders
    • Handle custom channels rendering: CH1 & CH2
  • 📐 3D Physics

    • BoundingBox
    • BoundingCylinder
    • Walkmesh
    • Hitmesh
    • Ray-testing
    • Jolt built-in
  • 💥 3D Material

    • Phong reflection
    • Dissolve texture map
    • Displacement texture map
    • Diffuse map
    • Specular map
    • Emissive map
    • Normal map
    • Env map
    • Toon map
    • Textures scroll: multi-target
    • Flipbook UV
    • Specular shininess
    • Emissive intensity
    • Normal intensity
    • Facing blending
    • Secondary texture: with mix/mul blend mode
    • Gouraud shading (PSX-style)
    • Vertex jittering (PSX-style)
  • 🌞 3D Light

    • Directional light
    • Point lights: 64 lights
    • Spot lights: 16 lights
  • 🖼️ 3D Post-processing

    • Outline
    • Hardware dithering (PSX-style)
    • Pixelation (PSX-style)
    • Color depth limiting (PSX-style)
  • 🎮 Input

    • Action mapping
    • Gamepad, keyboard and mouse support
  • 🧠 AI

    • A* for 2D/3D with graph and grid
    • Djikstra graph
    • Min-max with alpha-beta pruning
  • 📺 Screen

    • Navigate between different view of your game
    • Resources pre-loading
  • 📜 Scripts

    • Load script from json file
    • Register async command function and call-it from json file
    • Manual jump to part of the script
    • Command primitives like: WAITPAD, GOTO, GOTO_IF, EXEC_IF, VAR_SET, VAR_ADD, VAR_SUB, DELAY
  • 🔊 Sound

    • Handle sounds by groups
    • Play multiple sounds at same time
  • 🌳 Tree

    • 2D binary space partition
    • 3D binary space partition
  • 🎨 UI

    • Focus/unfocus widgets
    • Fade in/out
    • Widget architecture
  • 🖍️ UI Widgets

    • Dialog + choices
    • Dialog only
    • Print long text
    • Description list
    • Virtual keyboard
    • Slider
    • Menu base
    • Menu list view
    • Menu text
    • Prompt
    • Sprite
    • Text
    • UIInput
  • 🌆 DNA

    • ECS architecture implementation