A 2d HTML5 Canvas game engine
Splat ECS is a 2d game engine made for creating multi-platform games entirely in JavaScript. Splat ECS is built around the Entity Component System pattern, which is flexible and promotes composition of behaviors.
Features
- Rectangles!
- Keyboard, mouse, touch, & gamepad input
- Sounds and music (Web Audio API and HTML5 Audio)
- Sprite animation
- Asset loading, and built-in loading screen
- Games work well on phones, tablets, and desktop browsers.
- A* Pathfinding
- Particles
- SCREENSHAKE
- Tiled map editor support
- Easing
Supported (tested) Platforms
- Chrome (desktop & mobile)
- Firefox
- Internet Explorer (desktop & mobile)
- Safari (desktop & mobile)
- Mac using Electron
- Linux x64 using Electron
- Chrome Web Store (currently broken see issue #69)
- Android using Cordova
Splat now works in Cordova, and due to updates to recent phone browsers we have seen good framerates on Android in google Chome. We have not tested Cordova builds on iOS yet, please let us know what you find out.
Requirements
- Browser (like Firefox or Chrome)
- Text editor
- Terminal
- Node.js
New to Splat?
If you are new to Splat, it is highly recommended that you try out the tutorial project.
Create a new Game
-
(skip this step if you are cloning the repo) The zip file should be called splat-ecs-starter-project-master.zip. Unzip this file and you will be left with a folder named splat-ecs-starter-project.
-
In your terminal navigate into the splat-ecs-starter-project folder.
cd /Path/To/splat-ecs-starter-project
- Next we will run npm install to install Splat ECS and all of it's modules:
npm install
5. This will install all of the game and engine dependencies from NPM — it can take a couple of minutes. If you see any warning (denoted by npm WARN) this is okay, this just means that a package Splat-ECS uses is out of date it should not effect your game and newer versions of Splat-ECS Starter Project will take care of this issue. You will know npm install is finished when the terminal returns to your command prompt (you will see your username).
-
To run a Splat ECS game all you need to do is navigate to the project folder in your terminal and type
npm start
This will run webpack, which builds your game and also runs eslint which checks your JavaScript code for errors. -
You should try running your game to make sure it is working before you continue. When the last line in your terminal reads 'webpack: bundle is now VALID.' this means webpack is done and now you can open a browser and go to
localhost:4000
.
The Splat ECS sample game is just white screen with a black-outlined square you can control with WASD, or arrow keys. Test that this is working and note that if the keys are not working you may need to click inside the browser window to give the game your 'focus'.
Games using Splat (ECS)
- Cluster Junk
- Cali Bunga
- Flip Flap Pong
- Polymorphic
- Electropolis
- Morning Ritual
- Drunken Boss Fight
- Zen Madness
- Treatment and Control
- The Day the World Changed
- Uprooted
See more Splat games at http://splatjs.com/
Send a pull request to add your game to the list!
Contributing
If you are interested in participating in this project, please read CODE_OF_CONDUCT.md for details on our code of conduct.
Versioning
We use SemVer for versioning. For the versions available, see the tags on this repository.
Authors
- Eric Lathrop - Initial work
See also the list of contributors who participated in this project.
License
This project is licensed under the MIT License - see the LICENSE.TXT file for details