论文摘要
实景RPG与传统的网络游戏有着本质的不同。在实景RPG中,玩家扮演某个角色,利用特制的电子道具,完成基于真实环境的游戏任务。现今,实景游戏的研究还处于探索阶段,目前还没有出现被广泛使用的实景RPG引擎。本文针对实景游戏的特点,借鉴了传统网络游戏引擎的设计思路,结合游戏软件对架构灵活性的要求,研究和开发了一个应用于实景RPG服务器端的游戏引擎。由于实景游戏不存在图形图像和人工智能等方面的需求,但需要有丰富的游戏情节做支撑,因此,引擎的设计重点在于提供一组面向游戏应用的接口,使开发人员能够灵活地设计游戏情节。整个引擎使用C++实现引擎内核,Python脚本语言定义游戏中实体的行为,即游戏规则。引擎内核包括网络模块、游戏世界模块以及脚本接口模块。在网络模块中,设计出了一套灵活的处理客户端连接的机制:包括基于policy机制的数据包分析器,使得应用层协议与连接分离;将状态机的思想应用到处理不同的连接状态中,通过改进State模式实现了可回溯的状态机。在游戏世界模块中定义了游戏中的基本实体元素,实现了可配置的属性系统,同时设计了一个灵活的链式逻辑系统来处理游戏中发生的所有事件。在脚本接口模块中通过将Python-C API封装到一组类中,为内核中嵌入Python语言提供了面向对象的接口,实现了自动引用计数,并解决了脚本重新加载的问题。同时定义了为脚本语言提供的操作接口和脚本文件的编写规则。本引擎是构建通用实景RPG游戏服务器端引擎的初步尝试,具有良好的可扩展性和适应性。利用该引擎,开发者可以通过编写脚本,简单快速的向游戏中添加情节。