open-sourcegamedanmakubullet-hellstgtouhousdl3openglc type: concept 创建: 2026-04-10 更新: 2026-04-10

Taisei Project

东方 Project 同人 STG(弹幕射击游戏),C11 + SDL3 + OpenGL,自研渲染引擎,多平台支持(Win/Linux/macOS/Web/Nintendo Switch)

基本信息

项目 内容
GitHub https://github.com/taisei-project/taisei
语言 C (3.2M LOC) + Python (123K, Meson 构建) + GLSL (82K, Shader)
构建系统 Meson (setup → compile → install)
渲染/引擎 SDL3 + OpenGL(自定义渲染管线)
许可 Custom "Other"(非 GPL,与东方 Project 类似,需注意)
Stars 1,515
Forks 120
创建时间 2010-10-11

核心技术点

自研 SDL3 + OpenGL 渲染管线

  • 不使用游戏引擎,C11 纯手写渲染管线
  • video.c (~30K LOC) + video_postprocess.c 后处理管线
  • shader/ 子系统管理 GLSL shader(~82K GLSL 代码)
  • 自定义纹理 atlas 系统 (atlas/ 目录)

Danmaku/弹幕系统

  • laser/ — 激光/弹幕核心子系统
  • particle/ — 粒子效果系统(弹幕视觉核心)
  • boss.c (~46K LOC) — Boss 行为和弹幕编排
  • 大量 *.glsl shader 文件用于弹幕视觉效果
  • 弹幕系统是整个项目最核心的技术挑战,与 open-source-game/openra 等 RTS 的 ECS 架构相比,是完全不同的自研渲染+物理混合设计

Entity-Component 架构

  • entity/ — 实体系统
  • object/ — 游戏对象系统
  • taskmanager.c/.h — 任务/协程管理器
  • coroutine/ — 协程子系统(可能是子弹时间/暂停机制基础)

多平台支持

  • src/backend/ — 平台后端抽象
  • src/arch_switch.c — Nintendo Switch 平台支持
  • emscripten/ — WebAssembly/Emscripten Web 平台
  • switch/ — Nintendo Switch 平台相关文件
  • xdg/ — XDG 目录规范(Linux 数据存储路径)

数据驱动 + Mod 支持

  • mod/ — Mod 系统
  • scm/ — 脚本子系统(可能是 Lisp/Scheme 方言)
  • dialog/ — 对话/过场动画系统
  • cutscenes/ — 过场动画

其他重要子系统

  • audio/ — 音频子系统(OpenAL)
  • mp/ — 背景音乐播放(mp 可能是 music player)
  • stage/ + stages/ — 关卡管理与数据
  • player/ — 玩家角色控制
  • enemy/ — 敌机 AI
  • game/ — 主游戏循环逻辑
  • vfs/ — 虚拟文件系统(ZIP 打包资源:zipfile.c
  • rng/ — 确定性随机数(多人/回放关键)

仓库规模大的原因

  • resources/ 目录含大量二进制资产(图片、音频、关卡数据)
  • atlas/ 含纹理集
  • subprojects/ 含 vendored 依赖(mbedtls, zlib, opus 等)

玩法特点

  • 垂直滚动弹幕射击:玩家控制角色躲避密集弹幕
  • 自机系统(Fighter):多种射击模式 + Bomb 机制
  • Boss Rush:多个关卡,每关一个 Boss,独特弹幕 Pattern
  • 剧情对话:东方 Project 风格对话树
  • Replay 系统:内置回放录制/播放
  • Scoring:高分排行系统
  • Mod 支持:社区自制关卡/角色

对公司 AI 游戏的参考价值

方向 启示
弹幕 Pattern 生成 82K GLSL 代码 + 46K boss.c 是弹幕视觉编排的技术核心;AI 可用于程序化生成弹幕 Pattern
确定性网络同步 rng/ + replay/ 系统暗示了帧级确定性;open-source-game/openttd 也用确定性锁步网络,可对比学习
轻量渲染管线 自研 SDL3+OpenGL 而不用游戏引擎,证明了 2D STG 场景下手写渲染的可行性
多平台抽象层 backend/ 子系统跨 Win/Linux/macOS/Switch/Web 的设计模式值得借鉴
数据驱动游戏逻辑 scm/ 脚本系统 + mod/ 提供内容扩展性;类似 open-source-game/opennox 的兼容层思路