All Projects → playcanvas → Engine

playcanvas / Engine

Licence: mit
Fast and lightweight JavaScript game engine built on WebGL and glTF

Programming Languages

javascript
184084 projects - #8 most used programming language
GLSL
2045 projects

Projects that are alternatives of or similar to Engine

Babylon.js
Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
Stars: ✭ 15,479 (+124.66%)
Mutual labels:  game-development, game-engine, webgl, webgl2, webvr, webxr
Melonjs
a fresh & lightweight javascript game engine
Stars: ✭ 3,721 (-45.99%)
Mutual labels:  game-development, game-engine, gamedev, webgl, webgl2
Nunustudio
Web powered cross-platform 3D, WebXR game engine.
Stars: ✭ 1,302 (-81.1%)
Mutual labels:  game-engine, webgl, webvr, webxr
Exokit
Native VR/AR/XR engine for JavaScript 🦖
Stars: ✭ 809 (-88.26%)
Mutual labels:  webgl, virtual-reality, webvr, webxr
Three.js
JavaScript 3D Library.
Stars: ✭ 78,237 (+1035.52%)
Mutual labels:  webgl, webgl2, virtual-reality, webxr
Networked Aframe
A web framework for building multi-user virtual reality experiences.
Stars: ✭ 803 (-88.35%)
Mutual labels:  game-development, virtual-reality, webvr, webxr
Unity Webxr Export
Develop and export WebXR experiences using Unity WebGL
Stars: ✭ 130 (-98.11%)
Mutual labels:  webgl, virtual-reality, webvr, webxr
Ashes
WebGL2.0 3D Engine & ECS & RayTracing
Stars: ✭ 191 (-97.23%)
Mutual labels:  game-engine, webgl, webgl2, gltf
Glas
WebGL in WebAssembly with AssemblyScript
Stars: ✭ 278 (-95.97%)
Mutual labels:  game-development, game-engine, gamedev, webgl
Lovr
Lua Virtual Reality Engine
Stars: ✭ 743 (-89.22%)
Mutual labels:  game-engine, gamedev, virtual-reality, webxr
Cpp 3d Game Tutorial Series
C++ 3D Game Tutorial Series is a YouTube tutorial series, whose purpose is to help all those who want to take their first steps in the game development from scratch.
Stars: ✭ 400 (-94.19%)
Mutual labels:  game-development, game-engine, gamedev
Game
⚔️ An online JavaScript 2D Medieval RPG.
Stars: ✭ 388 (-94.37%)
Mutual labels:  game-development, game-engine, gamedev
Unity2d Components
A constantly evolving array of Unity C# components for 2D games, including classes for pixel art cameras, events & messaging, saving & loading game data, collision handlers, object pools, and more.
Stars: ✭ 375 (-94.56%)
Mutual labels:  game-development, game-engine, gamedev
Ncine
A cross-platform 2D game engine
Stars: ✭ 372 (-94.6%)
Mutual labels:  game-development, game-engine, gamedev
Spector.js
Explore and Troubleshoot your WebGL scenes with ease.
Stars: ✭ 599 (-91.31%)
Mutual labels:  webgl, webgl2, webvr
Rizz
Small C game development framework
Stars: ✭ 428 (-93.79%)
Mutual labels:  game-development, game-engine, gamedev
Avg Core
A Future-oriented Adventure Game Framework based on React & Pixi.js. Docs: https://avgjs.github.io/docs/
Stars: ✭ 740 (-89.26%)
Mutual labels:  game-development, game-engine, webgl
Tetra
🎮 A simple 2D game framework written in Rust
Stars: ✭ 492 (-92.86%)
Mutual labels:  game-development, game-engine, gamedev
Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (-90.49%)
Mutual labels:  game-development, game-engine, gamedev
Glide
Game engine for making 2d games on iOS, macOS and tvOS, with practical examples and tutorials
Stars: ✭ 353 (-94.88%)
Mutual labels:  game-development, game-engine, gamedev

PlayCanvas WebGL Game Engine

Docs | Examples | Forum | Blog

PlayCanvas is an open-source game engine. It uses HTML5 and WebGL to run games and other interactive 3D content in any mobile or desktop browser.

NPM version Minzipped size Average time to resolve an issue Percentage of issues still open Twitter

English 中文 日本語

Project Showcase

Many games and apps have been published using the PlayCanvas engine. Here is a small selection:

Seemore After The Flood Casino
Swooop Master Archer Flappy Bird
Car Star-Lord Global Illumination

You can see more games on the PlayCanvas website.

Users

PlayCanvas is used by leading companies in video games, advertising and visualization such as:
Animech, Arm, BMW, Disney, Facebook, Famobi, Funday Factory, IGT, King, Miniclip, Leapfrog, Mojiworks, Mozilla, Nickelodeon, Nordeus, NOWWA, PikPok, PlaySide Studios, Polaris, Product Madness, Samsung, Snap, Spry Fox, Zeptolab, Zynga

Features

PlayCanvas is a fully featured game engine.

  • 🧊 Graphics - Advanced 2D + 3D graphics engine built on WebGL 1 & 2.
  • 🏃 Animation - Powerful state-based animations for characters and arbitrary scene properties
  • ⚛️ Physics - Full integration with 3D rigid-body physics engine ammo.js
  • 🎮 Input - Mouse, keyboard, touch, gamepad and VR controller APIs
  • 🔊 Sound - 3D positional sounds built on the Web Audio API
  • 📦 Assets - Asynchronous streaming system built on glTF 2.0, Draco and Basis compression
  • 📜 Scripts - Write game behaviors in Typescript or JavaScript

Usage

Here's a super-simple Hello World example - a spinning cube!

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>PlayCanvas Hello Cube</title>
    <meta name='viewport' content='width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no' />
    <style>
        body {
            margin: 0;
            overflow: hidden;
        }
    </style>
    <script src='https://code.playcanvas.com/playcanvas-stable.min.js'></script>
</head>
<body>
    <canvas id='application'></canvas>
    <script>
        // create a PlayCanvas application
        const canvas = document.getElementById('application');
        const app = new pc.Application(canvas);

        // fill the available space at full resolution
        app.setCanvasFillMode(pc.FILLMODE_FILL_WINDOW);
        app.setCanvasResolution(pc.RESOLUTION_AUTO);

        // ensure canvas is resized when window changes size
        window.addEventListener('resize', () => app.resizeCanvas());

        // create box entity
        const box = new pc.Entity('cube');
        box.addComponent('model', {
            type: 'box'
        });
        app.root.addChild(box);

        // create camera entity
        const camera = new pc.Entity('camera');
        camera.addComponent('camera', {
            clearColor: new pc.Color(0.1, 0.1, 0.1)
        });
        app.root.addChild(camera);
        camera.setPosition(0, 0, 3);

        // create directional light entity
        const light = new pc.Entity('light');
        light.addComponent('light');
        app.root.addChild(light);
        light.setEulerAngles(45, 0, 0);

        // rotate the box according to the delta time since the last frame
        app.on('update', dt => box.rotate(10 * dt, 20 * dt, 30 * dt));

        app.start();
    </script>
</body>
</html>

Want to play with the code yourself? Edit it on CodePen.

How to build

Ensure you have Node.js installed. Then, install all of the required Node.js dependencies:

npm install

Now you can run various build options:

Command Description Outputs
npm run build Build release, debug and profiler engines build\playcanvas[.dbg/.prf].js
npm run tsd Build engine Typescript bindings build\playcanvas.d.ts
npm run docs Build engine API reference docs docs

Pre-built versions of the engine are also available.

Latest development release (head revision of master branch):

Latest stable release:

Specific engine versions:

Generate Source Maps

To build the source map to allow for easier engine debugging, you can add -- -m to any engine build command. For example:

npm run build -- -m

This will output to build/output/playcanvas.js.map

Note: The preprocessor is ignored when generating the source map as it breaks the mapping. This means that all debug and profiling code is included in the engine build when generating the source map.

How to run tests

PlayCanvas uses of Karma for unit testing. There are two ways of running the tests:

Command Description
npm run test Runs unit tests on a built playcanvas.js
npm run test:watch Re-runs unit tests when changes are detected - open http://localhost:9876/debug.html

PlayCanvas Editor

The PlayCanvas Engine is an open source engine which you can use to create HTML5 apps/games. In addition to the engine, we also make the PlayCanvas Editor:

Editor

For Editor related bugs and issues, please refer to the Editor's repo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].