客户端程序员=前端程序员
包括
Unity程序员
UE程序员
Cocos程序员
Egret程序员
Laya程序员
Flash程序员
等等
服务端程序员=后端程序员
包括
C++程序员
Java程序员
Go程序员
C#程序员
等等
内容概要
前后端核心技能点
前端核心技能点
后端核心技能点
前后端重点学习方向
前端重点学习方向
后端重点学习方向
前后端开发范畴
前端开发范畴
UI、特效、动画、场景、特殊表现
美术规范(UI、动画、特效、原画、模型、场景)
程序中的资源加载、释放、热更新
各种资源管理器(音效、特效、动画、UI等)
网络通信(tcp、udp、消息序列化/反序列化)
多线程模型(网络线程、日志文件线程),线程间通信
模式框架(MVC、单例、工厂、观察者、状态机、内存池、事件系统等)
数据持久化(json、xml、2进制等)
通用数据结构和算法(基本几何体类、循环队列、优先队列、树、A*等)
技能和Buff系统(配置表、脚本化)
游戏AI(状态机、行为树)
3D场景中的移动、旋转、碰撞(3D数学、物理系统)
动作模型管理
UI面板逻辑
玩家数据管理(客户端服务端消息通讯)
内存占用优化
图集Alpha通道分离
图片尺寸压缩
网格模型精简
特效模型精简
内存复用、内存释放、防止内存泄露
第三方工具检查
等等
CPU效率优化
减少Draw Call
UI图集
网格合并
光照贴图
等等
后端开发范畴
并发链接管理:创建、通信、断开
多种网络通讯协议:tcp、udp、http
非阻塞编程
数据存取
MySql、redis、本地数据文件等
应用层缓存系统,提升服务性能,防止频繁读写磁盘
提高数据访问吞吐量: 阻塞模式使用多线程,非阻塞模式使用回调或协程
数据备份
基础模块开发
基础数据结构和算法库
网络API,数据库访问API, 文件操作API等封装抽象
网络协议批量制订和生成(protobuf,tdr),序列化/反序列化
日志系统(本地run日志,远端存库日志)
多线程模型,无锁编程
进程框架,多进程间通信框架
异步非阻塞逻辑框架(协程系统,回调系统)
模式框架(单例, 工厂, 观察者,状态机,内存池, 事件系统,缓存系统等)
养成逻辑
战斗逻辑
军团逻辑
排行榜逻辑
等等
数据校验,延迟处理,丢包处理
无状态服务设计
分服设计,平滑扩展
重要数据备份,防灾
前后端工具开发
前端工具开发
广泛的软件开发知识面
快速编写或搭建,接入各种工具
Android, ios平台基本编程
Unity编辑器扩展
主要扩展unity编辑器
数据档生成工具 ( excel->2进制文件 )
多语言工具
热更新资源包生成工具
批量修改资源属性工具
打包出档脚本
AI编辑器,关卡编辑器,技能编辑器
等等
Talking data
渠道sdk
性能检测 (腾讯wetest)
闪退检测报告(腾讯bugly)
等等
后端工具开发
广泛的软件开发知识面
快速编写或搭建,接入各种工具
C#, linux, shell, python
数据库操作
网页程序编写
进程启停脚本
服务器批量部署
进程监控,报警
分析数据指标
留存率,付费率,ARPU,LTV值
分析玩家行为
英雄分布,道具分布,关卡通关情况
Pandas + excel
游戏管理人员内部使用
发补偿邮件,发公告,禁言,关小黑屋
查看玩家行为日志
可做成客户端也可做成网页操作的形式
做成客户端:另一个unity工程
做成网页操作: python框架Django
总结
对于学生和转业人员,要明确自己的定位,选择以 前后端程序的哪种身份进入行业。
针对性地进行学习、突破、专精,当自己的技能达到一定水平后,可以前后端全方面发展。
但是对于初学者的建议,一定是选择前后端其中一条路线进行学习,如果双管齐下,由于时间、精力、专注度种种因素往往会得不偿失。