Giter Club home page Giter Club logo

aurora's Introduction

Aurora is a small entity-component-system game engine for real-time-strategy games. It's also sort of a mod API, but more on that later...

Aurora is being developed alongside its intended use case, Forge, and still churns quite a bit. There's also lots of test code present which requires refactoring and possible removal, but the basic architecture is stable and usable.

Aurora is based on four basic classes:

  • Engine
  • Entity
  • Component
  • System

In a nutshell:

  • Components are JSON data with some useful helper methods.
  • Entities are are arrays of components with some useful helper methods.
  • Systems are pre-defined functions which are run each simulation loop and act on a subset of entities who have instances of the relevant components.
  • The engine:
    • Tells all systems to update each game loop
    • Handles the creation and destruction of entities and components
    • Handles the loading of assets using Three.js (geometries, materials, etc.)

The wiki contains more detailed information about the architecture and usage of Aurora and extensive documentation of the different classes and methods available can be found in /docs or at ianpaschal.github.io/aurora.

Mod API

"I read something above that said Aurora is 'sort of a mod API'."

That's correct. With Aurora, there's not really a distinction between core content and mods. Because all entities are both represented and saved as JSON (plus whatever other image assets or sounds), it's easy to add new units to the game without actually having to eval() any Javascript. This is especially useful for modded multiplayer where the required mods can be safely sent to all players in the game.

Obviously this exempts "systems" from being added as they are the actual executable functions which process a world's entities, but exchanging those should eventually be possible as well as the users' discretion.

Read more on the wiki.

License

Aurora is licensed under the MIT license.

aurora's People

Contributors

huafu avatar ianpaschal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

aurora's Issues

Set-up contributor wiki

The built-in GitHub wiki will be used for contributor/project information (vs. usage documentation, which should live/be distributed with the code).

It needs to at least have a landing page outlining this.

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.