m969/EcsNode
37.1
Weak · 21 September 2026
153.1k
lines of production code
C#
primary language
1
measurement over time
What this system is
This system is a modular game engine framework built on Unity and ECS, featuring a comprehensive data-driven architecture powered by the Luban code generation tool. It provides core gameplay systems including area management, AI, and state tracking, alongside a suite of specialized modules for achievements, networking, and battle logic. The project also includes editor tools and static analysis utilities to support development within the Unity environment.
Features
Add Achieve (Achievement) module with state tracking and progress management
Introduces the 'Achieve' module to track player goals, conditions, and completion status. The module defines data models (AchieveItem, AchieveCondition), components (AchieveItemListComponent, AchieveConditionListComponent), and systems (AchieveItemSystem, AchieveConditionListSystem) to manage state transitions (NotStarted, InProgress, Completed) and calculate progress. It includes a completion event (IAchieveCompletedHandler) for external subscribers to handle rewards or other logic, while explicitly excluding reward distribution logic from this module.
Modules.Unity · high confidence
Add Luban Unity package and Rust macro templates
The Luban Unity package is introduced, providing C\# editor and runtime components for game configuration management. This includes the \Luban.Editor\ assembly with menu items for documentation and quick-start guides, base classes like \EditorBeanBase\ for JSON serialization, and \ByteBuf\ for binary data handling. Additionally, Rust macro templates (\TryIntoBase\ and \EnumFromNum\) are added to the common templates directory, enabling automatic implementation of type conversion traits for generated code.
_LubanTables/Tools/Luban/Templates/common/rs/macros, UnityApp/Packages/luban\unity · high confidence
Add core game model, AI, and data generation infrastructure
The UnityApp project now includes a comprehensive set of base model classes and supporting infrastructure. This introduces the \App.Model\ assembly, which contains core game logic such as the \AppStatic\ class for global state, and the \EcsType\ enum for entity types. New modules have been added for AI (including \AIComponent\, \AIActionQueue\, and related interfaces), collision events, and movement components. Additionally, the project now supports data-driven configuration via the \Luban\ code generator, which produces C\# classes for game data tables (e.g., \TbItem\, \TbGridPlane\) and their corresponding wrapper classes. The \Adaptive Performance\ settings for the simulator have also been added to the project.
UnityApp · high confidence
Added Luban code generation tools and built-in type definitions
The LubanTables area now includes the complete Luban toolchain under \LubanTables/Tools/Luban/\, featuring \.deps.json\ files for multiple target languages including Bson, CSharp, Cpp, Dart, Gdscript, Golang, Java, Javascript, L10N, and Lua. Additionally, \LubanTables/Defines/builtin.xml\ was added to define standard vector types (vector2, vector3, vector4) for use in table schemas.
LubanTables · high confidence
Added Microsoft.CodeAnalysis.Analyzers 3.11.0 package files
The project now includes the full asset structure for Microsoft.CodeAnalysis.Analyzers version 3.11.0, containing the analyzer DLLs for C\# and VB.NET, along with their associated metadata, resource files, and license notices. This update provides the latest static analysis rules for .NET development within the Unity environment.
(repo-wide) · high confidence
Added area management components and systems
The editor module now includes new C\# classes for area management: the Area model, the AreaListComponent for storing area data, and the AreaListSystem for adding, removing, and retrieving areas. Additionally, the AreaSystem provides a factory method to create new area entities with a default map type, supporting the game's area-based gameplay.
Modules.Editor · high confidence
Behavioural changes
Updated architecture diagram in Readme
The project's architecture diagram (ecsnode.drawio) was updated to include new roles for 'Engineer (Creator)' and 'Artist', along with a 'Demo' node, reflecting changes in the system's structural design and stakeholder mapping.
Readme · high confidence
Dependencies
Adds multiple new game modules and supporting tools
The project introduces a suite of new modular components for the game engine, including modules for achievements, actor states, attacks, battle logic, buildings, chasing, grid-based systems, leaderboards, messaging, networking (Neter), resource data, rewards, synthesis, tasks, and unit dispatch. Each module is accompanied by its corresponding test project. Additionally, the update integrates the Luban configuration tool, a FolderTag editor extension, and a TypeScript code generation plugin, while also adding a packages.config file for several Microsoft.CodeAnalysis and related NuGet packages.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 37 → 37 (-0.2)
- Rubric changed (rubric-2026.08.18 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 40 → 34 (-6.6)
- Architecture 68 (new)
- Maturity 65 → 46 (-18.6)
- Readiness 20 → 27 (+7.5)
- Security 84 → 82 (-2.1)
Resolved (64)
- Analyzed solution does not cover the bulk of the repository
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/MessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/MessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/MessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/MessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/MessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/MessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/NetworkMessageHandler.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/NetworkMessageHandler.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/NetworkMessageHandler.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/NetworkMessageHandler.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/NetworkMessageHandler.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/NetworkMessageHandler.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/NetworkMessageHandler.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/UintMessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/UintMessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/UintMessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/UintMessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/UintMessageSystem.cs)
- CommentedOutCode (Modules.Unity/com.module.neter/com.model.neter/Messages/UintMessageSystem.cs)
- …and 44 more
New (403)
- ActorAdvancePlaySystem.LocalAdvanceCreate (cognitive 18) (UnityApp/Assets/App.System/Game.System/system.world/com.system.actor-frame-play/ActorAdvancePlaySystem.cs)
- ActorDeterminePlaySystem.DetermineConflictCheck (cognitive 18) (UnityApp/Assets/App.System/Game.System/system.world/com.system.actor-frame-play/ActorDeterminePlaySystem.cs)
- ActorDeterminePlaySystem.DetermineCreate (cognitive 17) (UnityApp/Assets/App.System/Game.System/system.world/com.system.actor-frame-play/ActorDeterminePlaySystem.cs)
- ActorPredictPlaySystem.PredictCreate (cognitive 17) (UnityApp/Assets/App.System/Game.System/system.world/com.system.actor-frame-play/ActorPredictPlaySystem.cs)
- ActorPredictPlaySystem.PredictionFramePlays (cognitive 16) (UnityApp/Assets/App.System/Game.System/system.world/com.system.actor-frame-play/ActorPredictPlaySystem.cs)
- Ambiguous distinction between 'WriteBytes' and 'WriteBytesWithoutSize'. It is unclear if 'WriteBytes' includes a size prefix or not. This is a critical ambiguity for serialization.
- Ambiguous naming for signed long variants. Similar to short, 'ReadLong' implies signed, but 'ReadFlong' exists. The distinction is unclear.
- Ambiguous naming for signed short variants. 'ReadShort' implies signed, but 'ReadFshort' exists. It is unclear if 'F' stands for 'Fixed', 'Fast', or 'Float' (though float is separate). If 'F' means 'Fixed' (standard), then 'ReadShort' is redundant or confusingly named.
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- AnalyzerSeverityNone repeated across 21 files (UnityApp/Assets/Packages/Microsoft.CodeAnalysis.Analyzers.3.11.0/editorconfig/PortedFromFxCopRulesEnabled/.editorconfig)
- …and 383 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
m969/EcsNode was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 6a2630fd1f761668da45e3dd3c923c096d0dae43 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.