ECS | entm-core – 专为 FiveM 设计的实体组件系统框架

正文:
什么是 entm-core?
entm-core 是一个基于 TypeScript 编写的、专为 FiveM 设计的 ECS(实体组件系统)框架。它的灵感来源于 Tim Ford 关于《守望先锋》中如何运用 ECS 的演讲,其 API 设计得让那些使用过流行的 C++ ECS 库 EnTT 的开发者也能轻松上手。

ECS 是游戏开发中常见的一种架构模式。在这种模式下,不再由对象自行承载行为逻辑,而是采用以下结构:

– **实体**:仅包含一个 ID,没有其他内容
– **组件**:附加在实体上的纯数据(如位置、生命值、速度等)
– **系统**:针对拥有特定组件集合的实体运行的逻辑

《守望先锋》、《城市:天际线 2》以及《我的世界》的现代渲染器等都采用了这种模式。它具有出色的扩展性,能够实现逻辑解耦,并加快游戏状态的查询速度。

重要提示
这是一个面向开发者的工具与框架,本身无法独立运行。你需要编写模块(即独立的 FiveM 资源),将这些模块注册到该框架中,再利用它来创建实体、附加组件以及添加系统逻辑。可以把 entm-core 想象成引擎,而你的模块则相当于具体的游戏内容。

功能亮点
– 支持稀疏的组件存储结构,可实现快速遍历
– 通过 @sync 注解实现服务器端与客户端之间的组件同步
– 自动处理新加入游戏的玩家同步问题
– 内置玩家追踪功能
– 支持固定时间步长与可变时间步长的游戏循环
– 提供模块热重载功能
– 内置调试开关(可在服务器控制台输入 entm_debug 1 打开)

相关链接
– 核心代码库:GitHub – RatPrez/entm-core · GitHub
– 启动模板:GitHub – RatPrez/entm-template · GitHub
– 文档文档:entm-core/docs at master · RatPrez/entm-core · GitHub

补充说明
我并非 TypeScript 开发者,相比 C++,TypeScript 是除 C# 之外最合适的选项,不过在我看来 C# 在 FiveM 中的可用性稍低一些,因此代码中可能存在错误。
该框架是免费提供的,且会一直保持免费,没有任何附加条件。
我觉得这是一个很棒的项目,认为可能还有其他人能从中受益,所以才将其分享出来。我不会密切关注这个帖子,如果你遇到漏洞或希望提出功能需求,建议在 GitHub 上创建问题或讨论帖——那样我能更快地看到你的反馈。如果你认为自己能写出更好的版本,也欢迎提交 Pull Request,我很期待看到你的成果。
如果你使用该框架开发了什么作品,我真的非常希望能看到你的创作。

© 版权声明
THE END
喜欢就支持一下吧
点赞361 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容