Please enable Javascript to view the contents

[随笔]OpenRA 源码(一)Server 启动与主循环Tick

 ·  ☕ 1 分钟

前言

    最近听闻 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 的分类就已经七七八八一堆代码了,不容易理解整体脉络。

分享

saberuster
作者
saberuster
一个喜欢编程和折腾的追风少年