Hasty Briefsbeta

双语

Show HN: Evolved.lua – An Evolved Entity Component System for Lua

a year ago
  • #Game Development
  • #Lua
  • #ECS
  • evolved.lua 是一个快速灵活的 Lua ECS(实体-组件-系统)库
  • 采用基于原型的存储方式,将实体和组件连续存储在数组(SoA)中以提升性能
  • 该库最大限度减少GC压力并避免不必要的内存分配
  • 提供简单直观的API,函数功能一目了然
  • 支持复杂系统功能,包括查询、延迟操作、批量操作和系统处理
  • 实体和片段都是标识符,片段表示组件类型
  • 组件是通过片段附加到实体的任意数据
  • 使用块(chunk)来分组具有相同组件集的实体以提高处理效率
  • 结构性变更(添加/删除片段)会使实体在块间迁移,应尽量减少此类操作以保证性能
  • 支持延迟操作来排队处理结构性变更
  • 批量操作可高效修改多个实体
  • 系统可分组并按特定顺序处理
  • 提供组件生命周期事件的钩子(设置、分配、插入、移除)
  • 包含标签(无组件的片段)、唯一片段和显式片段等特性
  • 支持组件复制和默认值设置
  • 允许为片段设置销毁策略(销毁实体或移除片段)
  • 调试模式有助于捕获不正确的API使用
  • 可通过Luarocks安装或克隆代码库获取