Repolode
karl-zylinski

karl-zylinski/karl2d

面向 Odin 语言的 2D 游戏库,适合初学者,支持 Windows、Linux、Mac 与 Web。

Star
724
Fork
66
未关闭 Issue
37
最近提交
前天

这是什么?

Karl2D 是一个使用 Odin 语言编写的 2D 游戏开发库,核心目标是让初学者快速上手,并尽量减少外部依赖。窗口创建、绘制、输入、音频和资源加载等功能都由库本身提供,开发者可以更直接地掌控技术栈。库直接对接操作系统和渲染 API,而不依赖 GLFW 之类的中间层。

同一份代码可以编译为桌面程序或网页游戏。Web 版本基于 WebGL 后端和 Odin 官方的 JS 运行时实现,无需 Emscripten。随库提供的 build_web 工具可以打包浏览器版本,网页端则通过 #load 在编译期将资源打包进可执行文件。

项目目前处于 beta 阶段,仓库中包含瓦片地图编辑器、位置音频、俯视角小游戏等多个示例。

核心功能

  • 01加载和绘制纹理,绘制几何图形
  • 02支持移动、旋转和缩放视角的摄像机
  • 03音效与音乐播放,内置软件混音器
  • 04支持鼠标、键盘、手柄输入,Web 端支持触控
  • 05可编译为 Windows、Linux、Mac 桌面程序及无需 Emscripten 的 Web 版本

适用场景

  • 用代码量较小、易读的库学习游戏开发
  • 开发可同时发布到桌面和浏览器的简单 2D 游戏
  • 在 Odin 中快速原型验证 2D 玩法,无需大型引擎
  • 按需修改库的底层实现,以适配自研引擎架构

快速上手

  1. 1

    从 odin-lang.org 安装 Odin 编译器

  2. 2

    将 karl2d 仓库内容放入游戏文件夹下名为 karl2d 的子文件夹

  3. 3

    创建 game.odin 文件并粘贴 README 中的 hello world 代码

  4. 4

    在游戏文件夹中运行游戏

    odin run .

使用前须知

  • README 称该库仍处于 beta 阶段,可能存在缺陷且 API 可能变化。
  • 热重载仅为实验性功能,位于单独的仓库中。
  • 在 Linux 或 Mac 上构建网页版可能需要安装包含 wasm-ld 的 lld 包。

收录于专题

标签

#gamedev#2d-games#game-library#odin#webgl#beginner-friendly#odin-lang#odin-programming-language

常见问题

karl2d 是什么?
面向 Odin 语言的 2D 游戏库,适合初学者,支持 Windows、Linux、Mac 与 Web。 Karl2D 是一个使用 Odin 语言编写的 2D 游戏开发库,核心目标是让初学者快速上手,并尽量减少外部依赖。窗口创建、绘制、输入、音频和资源加载等功能都由库本身提供,开发者可以更直接地掌控技术栈。库直接对接操作系统和渲染 API,而不依赖 GLFW 之类的中间层。
karl2d 可以免费使用吗?用的什么许可证?
karl2d 以 Zlib 许可证开源。用于商业产品前,请先确认许可证条款。
karl2d 还在维护吗?
活跃维护中。karl2d 最近一次提交是在 2026年11月5日。
karl2d 适合用来做什么?
用代码量较小、易读的库学习游戏开发 开发可同时发布到桌面和浏览器的简单 2D 游戏 在 Odin 中快速原型验证 2D 玩法,无需大型引擎 按需修改库的底层实现,以适配自研引擎架构
karl2d 怎么安装和运行?
从 odin-lang.org 安装 Odin 编译器 将 karl2d 仓库内容放入游戏文件夹下名为 karl2d 的子文件夹 创建 game.odin 文件并粘贴 README 中的 hello world 代码 在游戏文件夹中运行游戏: odin run .
在哪里获取 karl2d?
源代码和安装说明在 GitHub 上:https://github.com/karl-zylinski/karl2d

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目