(2/3) DOOM/Quake I/II/III 网络模型的演化

(2/3) DOOM/Quake I/II/III 网络模型的演化

这一篇是上一篇DOOM3 技术点滴的自然延续,但内容上独立成篇,实际上描述了 id software 从 DOOM 1 开始的若干款 FPS 游戏在网络架构方面的演化。同样的,更多的细节可参考这里和 Quake III Arena 网络协议规范(非官方) (看起来在互联网上已经找不到链接了)。

本文是系列的第二篇:

DOOM3 技术点滴

DOOM/Quake I/II/III 网络模型的演化

DOOM3 网......

(1/3) DOOM3 技术点滴

(1/3) DOOM3 技术点滴

今天下午读到一组 DOOM 3 相关的技术文章,这些文章描述的是十年前 (2006) 的技术,但依然有较强的参考价值。其中的一份技术记录描述了 DOOM3 BFG 开发过程中遇到的一些特定的性能问题。

这里的记录和描述非常简略和仓促,更详细的解释可参考原文。

[注] DOOM3 BFG 是 DOOM3 的全平台资料片。

本文是系列的第一篇:

DOOM3 技术点滴

DOOM/Quake I/II/III 网络模型的演化

DOOM3 网络架构......

暴雪游戏开发趣闻 (若干则)

这是 (Youtube) Blizzcon 2015 Engineering Community Amphitheater Discussion 的部分内容。挑了重点,简单记录了一下。

设计和工程

风暴英雄的数据驱动做得很好 (因此设计自由度很大)。在这样灵活度的支持下,设计师在 Blizzcon 上想搞个大新闻:两个不同的玩家可以控制同一个英雄。程序员们一听都慌了,后来想了想,搞定了。

工程师们不会随便说“这不行”,要想让设计师们尽情发挥就不该随便说 No ——尤其是你要是不给弄,......

(Unity) 为被 Lua 隔断的 C# 实现添加 Profiler 支持

问题描述

Unity 项目在实践中往往选择使用 Lua 作为更上层的逻辑脚本。这一方面是由于 Unity 本身对热更不是很友好,用 Lua 热更灵活得多,另一方面也是简化与服务器共享代码和数据。目前多种不同的 Unity + Lua 集成方案中,实践中采用比较多的是庞巍伟同学的 slua 方案。

使用 Lua 的团队,往往倾向于“较重的”集成,也就是暴露相当大规模的引擎接口给 Lua,这样逻辑上才能......

类型安全的 C++/Lua 任意参数互调用

在 C++ 和 Lua 协作时,双方的互调用是一个绕不开的话题。通常情况下,我们直接使用 Lua/C API 就可以完成普通的参数传递过程。但在代码中直接操作 lua stack,容易写出繁冗和重复的代码。这时我们往往会借助 tolua++ 之类的库,把参数传递的工作自动化,降低负担。

进一步讲,由于 Lua 的参数传递在个数和类型上非常灵活(任何一个函数可以传递任意个数和类型的参数),有时我们会希望在与 C++ 的互操作时保留这种灵活性,比如 C++ 向 Lua 发一个消息时,如果可以是一个消息 ID 带上任意数量和类型的参数,就会很方便(反过来也一样)。由于 C++ 能通过可变参的模板函......

知识共享许可协议
本作品由Gu Lu创作,采用知识共享Attribution-NonCommercial-NoDerivatives 4.0 国际许可协议进行许可。