Quake 3 源码回顾:网络模型

2024-11-23

本文回顾了Quake 3引擎优雅的网络模型,它基于UDP/IP协议,并采用快照和增量更新机制来最小化数据传输量和弥补UDP不可靠性的缺点。服务器端保存客户端最近的32个游戏状态快照,并通过比较当前状态和之前的快照生成增量更新包。即使UDP数据包丢失,系统也能自动重传旧数据和新数据。文章还解释了Quake 3如何使用C语言的预处理指令实现内存自省,以及NetChannel模块如何通过预分片避免路由器分片,并提供可靠和不可靠消息的抽象。

阅读更多
未分类 Quake 3 网络模型

超级任天堂图形系统工作原理

2024-08-21

本文介绍了超级任天堂游戏机图形系统的硬件架构和工作原理,包括像素处理单元(PPU1和PPU2)、VRAM、OAM、CGRAM等组件的功能,以及不同图形模式下VRAM的访问方式。文章还探讨了PPU内部结构的研究现状,并展望了未来对图块贴图和精灵渲染的深入研究。

阅读更多
未分类

SNES 图像:186.2 纳秒的挑战

2024-08-10

本文深入探讨了超级任天堂(SNES)图形系统的硬件和渲染机制。SNES 需要在极短的时间内(每像素 186.2 纳秒)生成像素并将其发送到 CRT。由于 VRAM 访问延迟的限制,SNES 巧妙地利用了 PPU 内部内存、平面贴图布局以及 HBLANK 时间等技术来实现多层背景和精灵渲染。文章还对比了不同游戏机时代的精灵渲染技术,例如精灵单元、行缓冲区和精灵帧缓冲区,并解释了 SNES 如何通过其独特的架构在有限的硬件资源下实现高效的图形处理。

阅读更多
未分类

深入解析超级任天堂视频系统

2024-07-29

本文作者从任天堂工程师的角度,深入浅出地解释了超级任天堂(SNES)视频系统的运作原理。文章从90年代初期电视机的结构入手,详细介绍了CRT显示器的构成、工作方式以及控制信号。作者以NTSC制式为例,解释了SNES是如何生成符合标准的视频信号,并详细分析了SNES的画面分辨率、刷新率、消隐区等技术细节,以及PAL制式下的差异。此外,文章还介绍了SNES支持的多种视频输出方式,包括RGB、复合视频和S-Video,并解释了欧洲版SNES在PAL制式下遇到的挑战和解决方案。

阅读更多

驱动编译器

2024-07-27

本文介绍了编译器驱动程序以及编译过程的三个阶段:预处理器、编译器和链接器。预处理器将源代码文件转换为翻译单元,编译器将翻译单元转换为可重定位的目标文件,链接器将所有目标文件组合在一起生成可执行文件。文章还介绍了如何在Linux平台上使用gcc和clang编译器驱动程序,并解释了与创建可执行文件相关的核心概念。

阅读更多