All Projects → tdzienniak → entropy

tdzienniak / entropy

Licence: MIT license
Framework for making games and not only games in entity system manner.

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to entropy

Wickedengine
3D engine focusing on modern rendering techniques and performance.
Stars: ✭ 3,148 (+20886.67%)
Mutual labels:  entity-component-system
ent-comp
A light, fast Entity Component System in JS
Stars: ✭ 25 (+66.67%)
Mutual labels:  entity-component-system
ECS
Simple implement of ECS on C++
Stars: ✭ 13 (-13.33%)
Mutual labels:  entity-component-system
Lovetoys
🍌 a full-featured Entity-Component-System framework for making games with lua
Stars: ✭ 252 (+1580%)
Mutual labels:  entity-component-system
aurora
A small entity-component-system game engine for real-time-strategy games.
Stars: ✭ 28 (+86.67%)
Mutual labels:  entity-component-system
TinyECS
Tiny ECS is an easy to use Entity-Component-System framework that's designed specially for Unity3D.
Stars: ✭ 20 (+33.33%)
Mutual labels:  entity-component-system
Lumixengine
3D C++ Game Engine - yet another open source game engine
Stars: ✭ 2,604 (+17260%)
Mutual labels:  entity-component-system
ecs
🐰 Entity Component System
Stars: ✭ 62 (+313.33%)
Mutual labels:  entity-component-system
ECS
Entity-Component-System
Stars: ✭ 122 (+713.33%)
Mutual labels:  entity-component-system
ecs
Build your own Game-Engine based on the Entity Component System concept in Golang.
Stars: ✭ 68 (+353.33%)
Mutual labels:  entity-component-system
SpaceWar-ECS
A space war game made with ECS and JobSystem in Unity.
Stars: ✭ 26 (+73.33%)
Mutual labels:  entity-component-system
Adria-DX11
Graphics engine written in C++ using DirectX11
Stars: ✭ 87 (+480%)
Mutual labels:  entity-component-system
rockgo
A developing game server framework,based on Entity Component System(ECS).
Stars: ✭ 617 (+4013.33%)
Mutual labels:  entity-component-system
Octopuskit
2D ECS game engine in 100% Swift + SwiftUI for iOS, macOS, tvOS
Stars: ✭ 246 (+1540%)
Mutual labels:  entity-component-system
imgui entt entity editor
A drop-in entity editor for EnTT with Dear ImGui
Stars: ✭ 146 (+873.33%)
Mutual labels:  entity-component-system
Entitas Cpp
Entitas++ is a fast Entity Component System (ECS) C++11 port of Entitas C#
Stars: ✭ 229 (+1426.67%)
Mutual labels:  entity-component-system
unity-entity-component-system
A better approach to game design that allows you to concentrate on the actual problems you are solving: the data and behavior that make up your game. By moving from object-oriented to data-oriented design it will be easier for you to reuse the code and easier for others to understand and work on it.
Stars: ✭ 88 (+486.67%)
Mutual labels:  entity-component-system
gdk-for-unity-blank-project
SpatialOS GDK for Unity Blank Project
Stars: ✭ 33 (+120%)
Mutual labels:  entity-component-system
ash
A Typescript port of Ash Framework - https://github.com/richardlord/Ash - an Actionscript 3 entity framework for game development
Stars: ✭ 19 (+26.67%)
Mutual labels:  entity-component-system
RASM
3D Ray-Tracing WebGPU Game Engine Written in Rust WebAssembly.
Stars: ✭ 20 (+33.33%)
Mutual labels:  entity-component-system

Note: this engine is still in active developement. It lacks many tests, documentation is not complete and breaking API changes are very likely to happen. It is not production ready, but I was able to build a bunch of games with it, so if you want to experiment or help with developement, you are welcome.

Documentation note: all "classes" in docs are not real classes, they are factory functions and should be called without new. JSDocs has no convenient way to describe factory functions.

entropy-logo

Build Status

JavaScript entity system framework for games.

Entropy is literally just a framework, variation on an entity system, that can help you organize and write your game in very specific way. It also does many things for you, such as game state management, input handling. It is not tied to any graphics library, sound library, or other fancy stuff. If you are not familiar with entity system idea, check out these articles: one two.

Key features

  • entity system, which mean very good game code organization and simple constructs
  • easy integration with any library (see examples for p2.js physics library integration)
  • plugins

Installation

Recommended way to install and use Entropy is to use npm:

npm install --save entropy.js

Then require it in your project and use your favourite bundling tool to package your game for browser use.

If you prefer to just include script as standalone lib, put reference to entropy.min.js file in the script tag or add it to you assets loader. Use global variable Entropy to interact with the framework.

Getting started

The best way to get a grasp of Entropy is to read the wiki.

You can also read the docs and check out examples:

  1. Bunnies (benchmark and PIXI.js rendering)
  2. Breakout (complete game with p2.js physics, PIXI rendering and plugins)

Packages

This is monorepo. You can check versions of included packages by looking at the table below.

Package Version
entropy.js npm
entropy.js-state-plugin npm
entropy.js-loader-plugin npm
entropy.js-animation-plugin npm

Building and testing

After cloning the repo run:

npm install

Then you need to bootstrap all packages (install dependencies, etc.):

npm run bootstrap

Bootstraping automatically compiles and builds all packages.

If you want to bundle or build single package, cd into desired package directore and use npm scripts:

cd ./packages/entropy
npm run bundle # bundles package for browser
npm run babel # transpiles source files

To run tests for all packages:

npm test

Docs

Documentation is located in docs folder. You can also read it online: http://tdzienniak.github.io/entropy/docs/entropy.js/1.0.0-alpha.5/.

Testers and people who have helped

@DarkEngineer
@Tanner

License

MIT

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].