Java游戏服务器开发之概念扫盲

入行缘由

在2017年我正式的从web转Java游戏服务器开发。那个时候机缘巧合的投了一家使用Java语言开发游戏服务器的企业,当时的老板还问我为什么从web转游戏开发。当时我的回答还是历历在目:我喜欢游戏,而且对如何使用代码来开发出游戏很感兴趣。当时真的是初生牛犊不怕虎啊,因为我一点准备都没有,我当时对如何使用代码来做出游戏这件事是毫无概念。

庆幸的是,最终它还是把我录取了。也许是我要的工资比较低吧。不过无所谓了。做自己喜欢的事情,工资低点也无所谓。

概念辨析

大家先不看概念的详解,看看下面这张图中的一些游戏常用的话术,大家都了解几个?
在这里插入图片描述

概念详解

996

996描述的是上班的时间【每天9点上班、晚上9点下班,每周6个工作日】。好像在游戏圈中都有一个共识就是做游戏都是很高强度的。每天榨干精力都不够时间来处理功能逻辑、优化单子、或bug单。其实这在一个老司机看来都是狗屎了。无非就是吸血的资本家在榨干每一个打工仔的剩余价值而已。当然也不排除在一些项目中的确是非常的忙,赶上线期限。但是这种996的工作制度长期执行的后果就是,一到晚上7点没人干活,因为大脑根本无法高强度的运转,最终就是每个人都工位上磨时间,一点工作效率都没有。

到现在还有一些企业是这种情况的,因此最好在入职的时候问清楚你的职位的工作时间。很多人都认为做游戏的人工资都很高,其实按照时薪来算,也就是普通人的薪酬待遇。当然不排除一些大佬,他们的薪酬是真的高,属于那种拿着很高工资做着很少活的人。不过这种人一般都是出方案的人。我们都应该向着这种职位奋斗。

策划数据和游戏数据

一开始进游戏的行业的时候我还分不清楚这两种数据有什么区别。后面经历过修改策划数据,然后导致游戏出问题的情况下,终于深刻的理解了这两种数据的最根本的区别:策划数据程序不能在游戏运行的时候修改,游戏数据在运行过程中是时刻需要更新修改的

策划数据:理所当然的只能是策划才能修改的数据,是策划配置规则。因此我们程序开发是不能修改的,只能引用其数据。

游戏数据:是在游戏运行过程中每一个玩家产生的数据,这些数据是时时刻刻在变化的,因此我们需要去更新最新的玩家游戏数据到数据库(也就是说数据需要持久化到数据库中),以便保存玩家的游戏进度。

总结:策划数据一般使用的是Excel来进行配置,然后通过工具生成游戏容易读取的Json、cvs或者mysql的数据。而玩家游戏数据一般是保存在Mysql或者MongoDB数据库中。

PVE or PVP

这个概念将的是在游戏玩家对战中是和AI对战还是角色和角色之间的对战。
在一个游戏中PK是一个必要单不是必须的的。这要根据你的游戏是什么类型决定的。RPG类型的游戏PK是必须的,但如果是养成收集类的游戏PK则不是非必要的。

涉及到PK按照对方是否为真实的角色则分PVP和PVE。

PVP:player vs player。就是角色和角色之间的对战。
PVE:player vs environment 。就是角色和环境AI之间的对战。

游戏服

游戏服务器是维护这所有玩家的链接的服务器。这里是玩家业务的中心、是游戏数据生产的工厂。因为所有的玩家都在这里,因此设计游戏服的时候我们要用到多线程的方式来处理,毕竟一个玩家的逻辑处理太慢不能妨碍其他玩家的逻辑处理速度。但是在设计多线程的时候应该尽量的减少玩家请求导致频繁的锁竞争,从而拖慢整个游戏的流畅度,因此需要在游戏服中设计恰当的线程模型。

网关服

网关其实是用于服务端和客户端之间通信的桥梁。一般用户的一个请求从客户端发出后,来到服务器,服务器经过业务处理之后,将数据返回给客户端。

而网关这在这两者之间。但是网关又不会去处理一些游戏业务的操作,但是在网关中我们会处理一些类似ip限制这种。当然一些登录服务器之前的预处理的方式基本都可以放在网关服进行处理。

登录服

现在做游戏基本都是以分服的方式进行的。以便容纳更多的在线玩家去玩游戏。

一般客户端手机通过渠道的SDK验证之后,需要在登录服中根据平台与角色Id找到玩家所在的服务器分区。然后客户端通过HTTP请求,查询玩家所有服务器的IP地址以及端口信息,有了IP和端口之后,客户端就可以通过直连游戏服务器完成登录。

GM工具

GM工具应该是一款成熟的游戏所必须的。它在开发阶段可以让开发人员直接跳过操作步骤来直接修改数据来验证开发的逻辑是否有bug。在上线阶段则可以配置运营人员来进行邮件的发送、停服补偿的奖励的分发,关闭服务器等等的运营操作。

GM工具就类似于游戏的金手指,可以提供各种作弊操作和游戏管理方面的操作。

热更

一款已经上限的游戏是不能随随便便关服重启的。因为经常重启会导致玩家大量的流失。因此有一些小bug的话,一般都是在线热更的方式。

热更就是在不关服的情况下,更新游戏的逻辑。至于热更是如何实现的我后面会进行讲解。

热更分两种:

  1. 一种是热更新策划数据
  2. 另一种这是热更游戏代码逻辑

防挂

预防挂就是不管客户端发什么数据过来,都需要在服务器对客户端的数据进行验证。否则出出现大问题的。

例如一个客户端发送一个请求过来1砖石兑换1000个道具,但是真实的策划规则这是1砖石只能兑换5个道具。这样如果服务器不校验的话,则游戏的经济系统则会崩溃,游戏的寿命也将会终结。

游戏更新维护

手游的更新节奏是比较频繁的,配合运营出各种活动或功能,一般一周一更、两周一更等。而且很多时候游戏的更新的时间段都是放在玩家最少的时候如凌晨。目的就是避开高峰时期,争取更长的开发时间,同时如果更新出现bug也有更多的时间来进行相应的处理。

总结

最后,写给每一个即将进入游戏开发这个大坑的朋友们的心里话吧。游戏开发虽然在外界看来很高大上,但是其中的辛酸又有谁能懂。无数个奋战的黑夜里,冷风呼啸,街道上灯红酒绿,自己拖着疲惫的身躯在归家的路上感叹,游戏能大火吗?

在游戏开发这条路上天花板是比做Web的高一点点,但是它还是会有天花板的。当你到达了行业的天花板的时候,你是继续去突破还是停留在舒适圈中享受前期奋斗的成果?

而且35岁似乎是悬在每一个开发一线的人头上的一把达摩克里斯之剑。当你就要到达这个岁数的时候你将会如何选择?

这都是每一个游戏开发的问题。它不能成为你的长久之计,它最多就是在你年轻时候给你梦想的一条选择的路径。无论是爱好游戏开发希望做出一款梦想中的游戏大火从而实现财务自由,还是仅仅是它的高新让你再同龄人身上更早的实现财务的相对自由。

TO BE OR NOT TO BE ? 选择一条你无悔的路,然后再路上尽情奋斗吧。天不负,勤勉之人。

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值