All Projects → atedeg → ecscala

atedeg / ecscala

Licence: MIT License
An ECS Scala framework

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to ecscala

kms-env
A tool to encrypt and decrypt environment variables using KMS
Stars: ✭ 16 (-20%)
Mutual labels:  ecs
terraform-aws-ecs-cloudwatch-sns-alarms
Terraform module to create CloudWatch Alarms on ECS Service level metrics.
Stars: ✭ 23 (+15%)
Mutual labels:  ecs
Entitas-lua
No description or website provided.
Stars: ✭ 29 (+45%)
Mutual labels:  ecs
space
A SCI-FI community game server simulating space(ships). Built from the ground up to support moddable online action multiplayer and roleplay!
Stars: ✭ 25 (+25%)
Mutual labels:  ecs
fargate-game-servers
This repository contains an example solution on how to scale a fleet of game servers on AWS Fargate on Elastic Container Service and route players to game sessions using a Serverless backend. Game Server data is stored in ElastiCache Redis. All resources are deployed with Infrastructure as Code using CloudFormation, Serverless Application Model,…
Stars: ✭ 30 (+50%)
Mutual labels:  ecs
OneNodeEcs
one node Amazon ECS cluster using EC2 Spot instance and haproxy
Stars: ✭ 22 (+10%)
Mutual labels:  ecs
ecs-gen
docker-gen for AWS ECS
Stars: ✭ 46 (+130%)
Mutual labels:  ecs
SpaceInvadersEcs
Simple example of SpaceInvaders(Guns&Bullets variation) game using Entity-Component-System implementation by Leopotam. It's fine example how to use Leopotam ECS framework and how to use ECS-architecture in your game at all
Stars: ✭ 15 (-25%)
Mutual labels:  ecs
Usagi
A hierarchical component entity system based game engine
Stars: ✭ 44 (+120%)
Mutual labels:  ecs
herogate
Heroku + AWS Fargate = Herogate 🚀 Deploy and manage containerized applications like Heroku on AWS
Stars: ✭ 17 (-15%)
Mutual labels:  ecs
ecs-airflow
Cloudformation templates for deploying Airflow in ECS
Stars: ✭ 37 (+85%)
Mutual labels:  ecs
matter
A modern ECS library for Roblox.
Stars: ✭ 39 (+95%)
Mutual labels:  ecs
js13k-ecs
A 1kb entity component system, designed for Js13kGames
Stars: ✭ 76 (+280%)
Mutual labels:  ecs
herman
Herman is a tool to simplify deployment of AWS Services using ECS and Lambda, and the provisioning of various AWS services.
Stars: ✭ 33 (+65%)
Mutual labels:  ecs
terraform-aws-ecs-service
Creates an ECS Service.
Stars: ✭ 86 (+330%)
Mutual labels:  ecs
UniPowder
Powder Toy Game using Unity ECS
Stars: ✭ 37 (+85%)
Mutual labels:  ecs
xilution-selenium-grid
A Selenium Grid that Runs in AWS ECS Fargate.
Stars: ✭ 22 (+10%)
Mutual labels:  ecs
terraform-aws-mongodb
Simplify MongoDB provisioning on AWS using Terraform
Stars: ✭ 20 (+0%)
Mutual labels:  ecs
IwEngine
This is an engine that I initially started building after taking a game coding class in high school. I didn't like Unity so tried to make something more code focused that was personally easier to use.
Stars: ✭ 97 (+385%)
Mutual labels:  ecs
UnityDOTS-Thesis
Bachelor's degree thesis on Unity DOTS architecture
Stars: ✭ 14 (-30%)
Mutual labels:  ecs

ECScala

An Entity Component System Scala framework

License: MIT Maven Central GitHub release example workflow codecov javadoc

Getting Started

libraryDependencies += "dev.atedeg" %% "ecscala" % "0.2.1"

Usage

ECScala allows you to use the ECS architechtural pattern with ease:

import dev.atedeg.ecscala.given

case class Position(x: Float, y: Float) extends Component
case class Velocity(vx: Float, vy: Float) extends Component

object Example extends ECScalaDSL {
  val world = World()
  world hasAn entity withComponents { Position(1, 1) &: Velocity(2, 2) }
  val movementSystem = System[Position &: Velocity &: CNil]
    .withUpdate { (_, components, deltaTime) =>
      val Position(x, y) &: Velocity(vx, vy) &: CNil = components
      Position(x + vx*deltaTime, y + vy*deltaTime) &: Velocity(vx, vy) &: CNil
    }
  world hasA system(movementSystem)
  world.update(10)
}

To learn how to use ECScala you can start by reading its wiki!

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Authors

License

Distributed under the MIT license. See LICESE for more information.

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