From 6d8574b951790e6aadc07269b16fd486c026bd0a Mon Sep 17 00:00:00 2001 From: Brychan Dempsey Date: Sun, 13 Jun 2021 14:21:09 +1200 Subject: [PATCH] Update 'README.md' --- README.md | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b4f6c4..a6d7213 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,27 @@ # JavaECS -An implementation of an Entity-Component-System in Java. Based on the C++ implementation by [Austin Morlan](https://code.austinmorlan.com/austin/ecs). +An implementation of a conceptually simple Entity-Component-System written in Java. +## Introduction to ECS +The primary goal of an ECS is to provide fast access to many entities; especially where those entities share many of the same properties. It also solves issues regarding adaptability in an inheritance-based engine. +ECS is more of a conceptual idea rather than an actual engine structure. There exists many variations of the concept, each adding in different features and models as required. + +There are four key elements to an ECS: +1. The **entity**, which is a simple ID, usually an index. +2. The **component**, which is a struct or class that stores data +3. The **system**, which is a functionality that is executed regularly by the engine. +4. The **engine** (*sometimes split into parts called 'managers'*), which controls the interaction between these components, and provides access to the external program. + +## About JavaECS +The focus of JavaECS is more about the structure rather than raw performance. It remains performant, but there may be multiple areas where improvements can be made. + + + + + + + +This project is inspired by a C++ implementation by [Austin Morlan](https://austinmorlan.com/posts/entity_component_system/). + + +## Implementation See the [documentation](https://git.software.kauripeak.co.nz/BrychanD/JavaECS-Docs/wiki) for implmentation details