P1L6——游戏开发前后端程序区别
P1L6——游戏开发前后端程序区别
游戏开发前后端程序方向选择
对于学生和转业人员,要明确自己的定位,选择以 前后端程序的哪种身份进入行业。
针对性地进行学习、突破、专精,当自己的技能达到一定水平后,可以前后端全方面发展。
但是对于初学者的建议,一定是选择前后端其中一条路线进行学习,
如果双管齐下,由于时间、精力、专注度种种因素往往会得不偿失。
游戏开发前后端程序的定义
- 
游戏 客户端程序员 = 前端程序员
工种主要包括:
- Unity程序员
 - UE程序员
 - Cocos程序员
 - Egret程序员
 - Laya程序员
 - Flash程序员
 
等等
 - 
游戏 服务端程序员 = 后端程序员
工种主要包括:
- C++程序员
 - Java程序员
 - Go程序员
 - C#程序员
 
等等
 
前后端核心技能点
- 
前端核心技能点
- 编程语言 c#、c++、TypeScript、as
 - 脚本语言 lua
 - 常用数据结构和算法
 - 常用设计模式
 - 游戏引擎工具使用(Unity、UE、Cocos等等)
 - 渲染原理,动画原理,着色器编程
 - 3D游戏数学基础
 - 多线程编程
 - 游戏AI编程
 
等等
 - 
后端核心技能点
- 编程语言 c++、java、Go
 - 脚本语言 shell, python, lua
 - 常用数据结构和算法
 - 常用设计模式
 - Linux操作系统熟练使用
 - 多线程编程
 - 数据库(mysql),内存数据库(redis)使用及配置
 - 网络编程(tcp, udp, http, epoll)
 
等等
 
前后端重点学习方向
- 
前端重点学习方向
- 编程语言(c#、c++、lua等)
 - 游戏引擎(Unity、UE、Cocos等)
 - 数学相关(线性代数、平面几何、立体几何等)
 - 数据结构和算法
 - 设计模式
 - 计算机图形学(OpenGL、DX)
 - 操作系统原理
 
等等
 - 
后端重点学习方向
- c, c++ 或 java,Go
 - python、lua
 - 数据结构与算法
 - 设计模式
 - 操作系统原理
 - 计算机网络
 - 数据库系统原理
 
等等
 
前后端开发范畴
前端开发范畴
- 
内容展示(渲染)
- 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
 
 - 
GM工具
- 游戏管理人员内部使用
 - 发补偿邮件,发公告,禁言,关小黑屋
 - 查看玩家行为日志
 - 可做成客户端也可做成网页操作的形式
 - 做成客户端:另一个unity工程
 - 做成网页操作: python框架Django
 
 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 文KRIFE齐的博客!
