From 005abfadec27f2505a72db5380ad779679a83c9c Mon Sep 17 00:00:00 2001 From: Brychan Dempsey Date: Sat, 5 Jun 2021 02:44:29 +1200 Subject: [PATCH] Update 'README.md' --- README.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index fd441a4..1d33cfc 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,14 @@ *| JavaECS* -# JavaECS-Docs +# JavaECS Docs -## *Documentation for the Java Entity-Component-System* +### [View the Documentation](./docs/overview.md) -Traditional game-engine designs typically follow the standard functional or object-oriented design paradigms. +## *About Entity-Component-Systems* -Functional-paradigm games focus on a 'this-then-that' model, e.g. +Traditional game-engine designs typically follow the standard functional or object-oriented design paradigms. +This choice of paradigm is as important as it is in typical applications. + +A functional-paradigm game usually focuses on a 'this-then-that' model, e.g.: ***Simple Driving Game*** @@ -20,6 +23,7 @@ else: ``` Such a system works well for some game-designs; it is simplistic and follows a deterministic sequence of steps. But it lacks scalability and extensibility. + An Object-Oriented approach could be used instead: ``` py # Create a base-class that is a vehicle, with basic properties: @@ -54,6 +58,9 @@ def GameLoop(): if v.IsCrashed = False: anyNotCollided = True break - - ``` + +Which allows the instancing of objects. Each action also results in an objective state, which can be simply compared to determine the result. + +ECS are typically built on object-oriented ideas, but make specfic attempts to reduce overheads that come from object-oriented ideas. +The primary reduction made in ECS is to eliminate or otherwise minimise inhertance cycles to reduce the amount of virtual calls required.