编辑“︁
HowToWriteAdventureGamesUsingArianne
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
==使用的技术== 为了实现mapacman,我们将使用我们的多人在线游戏引擎Arianne。所以在设计游戏之前,我们必须了解阿里安的主要概念和思想。我们需要使设计符合一些简单的规则,以获得最简单的设计和最好的性能。 Arianne使用UDP传输协议,这是可用的最快、最低的ping传输。然而,它的代价是应用程序无法检测丢失的数据包。如果你的连接真的很糟糕,你将经常失去与服务器的同步,因为如此多的数据发送将丢失。但是,没有传输方法可以帮助您进行这种连接! 阿里安的系统基于感知/动作/感知方案。这涉及到服务器向客户机发送一个Perception,它是一个RPObjects列表(Arianne中的对象是RPObject类型),其中包含了相应的修改、添加和删除。客户端接受感知并处理它以更新他们对游戏环境的看法,然后如果他们想执行一个动作,他们会将一个RPAction(Arianne中的动作类型为RPAction)发送回服务器。在下一个回合,服务器发送一个新的感知消息,该消息将包含操作的结果(即受操作影响的对象的更改)。 这种方案有几个优点: *与基于回合和实时的游戏完美结合 *在每个时间点上都有一个连贯的博弈状态 *低ping时间的玩家不会获得疯狂的优势 *可以修改轮换时间以提高带宽/性能 *支持比其他系统多几个数量级的玩家。 另一方面,它也有一系列明显的缺点: *结果只有在回合实际发生时才有效(即,动作结果只在下一回合出现) *不是制作第一人称射击类游戏的最佳/最简单方法 然而,这个简单的系统功能强大,几乎可以轻松地编写所有游戏:实时游戏和基于回合的游戏。 [[Image:PerceptionActionPerception.png]] 游戏设计中的一个主要问题是为服务器选择一个转换时间。它应该基于我们正在做的游戏类型。例如,一个实时策略游戏需要大约300毫秒的转弯时间,而基于转弯的策略游戏则需要1000-1500毫秒的转弯时间。回合制游戏比非回合制游戏节省了很多带宽,但是请注意,回合时间越短,带宽使用率就越高。还要记住,转动时间越短,CPU使用率就越高。 感知由一系列对象组成。RPObject由以下几种属性组成: <br> attribute=value 这些属性允许在对象中存储字符串、int和float。 RPObject也由插槽构成。槽是一个物品的容器,很像一个口袋、一个袋子、一个盒子或一只手。关键是,如果我们的对象需要有对象在其中,或附加到它们,您需要使用插槽。 [[Image:RPObjectER.png]] 世界上所有的动态变化都是通过行动来实现的。RPAction也由属性组成。您必须重新定义动作对象的默认属性,以便该动作特定于您的游戏。 每个播放器都使用MySQL数据库系统存储在关系数据库中。你不需要知道这是怎么做到的,但你可以相信我,它的工作!所有东西都存储在数据库中,从而使整个世界永久不变。这取决于您决定哪些程度的东西需要存储在数据库中,何时以及多久提交(存储)一次。数据库是Arianne在撰写本文时的主要瓶颈。
摘要:
请注意,所有对gamedev的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Gamedev:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
不转换
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息