Giter Site home page Giter Site logo

rlugojr / engine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from playcanvas/engine

0.0 2.0 0.0 49.14 MB

3D WebGL game engine with online toolset.

Home Page: https://playcanvas.com/

License: MIT License

JavaScript 96.08% GLSL 3.24% HTML 0.48% CSS 0.20%

engine's Introduction

PlayCanvas

PlayCanvas WebGL Game Engine

PlayCanvas is an open-source game engine. It uses HTML5 and WebGL to run games and other interactive 3D content in all modern browsers without the need for a plugin.

Project Showcase

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

After The Flood Master Archer Disney: Hour of Code WebVR Lab
TANX Swooop Flappy Bird Virtual Voodoo
Space Base Sponza Runtime Lightmaps Star-Lord Orange Room VR
Car Steampunk Slots Casino Seemore

You can see more games on the PlayCanvas website.

Users

PlayCanvas Engine and Tools been used by leading companies in game development, automotive, digital agencies and more. Some of them are:
Disney, King, Zynga, Miniclip, Nickelodeon, Leapfrog, IGT, ARM, Samsung, Mozilla, Facebook

Features

The PlayCanvas Engine is a fully featured 3D game engine.

  • Graphics
    • WebGL-based 3D renderer
    • Physically based rendering (PBR)
    • Directional, point and spot lights (all of which can cast shadows)
    • Runtime Lightmap baking
    • Static and skinned meshes
    • GPU Particle engine with editor
    • PostFX library: bloom, edge detect, FXAA, vignette, etc
    • Seamless default material support from Maya, 3DS Max, Blender, etc.
    • Full model export pipeline from Maya, 3DS Max, Blender, etc via Assets User Manual
  • Collision & Physics
    • Full integration with 3D rigid-body physics engine ammo.js
  • Audio
    • 3D Positional audio via Web Audio API
  • Resource Loading
    • Simple and powerful resource loading
    • Streaming of individual assets
    • Asset Variants - loads compressed textures (DXT, PVR, ETC1) based on platform support
  • Entity / Component System
    • Built-in components: model, sound, animation, camera, collision, light, rigidbody, script, particlesystem
  • Scripting system
    • Write game behaviours by attaching JavaScript to game entities
    • Live code hot-swap enables rapid iteration
  • Input
    • Mouse, Keyboard, Touch, Gamepad support, VR

Usage

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

<script>
    // Create a PlayCanvas application
    var canvas = document.getElementById("application-canvas");
    var app = new pc.Application(canvas, {});
    app.start();

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

    // Create box entity
    var cube = new pc.Entity();
    cube.addComponent("model", {
        type: "box"
    });

    // Create camera entity
    var camera = new pc.Entity();
    camera.addComponent("camera", {
        clearColor: new pc.Color(0.1, 0.1, 0.1)
    });

    // Create directional light entity
    var light = new pc.Entity();
    light.addComponent("light");

    // Add to hierarchy
    app.root.addChild(cube);
    app.root.addChild(camera);
    app.root.addChild(light);

    // Set up initial positions and orientations
    camera.setPosition(0, 0, 3);
    light.setEulerAngles(45, 0, 0);

    // Register an update event
    app.on("update", function (deltaTime) {
    	  cube.rotate(10 * deltaTime, 20 * deltaTime, 30 * deltaTime);
    });
</script>

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

Examples

See all the examples here or browse them locally in the examples directory

How to build

  • Ensure you have nodejs installed
  • Ensure you have Java installed.

The first time you build you will be asked to install dependencies using npm. e.g.

npm install fs-extra
npm install google-closure-compiler
npm install preprocessor

Then, to execute a build of the engine to the build/output folder, do:

cd build
node build.js

See the built in help for more build instructions

node build.js -h

Pre-built versions of the engine are also available.

Latest development release:

Latest stable release:

Specific engine versions:

Documentation

Full documentation available on the PlayCanvas Developer site including API reference

Releases

A full list of Releases and Release Notes is available here.

How to get models?

To convert any models created using a 3D modelling package see this page in the developer documentation.

Getting Help

Forums - Use the forum to ask/answer questions about Engine, Editor or generally PlayCanvas

Contributing

Want to help us make the best 3D engine on the web? Great! Check out CONTRIB.md that will get you started.

Github Issues

Please use Github Issues to report bugs or request features.

Reporting bugs

Please follow these steps to report a bug

  1. Search for related issues - search the existing issues so that you don't create duplicates

  2. Create a testcase - Please create the smallest isolated testcase that you can that reproduces your bug

  3. Share as much information as possible - everything little helps, OS, browser version, all that stuff.

PlayCanvas Platform

The PlayCanvas Engine is an open source game engine which you can use to create games or render 3D in the browser. In addition to the engine we also make the PlayCanvas development platform which features an Visual Editor, asset management, hosting and publishing services.

License

The PlayCanvas Engine is released under the MIT license. See LICENSE file.

engine's People

Contributors

daredevildave avatar willeastcott avatar guycalledfrank avatar vkalpias avatar maksims avatar aidinabedi avatar warwithinme avatar yard avatar nakata0705 avatar bantdit avatar yaustar avatar b1naryth1ef avatar jaimemf avatar sourcenouveau avatar majimboo avatar psichix avatar runninglvlan avatar samgreen avatar systemcluster avatar thomcc avatar

Watchers

Ray Lugo, Jr. avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.