9shadow article banner
企业AI落地 · 企业级AI智能体 | AI智能设备软件开发 | 数字孪生 · 智慧园区 · 数字大屏 | App · 微信 · 小程序 | XR云展厅 · 元宇宙空间 | 虚拟仿真实训 | 品牌互动营销

游戏开发岗位前景(4)

游戏开发岗位的前景

 

除了开发游戏是自己的梦想之外,还有一部分人是奔着游戏开发的高薪资去的。目前来看,游戏市场正在不断扩大,所以企业对游戏技术开发精英人才的需求也越来越大。就业有前途吗?答案是非常肯定的,任何专业的精英人才都会受到重视,游戏开发的难度较大,各大手游企业都在花高薪聘请专业人才。所以,不管在什么时候,游戏开发的就业前景都是十分理想的。对于刚学成的新学员来说,刚开始的薪资固然不会太高,但在有了一定工作经验之后,薪资待遇就会慢慢提升。正常情况下,工作经验达到三年以上的游戏开发工程师,月薪可以达到一万元以上,自身开发师的月薪甚至高达十万,对于这样的收入大家还算满意吗?

 

调查数据显示,截止到目前,中国游戏市场实际销售收入达到1144.8亿元,比去年同期增长了37.7%,其中端游收入608.9亿元,网页游戏收入202.7亿元,移动游戏收入274.9亿元,社交游戏收入57.8亿元,单机游戏收入0.5亿元,其中移动游戏销售收入首次超越页游。中国游戏市场用户数量为5.17亿人,比去年同比增长了4.6%,移动游戏用户数量约为3.58亿人,同比增长15.1%。

 

由此可见,游戏行业发展的顺风顺水,游戏公司也一概往日缺钱的面貌,变得不差钱,但是游戏研发人才的紧缺却成了锁住游戏公司喉咙的问题,所以游戏公司为了招揽人才,自然也就开出高薪。不管是放在以前还是现在,游戏开发行业仍然非常缺高技术人才,因为游戏开发行业的入门难,技术栈多,并且对于游戏开发者来说转行是很难的,用一句短语来形容就是“最美逆行者”。并且在游戏开发这个行业,加班加点熬夜肯定是比其他互联网行业更多的,这点也是跟薪资成正比。并且开发一款优秀的游戏成本大,周期长,如果不是真正热爱游戏的开发者,也许很快就会被游戏开发的门槛给劝退了。游戏固然好玩,但是开发出一款属于自己的游戏更加有自豪感,区别就在于你是想成为那个使用车轮子的人,还是选择鼓起勇气,去成为那个制造车轮子的人。

 

下面介绍一些服务端开发的建议:

第一部分 —— 专业基础,用于指导招聘和实习考核;

第二部分 —— 游戏入门,讲述游戏服务器端开发的基本要点;

第三部分 —— 服务端架构,介绍架构设计中的一些基本原则。

 

一、专业基础

1.1网络

1.1.1理解TCP/IP协议

网络传输模型、滑动窗口技术、建立连接的三次握手与断开连接的四次握手、连接建立与断开过程中的各种状态、TCP/IP协议的传输效率

思考:请解释DOS攻击与DRDOS攻击的基本原理、一个100Byte数据包,精简到50Byte, 其传输效率提高了50%、TIMEWAIT状态怎么解释?

 

1.1.2掌握常用的网络通信模型

Select

Epoll,边缘触发与平台出发点区别与应用、Select与Epoll的区别及应用

 

1.2存储

计算机系统存储体系、程序运行时的内存结构、计算机文件系统,页表结构、内存池与对象池的实现原理,应用场景与区别、关系数据库MySQL的使用(本公众号内有系列文章,详情见【菜单】-共享内存

 

1.3程序

对C/C++语言有较深的理解、深刻理解接口,封装与多态,并且有实践经验、深刻理解常用的数据结构:数组,链表,二叉树,哈希表、熟悉常用的算法及相关复杂度:冒泡排序,快速排序

 

二、游戏开发入门

 

2.1防御式编程

不要相信客户端数据,一定要检验。作为服务器端你无法确定你的客户端是谁,你也不能假定它是善意的,请做好自我保护。(这是判断一个服务器端程序员是否入门的基本标准) 务必对于函数的传人参数和返回值进行合法性判断,内部子系统,功能模块之间不要太过信任,要求低耦合,高内聚。插件式的模块设计,模块功能的健壮性应该是内建的,尽量减少模块间耦合。

 

2.2设计模式

道法自然。不要迷信,迷恋设计模式,更不要生搬硬套 简化,简化,再简化,用最简单的办法解决问题 借大宝一句话:设计本天成,妙手偶得之

 

2.3网络模型

自造轮子: Select, Epoll, Epoll一定比Select高效吗?

开源框架: Libevent, libev, ACE。(本公众号内有Libevent源码详解,详情见【菜单】-【开源软件】-【源码分析】-【网络库I】)

 

2.4数据持久化

自定义文件存储,如《梦幻西游》

关系数据库: MySQL、NO-SQL数据库: MongoDB、选择存储系统要考虑到因素:稳定性,性能,可扩展性

 

2.5内存管理

使用内存池和对象池,禁止运行期间动态分配内存、对于输入输出的指针参数,严格检查,宁滥勿缺、写内存保护,使用带内存保护的函数(strncpy, memcpy, snprintf, vsnprintf等)、严防数组下标越界、防止读内存溢出,确保字符串以'\0'结束

 

2.6日志系统

简单高效,大量日志操作不应该影响程序性能、稳定,做到服务器崩溃是日志不丢失、完备,玩家关键操作一定要记日志,理想的情况是通过日志能重建任何时刻的玩家数据、开关,开发日志的要加级别开关控制

 

2.7通信协议

采用PDL(Protocol Design Language), 如Protobuf,可以同时生成前后端代码,减少前后端协议联调成本, 扩展性好

JSON,文本协议,简单,自解释,无联调成本,扩展性好,也很方便进行包过滤以及写日志、自定义二进制协议,精简,有高效的传输性能,完全可控,几乎无扩展性

 

2.8全局唯一Key(GUID)

为合服做准备、方便追踪道具,装备流向、每个角色,装备,道具都应对应有全局唯一Key

 

2.9多线程与同步

消息队列进行同步化处理

 

2.10状态机

强化角色的状态、前置状态的检查校验

 

2.11数据包操作

合并, 同一帧内的数据包进行合并,减少IO操作次数、单副本, 用一个包尽量只保存一份,减少内存复制次数、AOI同步中减少中间过程无用数据包

 

2.12状态监控

随时监控服务器内部状态、内存池,对象池使用情况、帧处理时间、网络IO、包处理性能、各种业务逻辑的处理次数

 

2.13包频率控制

基于每个玩家每条协议的包频率控制,瘫痪变速齿轮

 

2.14开关控制

每个模块都有开关,可以紧急关闭任何出问题的功能模块

 

2.15反外挂反作弊

包频率控制可以消灭变速齿轮、包id自增校验,可以消灭WPE、包校验码可以消灭或者拦截篡改的包、图形识别码,可以踢掉99%非人的操作、魔高一尺,道高一丈

 

2.16热更新

核心配置逻辑的热更新,如防沉迷系统,包频率控制,开关控制等、代码基本热更新,如Erlang,Lua等

 

2.17防刷

关键系统资源(如元宝,精力值,道具,装备等)的产出记日志、资源的产出和消耗尽量依赖两个或以上的独立条件的检测、严格检查各项操作的前置条件、校验参数合法性

 

2.18防崩溃

系统底层与具体业务逻辑无关,可以用大量的机器人压力测试暴露各种bug,确保稳定、业务逻辑建议使用脚本、系统性的保证游戏不会崩溃

 

2.19性能优化

IO操作异步化:IO操作合并缓写 (事务性的提交db操作,包合并,文件日志缓写)

Cache机制:减少竞态条件 (避免频繁进出切换,尽量减少锁定使用,多线程不一定由于单线程) 多线程不一定比单线程快

减少内存复制:自己测试,用数据说话,别猜

 

2.20运营支持

接口支持:实时查询,控制指令,数据监控,客服处理等、实现考虑提供http接口


 

 

 

九影专注软件定制开发13年,提供:游戏开发、元宇宙/虚拟仿真/AR/VR开发、小程序/H5开发、App开发/网站开发、政企系统定制、三维展示、CRM/OA/ERP软件开发等。

热线:021-50309719  负责人电话/微信15000568602 免费提供方案和报价!

 

 

本文完 

 

本文转自:如有侵权请通知删除,谢谢!https://mp.weixin.qq.com/s/tBA7bizsoAIUXhaIII0OEg