游戏引擎 活跃维护

oak

oakmound/oak

一个纯 Go 游戏引擎

1668
Stars 标星
87
Forks 分支
41
Watchers 关注
14
Open Issues
Go
主要语言
Apache-2.0
开源协议
69.4 MB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:oakmound/oak
git clone https://github.com/oakmound/oak.git
git clone git@github.com:oakmound/oak.git
README.md master

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

橡树

一个纯 Go 游戏引擎

安装

go get -u github.com/oakmound/oak/v4

功能和系统

  1. 窗口管理
    • 从 shiny 派生的窗口和按键事件
    • 支持同时运行多个窗口
  2. 图像渲染
    • 操作
      • render.Modifiable 接口
      • 通过 gift 集成优化的图像操作
    • 内置涵盖常见用例的 Renderable 类型
      • Sprite,Sequence,Switch,Composite
      • 原始构建器,ColorBox,Line,Bezier
      • 历史跟踪 Reverting
    • 主要为二维
  3. 粒子系统
  4. 鼠标处理
  5. 操纵杆支持
  6. 音频支持
  7. 碰撞
  8. 2D 物理系统
  9. 事件处理器

支持

对于不够重要而不能成为问题或 PR 的讨论,可以随时在 gophers slack 的 #oak 频道 @ 我们。想了解 oak 的最新动态,请查看 博客。

快速开始

这是一个最基本的橡木程序示例:

package main

import (
    "github.com/oakmound/oak/v4"
    "github.com/oakmound/oak/v4/scene"
)

func main() {
    oak.AddScene("firstScene", scene.Scene{
        Start: func(*scene.Context) {
            // ... draw entities, bind callbacks ... 
        }, 
    })
    oak.Init("firstScene")
}

请看下方或前往 examples 文件夹查看演示。更多示例和文档,请参考 godoc 的参考文档,wiki,或我们在 grove 中的扩展功能。

示例

平台游戏 俯视射击游戏 愤怒小鸟
贝塞尔曲线 摇杆 钢琴
屏幕选项 多窗口 粒子

使用 Oak 的游戏

要启动一个更大的游戏项目,你可以从 游戏模板 开始。

蓝色特工 精彩医生
立即招聘:掠夺者 杰里米蛤蜊
钻石牌锦标赛 SokoPic

关于纯 Go

Oak 最近引入了一些包含 C 代码的依赖,但我们仍然将这个引擎描述为纯 Go 引擎,这表面上似乎有些矛盾。Oak 的目标是默认情况下,用户可以在没有安装 C 编译器的机器上下载引擎并创建一个完全功能的游戏或 GUI 应用程序,所以当我们说纯 Go 时,我们的意思是默认情况下,库的配置无需 C 编译,并且没有主要功能被 C 编译所限制。

我们预计在不久的将来需要引入包含 C 依赖的替代驱动程序,以在某些情况下提高性能,目前我们还没有不包含 Objective C 代码的 OSX 解决方案。

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