基于Python网络游戏脚本系统设计与实现.docVIP

基于Python网络游戏脚本系统设计与实现.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Python网络游戏脚本系统设计与实现

基于Python网络游戏脚本系统设计与实现   摘要:传统的网络游戏开发采用C/C++实现游戏的逻辑功能,随着游戏内容越来越丰富以及快速变化的市场需要,C/C ++已经不能满足开发者对于语言灵活性、易用性、动态编译的需求。为此文中提出了一种基于Python的游戏脚本系统,通过将游戏内容与游戏引擎相分离、避免硬编码,提高了游戏的开发效率和稳定性。   关键词:Python;网络游戏;脚本;集成   中图分类号:TP391.9 文献标识码:A 文章编号:1009-3044(2013)09-2109-03   1 概述   网络游戏发展至今,市场竞争相当激烈,这就促使开发者必须快速、高效的响应玩家需求才能站得一席之地。传统的游戏开发中大量使用C/C++技术,虽然C/C++有着明显的性能优势,但很多时候我们关心的不是程序的运行效率,而是程序的开发效率、维护效率、可移植性等[1]。在游戏中使用Python脚本,就正好能满足这些目标,小到一些计算公式,大到游戏的控制流程都可以通过脚本完成,且Python支持运行时动态修改,能做到代码热更新。因此,构建基于Python的网络游戏脚本系统是非常具有应用价值的。   2 Python动态脚本语言简介   Python是一门优雅、简约、健壮的开源解释性语言。它诞生于1989年,由Guido Van Rossum开发设计。Python最初源自于某个研究项目,为了提高工作效率而创造的一种通用程序设计语言。经过十来年的发展,Python已经逐渐完善,由于其强大的扩展性和丰富的库支持,很多领域都出现了它的身影,譬如YouTube、豆瓣等就是使用Python技术的成功案例。Python的主要特点有[2]:   1)进入门槛低 Python语法相当的简洁,编写出的程序通常短小精悍,且类似于自然语言,符合开发者的使用常识和直觉,再加上设计精巧的数据结构和内存管理,使得它成为一门容易学习的编程语言。   2)面向对象 Python中面向对象的实现是通过使用自定义的类和对象来完成的,这种特性是在其设计之初就被赋予的。   3)内存管理功能 Python解释器接管了内存管理,这使得开发人员可以更关注于程序本身逻辑的实现,而不必像C/C++程序员那样常常分心于内存事务的处理。正因为如此,Python开发的程序周期更短、错误更少??   4)可方便地嵌入宿主语言并与其通讯 通常一些特别强调性能的地方,可以用C来编写,然后在Python中调用这些扩展模块以达到性能提升的目的。反之C/C++中也可以嵌入Python解释器,这样就可以替代动态连接库形式的接口,使得程序开发更灵活。   5)丰富的库 Python的标准库包含有数百个模块,其功能涵盖与操作系统、解释器、Internet等的交互,所有这些模块都已经充分测试,可以直接在开发中使用。   3 脚本系统架构设计   脚本在游戏开发中扮演着粘合剂的角色,如何高效、快捷的使用和管理脚本,使之服务于游戏逻辑的开发并驱动整个游戏进程就是我们需要解决的问题。脚本和宿主代码通常是以事件为中心进行相互交互[3],具体在游戏中与脚本交互的就是我们的游戏引擎。从图1中我们可以得知脚本系统的基本框架,即脚本语言本身和脚本接口模块。脚本系统设计的关键在于接口模块的实现,为了提供一个通用的脚本系统设计方案,我们将脚本接口模块集成到引擎中。脚本接口模块主要作用是方便Python脚本的扩展和嵌入,为Python脚本与游戏引擎之间提供一个数据交互的通道,从而将游戏的逻辑和具体实现分离开来[4]。   3.1 脚本接口模块的总体设计   脚本接口模块的总体设计如图2所示,它由游戏世界接口、脚本对象管理器、脚本包装器、逻辑脚本、消息处理器脚本几个部分组成。其作用主要包括以下一些方面:   1)提供Python脚本能够实现游戏具体功能的接口,具体包括脚本可以创建游戏对象、修改游戏中角色对象属性、设置定时器、打印调试日志等功能,这是由游戏世界接口管理完成的。   2)便于引擎管理脚本文件,使得引擎能够根据逻辑灵活的调用相关脚本。这是通过脚本包装器将脚本文件由一个独立的管理类模块管理实现的,脚本包装器由逻辑脚本对象、消息处理器对象组成。其中消息处理器对象维护着一个消息到逻辑处理的映射关系表。   3)通过修改消息处理器对象维护的映射关系表,引擎内核可以动态的加载、修改、删除脚本对象,从而实现游戏逻辑的热更新。   通过脚本接口模块这个抽象层使得引擎与Python脚本可以相互交互,Python与C++的交互是建立在Python与C的基础上的,主要是数据格式的转换和对异常的处理。   3.2 Python调用引擎函数   本系统需要使用Python语言来实现引擎的逻辑部

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档