游戏引擎 活跃维护

engo

EngoEngine/engo

Engo 是一个用 Go 编写的开源 2D 游戏引擎。

1822
Stars 标星
132
Forks 分支
44
Watchers 关注
54
Open Issues
Go
主要语言
MIT
开源协议
11.1 MB
仓库大小
6 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:EngoEngine/engo
git clone https://github.com/EngoEngine/engo.git
git clone git@github.com:EngoEngine/engo.git
README.md master

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

恩果

一个用 Go 编写的跨平台游戏引擎,遵循实体组件系统范式的一种实现。Engo 目前可以在 Mac OSX、Linux 和 Windows 上编译。随着 Go 1.4 的发布,支持 Android 并开始兼容 iOS,移动端已被添加为发行目标。网页支持(wasm)也可用。

v1.0 现已发布!为庆祝这一发行,将很快举办一个游戏创作马拉松(game jam),以庆祝发布、实际开始构建内容,并希望找到任何问题。关于此活动的更新将很快发布。

联系 / 贡献

我们有一个 gitter 聊天群,供希望进一步讨论 engo 的人加入。我们很乐意讨论错误、功能请求,并且非常想了解你们正在构建的项目!

入门指南

理论:common 与 engo

当前这个仓库中有两个主要的重要包:github.com/EngoEngine/engo 和 github.com/EngoEngine/engo/common。

顶层 engo 包包含窗口创建、游戏启动、OpenGL 上下文创建以及输入处理的功能。它被设计为与按照 github.com/EngoEngine/ecs 规范设计的系统一起使用。common 包包含我们对常用游戏开发系统(如 RenderSystem 或 CameraSystem)的 ECS 实现。

实践:运行它

  1. 首先,你必须安装一些依赖项:
    1. 如果你正在使用 Debian/Ubuntu:
      sudo apt-get install libasound2-dev libglu1-mesa-dev freeglut3-dev mesa-common-dev xorg-dev libgl1-mesa-dev git-all
    2. 如果你在 Windows 上运行,你将需要一个 go 工具可以使用的 gcc 编译器,并且在你的 PATH 环境变量中有 gcc.exe。我们推荐 Mingw,因为它已经过测试。你还需要安装 git,我们推荐从 Git 官方网站 获取。
    3. 如果你使用的是 OSX,你还需要 Git。你可以在这里找到安装说明。你也可以使用 homebrew 来安装 git。如果你遇到任何问题,请提交问题
  2. 然后,你可以去获取它:go get -u github.com/EngoEngine/engo
    1. 您可能还想获取平台特定构建的依赖项,以便像 godef 这样的构建工具可以使用它们:go get -u -tags js ./... go get -u -tags android ./...
  3. 现在,你有两个选择:
    1. 访问我们的网站,该网站提供了完整的教程系列,教你如何创建自己的游戏,除此之外,还有一些概念性的解释;
    2. 在我们的 demos 文件夹 中查看一些演示。
  4. 最后,如果你遇到问题,遇到错误,或想请求一个功能,请随时给我们发私信或创建一个问题。

自 v1.0 起的重大更改

Engo 总是在进行大量优化,并不断获得新功能。然而,这有时意味着某些功能可能会出现问题。为了让您更轻松地过渡,我们列出了这些更改,最近的更改排在最上面。如果您遇到任何问题,请通过 gitter 联系我们。

  • TMXObject 宽度和高度以像素为单位,可以是分数。这已经从整数变为了float64。
  • TMXTileset 现在用精灵图集代替纹理。这有助于更好地跟踪 guid,也让 gid 不会从零开始,避免跳跃,同时也方便瓦片图块的边界和间距。
  • TMX Level的对象都被整合进了Object,而不是像“PolyLineObject”那样分开。这是为了符合TMX格式。
  • Shader 接口现在有一个 SetCamera(*CameraSystem) 方法。此方法允许着色器在相机系统发生变化时自动更新,例如在场景之间切换或添加相机系统时。
  • 域名 engo.io 已经过期。现在请使用 github.com/EngoEngine/engo 作为导入路径,网站可以在 engoengine.github.io 找到。

v1.1 Roadmap

v1.1 的问题列表可以在 这里 找到。总有改进的空间!欢迎提交提案、打开问题,并告诉我们如何改进!

历史

Engo,最初被称为 Engi,由 ajhager 编写,作为一个通用的 Go 游戏引擎。怀着将其构建成“ECS”游戏引擎的愿望,它被分叉到 github.com/paked/engi。经过几次迭代后,决定将该项目重新命名并在其独立的 GitHub 组织中以 Engo 的名义重新发布。

致谢

感谢所有参与或与 Engo 一起工作的每一个人。没有你们,这一切都不可能实现,你们的帮助真的非常棒。

这些是使 engo 成为可能的第三方项目。

  • 最初的 engi 游戏引擎,engo 就是基于它的 (BSD 许可证)
  • Oto,一个用于播放声音的低级跨平台库。AudioSystem 使用它,并且基于 Ebiten 中使用的 audio 包。
本站来源与版权声明
  • 本文标题:engo - Engo 是一个用 Go 编写的开源 2D 游戏引擎
  • 本文链接:https://www.cn121.com/gameengine/engoengine-engo.html
  • 原项目:EngoEngine/engo 版权归原作者 EngoEngine 及贡献者所有
  • 收录信息:本站于 2026-10-05 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 EngoEngine/engo。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。