{"adoption": {"forks": 544, "observed_at": "2026-08-28T04:06:41.939935+00:00", "stars": 2374}, "canonical_url": "https://ross.abutalabs.com/products/egameplay", "card": {"archived": false, "artifact_type": "framework", "description": "一个基于Entity-Component模式的灵活、通用、可扩展的轻量战斗（技能）框架，配置可选使用ScriptableObject或是Excel表格. A flexible, generic, easy to extend, lightweight combat (skills) framework based on Entity-Component pattern. Configuration can choose to use ScriptableObject or Excel tables.", "domain": ["gaming-tools"], "enriched": true, "function": ["game-engine", "plugin-system", "editor"], "health_score": 60, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["m969/EGamePlay"], "name": "m969/EGamePlay", "platform": ["game-engine", "cpp", "cross-platform"], "pushed_at": "2026-02-12T11:40:57+00:00", "repo": "m969/EGamePlay", "stars": 2374, "tags": ["combat-system", "skill-system", "buff-system", "entity-component", "scriptableobject", "excel-config", "rpg", "unity-framework", "game-development"], "topics": ["unity", "gameplay", "skill", "buff", "status", "editor", "scriptableobject", "skillsystem", "rpg", "mmorpg", "framework", "odin-inspector"], "urls": [], "use_cases": ["build a skill and combat system for a Unity RPG", "implement buff and status effect systems in Unity", "configure game abilities with Excel tables or ScriptableObjects", "create an action combat framework with entity-component architecture", "prototype RPG gameplay mechanics like damage, healing, and effects", "integrate a battle system into an existing Unity or ET framework project"], "what_it_is": "EGamePlay is a lightweight, flexible combat and skill framework for Unity built on an Entity-Component-System pattern, with status effects, buffs, and numeric attribute systems. Skill configurations can be authored via ScriptableObject or Excel tables, and it includes an RPG demo and skill debugging editor.", "when_to_avoid": ["your project does not use Unity or cannot license the required paid plugins (Odin Inspector, DOTween Pro, Animancer Pro)", "you need a turn-based combat system (the turn-based demo was removed in 3.0)", "you want a fully polished, plug-and-play integration - the README notes porting is not yet seamless", "you need a general-purpose game engine rather than a combat-specific framework"], "when_to_choose": ["you need a ready-made, extensible combat/skill framework for Unity instead of building one from scratch", "you want data-driven ability configuration via Excel or ScriptableObject", "you prefer an ECS-style separation of logic and view code", "you are building an RPG or MMORPG-style game in Unity"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/egameplay", "repo": "m969/EGamePlay", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:41.939935+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:35:04.594751+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9773a005bc698ae8104770288eaeaa83d4dc8ed7175dbd4976e8f072213bb98", "fetched_at": "2026-08-28T04:06:41.939935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/m969/EGamePlay"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 67, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2167, "days_push": 202, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}