前言
最近听闻 Rust 社区要做 OpenRA 的 rust 版本,我也想借此机会提升一下自己在 Rust 和引擎架构上的知识。计划每天花一点点时间看一点源码,写写笔记。如果有机会混混 PR。最开始不会太深入具体,目的是把项目代码的脉络理清。作为随笔系列,主要就是看到什么写点什么,文章没什么设计,不成体系,单纯的就是“随笔”。
OpenRA.Server 是服务端的启动代码,主要就是从命令行接收参数。Game.InitializeSettings
将参数传入。
var server = new Server(endpoints, settings, modData, ServerType.Dedicated);
在初始化Server 的时候会开新线程进行主 Loop。
然后主线程最后每隔 1 秒检查游戏状态。
OpenRA 定义了一堆 trait, ITick trait 代表需要 Tick 的对象。
结语
感觉这个源码还是挺适合学习的。代码比较简洁明了,Unreal 的源码光 Tick 的分组和 Tickable 的分类就已经七七八八一堆代码了,不容易理解整体脉络。