arcaletSpaceShooter2DOnline版实作范例www.
arcalet.
com使用Unity3D0SpaceShooter2DOnline版实作范例1-1Online基本概念1-2arcalet入门基础1-3登入游戏1-4处理讯息1-5玩家操控八风吹不动,一屁打过江《佛印禅师公案》射击游戏是实时要求非常高的游戏,为了让程序设计师很快能学会设计在线游戏程序,所以我们选择这个简单的游戏做为范例.
依续着上一章的单机版太空射击游戏,在改造为多人联机后,比较单机与在线的版本,您会发现用arcalet设计在线游戏真的很简单,原本如如不动的远程场景对象,在一弹指间竟然随着远程玩家的动作同步动了起来.
arcaletSpaceShooter2DOnline版实作范例www.
arcalet.
com使用Unity3D11-1Online基本概念在进入到Online的世界之前,我们先来介绍一些基本观念与专用术语,对于从没接触过多人联机游戏的开发者而言,本文的内容是必要且实用的.
虽然本文的Online技术是由arcalet云端服务所提供,开发者不必架设服务器主机,也不必写网络程序,但是了解这些基本概念对于往后开发多人联机游戏仍然是必要的.
多人联机想象一下我们过去曾玩过的多人联机游戏,在我们的计算机画面上除了有我所控制的玩家脚色外,同时还会有其他玩家操控的角色,非常热闹.
每一个玩家角色动作、位置、状态发生变化时,不只是自己的游戏画面会跟着改变,其他玩家的游戏画面也会同步跟着改变.
多人联机游戏必须仰赖网络联机技术来实现,这是无庸置疑的.
为了「看到」其他玩家,游戏程序必须有能力取得其它用户的状态信息;而为了让其他玩家「看到」自己,游戏程序也必须传递自己的状态信息给其他玩家.
现代网络的联机方式都是以主从式(Client-Server)架构为主,联机必须由客户端发起,向服务器提出联机的要求,并获得服务器的同意联机才能正式建立;另外一种点对点的联机方式则是先通过一连串复杂的主从式联机与互传讯息之后,建立客户端与客户端之间直接传递讯息的能力.
Note联机只能由客户端向服务器提出要求,在客户端和服务器还没联机时,服务器不可能向客户端发起联机,当然也不可能传递数据给客户端.
联机通讯方式则分为以下两种:Connection-Oriented这种联机通讯方式是让客户端永远处于联机中的状态,即使没有数据传递,联机仍然有效,联机中的状态我们称之为「活着的(alive)联机」.
多人联机游戏程序非常仰赖Connection-Oriented联机通讯,唯有此种通讯方式才能达到实时状态更新的要求.
arcaletSpaceShooter2DOnline版实作范例www.
arcalet.
com使用Unity3D2Connectionless这种通讯方式是当客户端有数据要传给服务器时才连上服务器,讯息传递结束后就立刻中止联机,最常见的Connectionless联机通讯就是Web服务所使用的HTTP协议.
这种通讯方式无法用在实时性要求很高的多人联机游戏,一般我们看到的网页式游戏,都是在FLASH程序中使用Connection-Oriented联机通讯,如果是单纯使用HTTP,就必须采用不断轮询的方式跟服务器沟通,效能和效率明显不佳.
游戏服务器游戏服务器通常不是指单一功能的服务器,而是以网络通讯服务器为核心,搭配游戏进行所需的各种功能服务器,组合而成的一群服务器主机群.
多人联机游戏服务器可能简单到只由网络通讯服务器与玩家数据库服务器组合而成,也有可能复杂到包含数据库服务器、网站服务器、文件服务器、仲裁服务器等,一般来说,坊间贩卖的游戏服务器软件通常指的是负责即时消息传递的网络通讯服务器,又称为socket服务器.
arcaletSpaceShooter2DOnline版实作范例www.
arcalet.
com使用Unity3D3场景当一群玩家联机到游戏实时通讯服务器时,位在同一个游戏场景内的玩家可以「看见」彼此的行为.
此处所谓的「看见」指的是网络讯息的通透性,当玩家传递讯息到他所身处的游戏场景时,此场景中的所有玩家都会收到,不在此场景中的其它玩家则不会收到,也就是说,「游戏场景」具有分隔网络空间的效用.
就游戏开发实务来说,玩家在游戏中可能位于一个场景,也可能同时存在于多个不同的场景,这点和真实世界的人们一时间只能出现在一个场景有所不同.
上图显示四种不同用途的游戏场景,除了主大厅是游戏必备的场景外,其它都是依照游戏的需求设计而建立的.
另外游戏场景依其用途与生命周期之不同,分为「静态场景」与「动态场景」两种类型:静态场景静态场景是游戏系统建立时就已经存在,无法另建副本(instance),玩家可以进入与离开静态场景,但是不能删除.
动态场景动态场景在游戏建立时并不存在,玩家可依游戏机制在游戏中建立副本,已经建立的动态场景副本才是已经存在游戏中的场景,玩家才能进入或离开场景.
Note此处是Online观念中的「场景」,与Unity3D的「场景」都具有空间分隔的概念,虽然两者的名词相同,但是开发者在程序逻辑中不必将两者视为一体,可以依照游戏机制与需求做更有弹性的规划.
关卡关卡关卡关卡A关卡关卡关卡关卡B主大厅主大厅主大厅主大厅聊天室聊天室聊天室聊天室AarcaletSpaceShooter2DOnline版实作范例www.
arcalet.
com使用Unity3D4人物角色游戏中受玩家控制的人物角色称为Hero,由计算机AI(人工智能)控制的人物角色则称为NPC.
人物角色在游戏中的动作都必须透过游戏服务器进行追踪查核,同时广播给场景中的每一个玩家,让玩家的客户端程序可以进行游戏数据与画面的同步作业.
宝物与道具宝物与道具是开发者为了让游戏更好玩所加入的改变游戏机制的设计,从程序设计的角度来看,宝物与道具只是系统中的数据属性,游戏程序依照这些属性改变游戏行为,让游戏更加丰富生动.
宝物和道具的取得依据游戏机制设计的不同,有些是玩家在游戏中取得,有些则是透过游戏商城购买取得,无论是玩家在游戏中自力取得,还是从商城中购买,游戏开发者都必须审慎规画,不可以让游戏机制失衡.
高明的游戏企划师能够善用玩家心理因素,让宝物道具在玩家追求娱乐与游戏公平性之间维持平衡.
计分板计分板是游戏中增加玩家追求晋级动力的重要工具,简单的计分板系统只有单纯的数据输入、统计、排行功能,不过由于它能将玩家在游戏虚拟世界中的努力成果公诸于世,满足玩家炫耀心理,所以有许多单机游戏都会透过计分板的功能让玩家之间形成竞技较量的风气,藉此巩固游戏人气.
在多人联机游戏的世界,虽然玩家与玩家可以在游戏中互动,但是计分板仍是不可缺少的功能.
对于一般的用户来说,我们使用宝塔面板免费版本功能还是足够的,如果我们有需要付费插件和专业版的功能,且需要的插件比较多,实际上且长期使用的话,还是购买付费专业版或者企业版本划算一些。昨天也有在文章中分享年中促销活动。如今我们是否会发现,我们在安装宝塔面板后是必须强制我们登录账户的,否则一直有弹出登录界面,我们还是注册一个账户比较好。反正免费注册宝塔账户还有代金券赠送。 新注册宝塔账户送代金券我们注册...
青云互联怎么样?青云互联是一家成立于2020年6月的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,目前提供有美国免费主机、香港主机、香港服务器、美国云服务器,让您的网站高速、稳定运行。美国cn2弹性云主机限时8折起,可选1-20个IP,仅15元/月起,附8折优惠码使用!点击进入:青云互联官方网站地址青云互联优惠码:八折优惠码:ltY8sHMh (续费同价)青云互联活动方案:美国洛杉矶...
horain怎么样?horain cloud是一家2019年成立的国人主机商家,隶属于北京辰帆科技有限公司,horain持有增值电信业务经营许可证(B1-20203595),与中国电信天翼云、腾讯云、华为云、UCloud、AWS等签署渠道合作协议,主要提企业和个人提供云服务器,目前商家推出了几款特价物理机,都是在内地,性价比不错,其中有目前性能比较强悍的AMD+NVMe系列。点击进入:horain...