Giter Club home page Giter Club logo

entitycomponentsystem's Introduction

Entity Component System

Eventually, I aim for this to be a C# implementation of ECS that is easy to read and use.

Disclaimer:

This project is currently a work in progress, and is incomplete, and lacking many features that a useful ECS should have. There are also a lot of sub-projects that exist for my own experimentation that will be removed in the future.

Why am I making this

A friend of mine told me about ECS and after looking at the Wikipedia entry, I just assumed it was an esoteric way of organizing code that didn't really have any other benefits outside of that, so I didn't really give it a second thought.

But it came up again a game engine development tutorial, and upon more digging - it seems that ECS representations are now being preferred over a traditional Scene hierarchy tree representation (like that used by the Unity game engine for a long time) for because of the way that they enforce cache locality, which can have enormous performance benefits for applications like video games.

So why is it, that I can't seem to find anything on the internet that explores the performance of ECS in comparison to the other representation? Is ECS just so much faster that it is plainly noticeable and so these questions are just never asked by the people that use it? If so, are these performance benefits accessible to naive implementations of ECS?

These are the questions that I intend for this project to answer.

I also intend to implement a hierarchy-tree model similar to that found in Unity, and then benchmark a physics simulation in both an ECS environment and a SceneGraph environment if I ever end up finishing the ECS.

entitycomponentsystem's People

Contributors

tejas-h5 avatar

Stargazers

yangsl avatar

Watchers

 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.