Python游戏开发平台、脚本系统架构设计

2.1 开发平台
2.1.1 系统开发环境介绍
当前程序是以python为编程语言,主要功能实现依赖于pygame模块,主要用到surface对象之间的位置变化,再利用事件监听让程序运行起来。运行中Surface对象的位置发生变化后,界面刷新,用户对鼠标与键盘进行操作时,监听操作完成相应事件。
软件开发方式:①系统总体设计②系统详细设计③编码④测试
系统运行环境:Windows7及更高版本;

2.1.2 数据库系统介绍
MySQL是一个开源关系数据库管理系统(RDBMS),它使用一种广泛使用的结构化查询语言(SQL)进行数据库管理。
MySQL是开源的,所以任何人都可以在通用公共许可证下下载,并可以自己修改设置以满足个人的需求。
MySQL具有速度快、可靠性高和适应性强等优点,并被人们广范关注。大多数人认为MySQL是在不进行事务处理的情况下管理内容的最佳选择。
因此,在数据库使用需求简单情况下,我选择MySQL作为数据库管理工具。

2.1.3 开发工具介绍
PyCharm是一种Python 集成开发环境,它有一套工具可以帮助用户提高开发python语言的效率,例如调试、语法突出显示、智能提示、自动作业、单元测试、project管理、代码跳跃、版本控制。
编码支持:其支持智能化的 、可配置的编辑器提供代码完成、代码片段、代码折叠和窗口拆分支持,使用户快速便捷的完成任务,节省了用户的时间。
项目代码导航器:这个IDE快速的帮助引领用户在文件之间切换,从一种方式浏览语句、用法和类的层次结构。如果用户记得使用他们提供的快捷键,他们的使用效率会更高。
代码分析:用户可以使用编码规则、错误突出显示、智能检测和一键代码快速完成建议来优化编码。
Python重构:在程序编写过程中,导入域/变量/常量,重命名,提取方法/超类,移动和前推/后退重构这些操作可以使用这个功能来实现,极大的减少了用户的任务量。
集成版本控制:如果用户想使用这些功能,如登录、输入、视图拆分和合并, -用户可以在VCS用户界面中找到,这是其通用的功能。
具有自带的调试器,调试器的功能多样化,可以提供多种功能,用户通过对基于python和 Django的项目进行调试,同样,系统的单元测试,也可以通过它来解决,
该调试器包括blake点、分步、多屏幕视图、窗口和计算表达式等。
集成单元测试:用户可以运行测试文件,单个测试类。一个方法或者所有测试项目。
另一方面,Pycharco还为Django的开发提供了一些很好的功能,以及对Google应用引擎的支持,以及对Pycharm的支持。

2.2 开发技术
python用作该软件的开发语言,其关键技术在于布局、事件监控和数据存储。布局主要是美化游戏界面以及界面的排版。用户交互界面用布局来实现,给用户带来美观、舒适、直接的用户体验。所以,界面布局的设计会影响到使用者的客观感受,获取用户操作使用事件监视技术,而数据监视技术记录所有操作,创建用户需要提取的数据。

2.2.1 Python动态脚本语言简介

 Python是一种优雅、简单、健壮的开源解释语言。产生于1989年,由Givavo RSM开发和设计,设计Pyhlo的最初目的是为了高效的完成某一项任务而创造的。它从一种为提高研究项目的工作效率而创建的通用编程语言开始。经过多年的发展,python已经逐渐得到改进。由于其强大的可扩展性和广泛的库支持,它已经出现在许多领域,如豆瓣等就是成功的应用python技术的例子。 Python的主要特点有: 

l)低入门标准的python语法相当简短,编写的程序通常简短,非常像日常使用的自然语言,有利于开发者的使用和理解。
2)作为一门面向对象的语言,类和对象的使用,体现了python的特征,面向对象的语言特点是在该语言被创造的时候就体现的。Python之所以能成为一门被大众喜爱的编程语言在于它的精心设计的数据和内存管理。
3)对于内存的管理,python也有其特定的部分负责,对于开发者来说,程序就显得有必要了,因为开发者只有理解这些程序的前后逻辑才能更好的写出项目,使他们不像C/C++程序员那样专注于处理内存事务。Python的程序设计和编写时间更短、出错更少也是基于此特性。
4)主机语言与其通信可以方便的被嵌入,可以用C语言编写对于一些对性能特别强调的地方,这些扩展在python中被调用以实现性能改进的目的。相反,Python解释器可以嵌入到C/C++中,它取代接口可以通过动态链接库的形式进行,通过这种方式,程序开发由此变得灵活方便。
5)在python的标准库中,里面有多个模块来实现具体的功能,涵盖了与操作系统解释器的交互的功能,这些模块可以直接用于已经完全测试过的功能开发。这些已经被充分测试的模版在实际的编程开发中得到了充分的应用。

2.2.2脚本系统架构设计
在游戏开发中,起连接的作用的是脚本。需要我们解决的问题是脚本和宿主代码,即怎样效率高的便捷的管理和操作脚本代码,让它为游戏的逻辑开发和促进整个游戏的进行。需要解决脚本和主机代码通常以事件为中心,以及他它们之间的联系。游戏引擎是游戏中与脚本进行交互的设备,由此我们可以得到脚本语言的结构,也就是脚本语言和和其他交互的接口,接口的实现是我们设计的主要部分,我们将脚本接口集成到游戏引擎的接口,目的是为了实现这些接口。有了引擎接口和游戏接口的结合,给python脚本的扩充带来了便利,同时也使python更加丰富,提供pythlo脚本和游戏引擎之间的数据交互,以达到逻辑与具体实现分离的目的。

2.2.3 脚本接口模块的总体设计
它的几个组成部分是脚本包装器、、消息处理器脚本、逻辑脚本、游戏世界接口、脚本对象管理器,其作用主要包括以下一些方面。
l)实现游戏每个功能的接口是通过提供Python脚本完成的, 游戏世界接口可以实现创建游戏对象、设置计时器、修改游戏中游戏对象的属性、或打印调试日志和其他功能,同时这个接口也实现了管理功能。
2)对于脚本文件的管理,我们使用引擎来实现此功能,所以,内部逻辑结构是调用脚本的关键,脚本包装器可以实现脚本调用的功能,即通过逻辑的方式来调用。将一个脚本交给一个单个的模块控制。消息处理器对象和逻辑脚本对象是脚本包装器的两个重要组成部分。消息处理器的作用是处理从消息到业务逻辑 。
3) 消息处理器由映射关系表来稳定和修护,动态加载、修改和删除脚本对象是引擎内核通过修改消息处理器对象维护的映射表来实现的。这个功能也实现了逻辑的热更新。引擎与Python脚本的相互交互是通过一个抽象层的脚本接口模块来设计实现的,这是一个抽象层。通过这个抽象层,Python和Cython脚本可以在Python和C基础上在Python和C++之间进行交互。其中处理异常和转换数据格式是主要部分。

2.2.4 Python调用引擎函数
引擎的逻辑部分需要使用Python语言来设计实现,因此为Pythlo语言提供访问内部实体的接口是引擎必须提供的,以下是提供一个接口的一些步骤。
1)引擎中创建具体的扩展模块代码。
2)利用样板来包装代码,其中一个单独的C源文件被编写在脚本接口系统中。
a.包含我们所需要的所有声明是python h头文件 b.为了将Python参数转换成C程序格式类型,我们为每一个函数都增加Pyobject*Mdolue_func()的包装函数,处理完成后,Python解释器将接受到一个Python对象传来的指令。模块的异常处理对象的设置是为了消除过程中出现的错误。 c.设置PyMethodDefMethod[]的数组, 用于将函数名与函数实现联系起来nteto。
d.增加模块初始化函数initMethod()。