2DGameEngineByRust/引擎学习开发计划.csv

38 lines
7.2 KiB
Plaintext
Raw Normal View History

阶段,序号,任务/知识点,类型,是否有教程,推荐教程(中文优先),链接,产出/备注
阶段0 地基,0.1,Rust语言入门(所有权/借用/trait/泛型/错误处理),语言,✅有中文教程,Rust程序设计语言中文版 / Rust语言圣经,https://kaisery.github.io/trpl-zh-cn/ ; https://course.rs/,能独立写带结构体枚举trait的小程序
阶段0 地基,0.2,数据结构与基本算法,理论,✅/🔧,Rust语言圣经"手把手实现链表"+通用数据结构课,https://course.rs/,理解ECS用连续数组为何更快
阶段0 地基,0.3,游戏数学:线性代数(向量/矩阵/变换/正交投影),理论,✅有中文教程,GAMES101前几讲(线代复习+变换),https://www.bilibili.com/video/BV1X7411F744/,能手算旋转+平移的矩阵
阶段0 地基,0.4,计算机图形学基础(光栅化/帧缓冲/着色器/管线),理论,✅有中文教程,GAMES101(重点光栅化与变换),https://www.bilibili.com/video/BV1X7411F744/,能说清图片如何显示到屏幕
阶段0 地基,0.5,引擎宏观认知+游戏设计模式,理论,🔧有教程需改写,游戏编程模式中文版 + The Cherno第1集,https://gpp.tkchu.me/ ; https://www.bilibili.com/video/BV14v411h7Hu/,画出引擎模块草图
阶段0 地基,0.6,Git版本控制,工具,✅有中文教程,廖雪峰Git教程,https://liaoxuefeng.com/books/git/introduction/index.html,项目托管到GitHub
阶段1 工具链,1.1,安装Rust工具链(rustup/cargo),工具,✅有中文教程,TRPL中文版入门指南,https://kaisery.github.io/trpl-zh-cn/ch01-00-getting-started.html,cargo run跑通HelloWorld
阶段1 工具链,1.2,配置VS Code + rust-analyzer + 调试器,工具,✅有中文教程,B站搜"VS Code Rust 环境配置",https://rust-analyzer.github.io/,代码有智能提示和实时报错
阶段1 工具链,1.3,理解crate生态(crates.io/docs.rs/关键库定位),工具,✅有中文教程,crates.io / docs.rs,https://crates.io ; https://docs.rs,能自查一个库怎么用
阶段2 渲染入门,2.A,用macroquad做小游戏建立手感(贪吃蛇/打砖块),代码,🔧有教程需改写,Macroquad官方书(英文,代码极短),https://mq.agical.se/ ; https://github.com/not-fl3/macroquad,做出一个能玩的贪吃蛇
阶段2 渲染入门,2.B,winit开窗口 + wgpu初始化 + 第一个三角形,代码,✅有中文教程,学习wgpu中文版,https://jinleili.github.io/learn-wgpu-zh/,窗口里出现彩色三角形
阶段3 2D渲染器,3.1,渲染管线/WGSL着色器/顶点索引缓冲,代码,✅有中文教程,学习wgpu中文版"管线/缓冲"章,https://jinleili.github.io/learn-wgpu-zh/,理解着色器与缓冲
阶段3 2D渲染器,3.2,纹理加载(image库)与精灵Sprite渲染,代码,✅有中文教程,学习wgpu中文版"纹理与绑定组"章,https://jinleili.github.io/learn-wgpu-zh/,屏幕显示一张图片
阶段3 2D渲染器,3.3,2D正交摄像机与世界/屏幕坐标转换,代码,✅有中文教程,学习wgpu中文版"Uniform与摄像机"章(简化为正交),https://jinleili.github.io/learn-wgpu-zh/,能移动缩放视角
阶段3 2D渲染器,3.4,批处理渲染Batch Rendering(2D性能关键),代码,🔧有教程需改写,The Cherno "2D Batch Rendering"系列(C++),https://www.bilibili.com/video/BV14v411h7Hu/,流畅画上千精灵
阶段3 2D渲染器,3.5,文本渲染(字体图集/SDF),代码,🔧有教程需改写,glyphon/wgpu_text库示例 + 位图字体原理,https://docs.rs/glyphon/,屏幕显示分数与调试信息
阶段4 核心架构,4.1,游戏主循环(固定时间步长),代码,✅有中文教程,游戏编程模式"游戏循环"章,https://gpp.tkchu.me/game-loop.html,物理在不同帧率表现一致
阶段4 核心架构,4.2,集成数学库glam,代码,✅有中文教程,glam文档(概念已掌握),https://docs.rs/glam/,引擎统一Vec2/Mat3类型
阶段4 核心架构,4.3,日志系统(log/tracing分级日志),代码,✅有中文教程,log/env_logger库README + Cherno Logging集,https://docs.rs/log/,能打印分级调试信息
阶段4 核心架构,4.4,事件系统(观察者/事件分发),代码,🔧有教程需改写,The Cherno事件系统系列 + 游戏编程模式观察者章,https://gpp.tkchu.me/observer.html,各系统能订阅处理事件
阶段4 核心架构,4.5,ECS实体组件系统(先用hecs/bevy_ecs再考虑自造),架构,✅/⚠️,Bevy中文教程/Cheatbook + 游戏编程模式组件章,https://yiviv.com/bevy-cheatbook/ ; https://bevyengine-cn.github.io/learn/book_cn/getting-started/ecs/,能创建实体挂组件写系统
阶段4 核心架构,4.6,资源管理器(纹理/音频/字体缓存+句柄),架构,⚠️无现成教程,参考Bevy Assets设计自行实现,https://bevy.org/,assets.load接口
阶段5 子系统,5.1,输入系统(键鼠/手柄封装+按键映射),代码,🔧有教程需改写,winit输入文档 + gilrs手柄库,https://docs.rs/gilrs/,input.is_pressed接口
阶段5 子系统,5.2,音频系统(音效/BGM/音量,kira或rodio),代码,✅/🔧,kira/rodio库示例 + B站"Rust音频",https://docs.rs/kira/,游戏能放音效和BGM
阶段5 子系统,5.3,2D物理与碰撞(AABB/圆/响应,或集成rapier2d),代码,🔧/⚠️,B站"AABB/SAT碰撞" + Randy Gaul物理教程 + rapier2d,https://rapier.rs/,角色能站平台被墙挡
阶段5 子系统,5.4,精灵动画系统(序列帧/图集/动画状态机),代码,⚠️无现成教程,状态机参考游戏编程模式"状态"章自行实现,https://gpp.tkchu.me/state.html,角色播放走跳待机动画
阶段5 子系统,5.5,粒子系统(发射器/生命周期/批量渲染),代码,🔧有教程需改写,The Cherno "Particle System"集(C++),https://www.bilibili.com/video/BV14v411h7Hu/,爆炸火焰等特效
阶段5 子系统,5.6,场景管理与序列化(serde+ron/json),代码,✅/⚠️,B站/掘金"Rust serde" + 自行设计场景,https://serde.rs/,关卡能存文件再读回
阶段5 子系统,5.7,游戏内UI系统(集成egui),代码,✅有中文教程,egui官方示例 + B站"Rust egui教程",https://github.com/emilk/egui,主菜单/暂停界面/HUD
阶段6 编辑器,6.1,集成egui编辑器面板(实体列表/属性Inspector),工具,✅有中文教程,egui文档 + The Cherno Editor系列建立设计观,https://github.com/emilk/egui,编辑器里选中实体改属性
阶段6 编辑器,6.2,资源热重载(notify监听文件变化),工具,⚠️无现成教程,notify库README自行实现,https://docs.rs/notify/,改图不用重启程序
阶段6 编辑器,6.3,关卡/地图编辑(自做或对接Tiled),工具,🔧有教程需改写,Tiled官方(有中文) + tiled rust库,https://www.mapeditor.org/ ; https://docs.rs/tiled/,用编辑器拼一张关卡
阶段7 做游戏,7.1,选题与游戏设计(小而完整),设计,✅有中文教程,indienova独立游戏社区 + B站游戏设计入门,https://indienova.com/,一页纸设计文档
阶段7 做游戏,7.2,用引擎实现完整游戏循环(菜单到结算到存档),代码,⚠️无现成教程,串起所有系统并反向补全引擎,,从头玩到尾的完整小游戏
阶段7 做游戏,7.3,打磨与优化(性能/手感juice),代码,🔧有教程需改写,GDC "Juice it or lose it"(B站搬运),https://www.bilibili.com/,手感舒服不卡顿
阶段7 做游戏,7.4,跨平台打包与发布(Win/Mac/Linux/可选WASM),工具,✅/🔧,cargo build --release + 学习wgpu中文版Web章,https://jinleili.github.io/learn-wgpu-zh/,发给朋友能玩/发布itch.io