Droid Engine is a game engine designed around the SCENE->ENTITY->COMPONENT model.
It is written in ES6 Javascript and rendered in an Electron shell using WebGL. The concept for this engine is based on similar engines written by Matt Thorson, Noel Berry, and Kyle Pulver.
These guys all have written game engines that combine some aspects of Unity's component architecture while also using concepts derived from Chevy Ray's Flashpunk and/or Adam Saltsman's Flixel.
npm install // Installs all of the dependencies.
npm run build // Runs Webpack to build the engine and the game.
npm run start // Runs Electron and launches the game window.
My initial idea is to use as many existing libraries as possible instead of having to reinvent the wheel. After seeing Noel's work on Skytorn and Celeste, I know his engine is going to be amazing. However, this project is more of a learning tool for me and a challenging experiment to see how polished of an engine I can write using existing code that is typically meant for web development.
NOTE: (The items in this list are only possible additions to the engine. Thanks to all of the authors and contibutors of each of these for your hard work and contributions.)
- Electron - Build cross platform desktop apps with JavaScript, HTML, and CSS.
- WebGL - HTML5 implimentation of OpenGL in the browser.
- glMatrix - glMatrix is designed to perform vector and matrix operations stupidly fast!
- Co - Generator based control flow goodness for nodejs and the browser, using promises, letting you write non-blocking code in a nice-ish way. Using this for Coroutines. Here is a good article explaining Javascript coroutines: Promise-Based Coroutines in Node.js
- socket.io - Socket.IO enables real-time bidirectional event-based communication.
- Webpack - A tool to build JavaScript modules in your application.
- Lodash - A modern JavaScript utility library delivering modularity, performance & extras.
- Babel - The compiler for writing next generation JavaScript.
- Pixi.js - Create beautiful digital content with the fastest, most flexible 2D WebGL renderer. MAYBE...
- Quill.js - Quill is a modern rich text editor built for compatibility and extensibility. Just in case we need text editing capabilities.
- Mocha - Simple, flexible, fun javascript test framework.
- Passport - Simple, unobtrusive authentication library.
- nodemon - Monitor for any changes in your node.js application and automatically restart the server.
- Particles.js - A lightweight JavaScript library for creating particles.
- Mousetrap - Simple library for handling keyboard shortcuts in Javascript. You never know...
- Howler.js - howler.js makes working with audio in JavaScript easy and reliable across all platforms.
- markdown-js - A Markdown parser for javascript.
- Lettering.js - A lightweight, easy to use Javascript injector for radical Web Typography.
- Math.js - An extensive math library for JavaScript and Node.js.
- Messenger - Growl-style alerts and messages for your app.
- Tween.js - Javascript tweening engine.
- RethinkDB - The open-source database for the realtime web.
- Jasmine - DOM-less simple JavaScript testing framework. Another possible test library.
- Matter.js - Matter.js is a 2D physics engine for the web.