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.
人物角色在游戏中的动作都必须透过游戏服务器进行追踪查核,同时广播给场景中的每一个玩家,让玩家的客户端程序可以进行游戏数据与画面的同步作业.
宝物与道具宝物与道具是开发者为了让游戏更好玩所加入的改变游戏机制的设计,从程序设计的角度来看,宝物与道具只是系统中的数据属性,游戏程序依照这些属性改变游戏行为,让游戏更加丰富生动.
宝物和道具的取得依据游戏机制设计的不同,有些是玩家在游戏中取得,有些则是透过游戏商城购买取得,无论是玩家在游戏中自力取得,还是从商城中购买,游戏开发者都必须审慎规画,不可以让游戏机制失衡.
高明的游戏企划师能够善用玩家心理因素,让宝物道具在玩家追求娱乐与游戏公平性之间维持平衡.
计分板计分板是游戏中增加玩家追求晋级动力的重要工具,简单的计分板系统只有单纯的数据输入、统计、排行功能,不过由于它能将玩家在游戏虚拟世界中的努力成果公诸于世,满足玩家炫耀心理,所以有许多单机游戏都会透过计分板的功能让玩家之间形成竞技较量的风气,藉此巩固游戏人气.
在多人联机游戏的世界,虽然玩家与玩家可以在游戏中互动,但是计分板仍是不可缺少的功能.
关于HostYun主机商在之前也有几次分享,这个前身是我们可能熟悉的小众的HostShare商家,主要就是提供廉价主机,那时候官方还声称选择这个品牌的机器不要用于正式生产项目,如今这个品牌重新转变成Hostyun。目前提供的VPS主机包括KVM和XEN架构,数据中心可选日本、韩国、香港和美国的多个地区机房,电信双程CN2 GIA线路,香港和日本机房,均为国内直连线路,访问质量不错。今天和大家分享下...
【双十二】兆赫云:全场vps季付六折优惠,低至50元/季,1H/1G/30M/20G数据盘/500G流量/洛杉矶联通9929商家简介:兆赫云是一家国人商家,成立2020年,主要业务是美西洛杉矶联通9929线路VPS,提供虚拟主机、VPS和独立服务器。VPS采用KVM虚拟架构,线路优质,延迟低,稳定性强。是不是觉得黑五折扣力度不够大?还在犹豫徘徊中?这次为了提前庆祝双十二,特价推出全场季付六折优惠。...
最近我们是不是在讨论较多的是关于K12教育的问题,培训机构由于资本的介入确实让家长更为焦虑,对于这样的整改我们还是很支持的。实际上,在云服务器市场中,我们也看到内卷和资本的力量,各大云服务商竞争也是相当激烈,更不用说个人和小公司服务商日子确实不好过。今天有看到UCloud发布的夏季促销活动,直接提前和双十一保价挂钩。这就是说,人家直接在暑假的时候就上线双十一的活动。早年的双十一活动会提前一周到十天...