From 2532436170d23aed33cc28a0dfd1caf1567dfc0d Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Sat, 28 Jan 2023 14:00:21 -0700 Subject: [PATCH] ecs: cleanup documentation Signed-off-by: Stephen Gutekanst --- libs/ecs/README.md | 9 +-------- libs/ecs/src/main.zig | 16 ++-------------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/libs/ecs/README.md b/libs/ecs/README.md index 916454c4..08a4a180 100644 --- a/libs/ecs/README.md +++ b/libs/ecs/README.md @@ -4,9 +4,8 @@ ## Design principles: -* Clean-room implementation (author has not read any other ECS implementation code.) +* Clean-room implementation (author has not read any other ECS implementation code, just working from first-principles) * Solve the problems ECS solves, in a way that is natural to Zig and leverages Zig comptime. -* Avoid patent infringement upon Unity ECS patent claims. * Fast. Optimal for CPU caches, multi-threaded, leverage comptime as much as is reasonable. * Simple. Small API footprint, should be natural and fun - not like you're writing boilerplate. * Enable other libraries to provide tracing, editors, visualizers, profilers, etc. @@ -35,9 +34,3 @@ There are plenty of known issues, and things that just aren't implemented yet. A * When entity is deleted, maybe via systems / an event/callback, need a way to be notified of destruction. Same with updated maybe. See also the numerous TODOs in main.zig. - -## Copyright & patent mitigation - -The initial implementation was a clean-room implementation by Stephen Gutekanst without having read other ECS implementations' code, but with speaking to people familiar with other ECS implementations. Contributions past the initial implementation may be made by individuals in non-clean-room settings (familiar with open source implementations only.) - -Critically, this entity component system stores components for a classified archetype using independent arrays allocated per component as well as hashmaps for sparse component data as an optimization. This is a novel and fundamentally different process than what is described in Unity Software Inc's patent US 10,599,560. This is not legal advice. diff --git a/libs/ecs/src/main.zig b/libs/ecs/src/main.zig index 4f6f36f0..e9efb826 100644 --- a/libs/ecs/src/main.zig +++ b/libs/ecs/src/main.zig @@ -2,25 +2,13 @@ //! //! ## Design principles: //! -//! * Clean-room implementation (author has not read any other ECS implementation code.) +//! * Clean-room implementation (author has not read any other ECS implementation code, just working +//! from first-principles) //! * Solve the problems ECS solves, in a way that is natural to Zig and leverages Zig comptime. -//! * Avoid patent infringement upon Unity ECS patent claims. //! * Fast. Optimal for CPU caches, multi-threaded, leverage comptime as much as is reasonable. //! * Simple. Small API footprint, should be natural and fun - not like you're writing boilerplate. //! * Enable other libraries to provide tracing, editors, visualizers, profilers, etc. //! -//! ## Copyright & patent mitigation -//! -//! The initial implementation was a clean-room implementation by Stephen Gutekanst without having -//! read other ECS implementations' code, but with speaking to people familiar with other ECS -//! implementations. Contributions past the initial implementation may be made by individuals in -//! non-clean-room settings. -//! -//! Critically, this entity component system stores components for a classified archetype using -//! independent arrays allocated per component as well as hashmaps for sparse component data as an -//! optimization. This is a novel and fundamentally different process than what is described in -//! Unity Software Inc's patent US 10,599,560. This is not legal advice. -//! const std = @import("std"); const testing = std.testing;