1.创建角色
2.服务器握手
3.加载初始化信息
4.资源管理
5.子系统,活动
协议通信部分
理解游戏各模块协议的设计
能够使用简便的方式维护修改协议,自动生成代码对协议进行解析分发
理解长连接和短连接在不同游戏中的应用范围
了解二进制协议在游戏中的读取和机械
能设计复杂的游戏协议 比如(循环 嵌套 指向 分支)
了解json文件格式在服务器通信中的应用
掌握协议加密技术
数据处理部分
理解游戏动态数据在客户端的存储和使用(中心存储和模块存储)
能够设计方便的本地数据读入和访问功能
能够设计功能强大的事件处理机制供游戏各个模块使用
了解单例模式在游戏中的使用
理解网络坐标/数据同步
地图设计和游戏模块部分
理解AStar和路径优化,了解斜45度地图和正向地图的区别和设计
能设计地图编辑器整合数据和资源
理解地图设计原理,会做高性能的多人同步地图
熟悉掌握游戏主要功能框架的设计和实施(战斗,任务,背包)
熟悉游戏各个常用系统,能快速完成新系统的代码开发调试
比较清楚的了解服务器和客户端在各个系统设计中应该负责的工作区分
资源加载存储部分
理解Avatar原理,能设计多层形象换装接口
理解对象池技术,了解人物、法术.地图资源的释放和回收
了解游戏资源多线程加载的使用,能根据需求设计游戏各个资源的加载优先级
了解shareObect存储游戏资源的设计和实施
UI部分
理解UI制作和UI组件制作,熟练设计游戏常用组件
会使用自动构建界面/UI组件技术,能快速更换组件皮肤
有自己的UI编辑器
了解用户体验的三个基本原则,并在界面开发中实施
游戏发布部分
熟悉掌握多语言版本设计流程和实施,
能够快速更换游戏中所需的图片和代码中的文本文字
能根据各个版本的需求灵活的控制功能接口的开放和调整
了解各个语言文字嵌入的使用
了解游戏中常出现的外挂(加速,封包),并且有处理外挂的技术
理解CDN和沙箱问题,常见网络知识,客户端文件部署,更新操作版本控制
理解游戏资源SVN版本控制
了解各个不同渠道平台的代码接入规范(qq,360)
熟悉游戏的加密和混淆原理,有加密混淆工具
进阶
能够自己设计完善一个完整的Arpg/slg/回合制游戏框架
有已经上市产品经验
有多个不同类型游戏产品经验
===========================================================================================================
回到flash,个人认为一个菜鸟要向老手以及高手/大师转变需要掌握的:
理解flash的显示列表
理解事件冒泡,理解鼠标事件等
理解flash的性能瓶颈和大多数影响性能的地方
理解帧跑道模型,知道timer和enterFrame的关联和区别
理解RSL(runtime share lib)和loader的applactiondoamin以及多模块开发/运行的优势
理解反射,类定义,库链接定义
理解常用数学公式
理解图形图像和多媒体原理,会处理图形图像
理解动画原理和帧,刷新的概念
理解小数点坐标和整数坐标点区别,flash最小坐标区间以及各种坐标变换
理解flash重绘区域和内部的运行规则
理解BitmapData,copyPixel和Blit以及Blit适用的地方,原理
理解BitmapData常用操作,如:滤镜,通道拷贝等
理解BitmapData的内存共享和释放,引用,垃圾回收(强制GC)
理解对象池
理解Socket和二进制操作
理解flash里的声音控制以及声音二进制处理/获取
理解怎么和美术配和,什么样的东西能在表现和性能之间取得平衡
理解位图和矢量图的差别以及位图缓存、
理解MousEnable和mouseChildren和常用的滤镜操作HSB等
理解AStar和路径优化
理解Avatar原理
理解地图和战斗机制和代码,会做高性能的多人同步地图
会控制操作界面
会平滑处理CPU避免峰值卡帧和优化实际运行性能,会内存换cpu,cpu换内存
理解UI制作和UI组件制作
理解如何使用flashAPI以及迅速掌握新出功能
理解网络坐标/数据同步,巡航算法
理解AIR和Flex,会使用Flex快速开发出项目中使用的工具
理解flash显示原理,脏矩形算法
理解flash常用显示对象操作
理解ObsServer设计模式和事件模型原理
理解二维矩阵和三维矩阵变换
理解手机开发和部署AIR
会使用一个3D引擎/框架
理解3D原理,理解显卡基本原理
理解MVC思想,理解23种常用设计模式
理解OOP和面向过程,结构化程序的各自优势
理解PNG8,PNG32,JPG,JPG-XR,H264,AAC,MP3,flash语音编码
理解FMS和FMS相关操作类
理解安全沙箱
深入研究各种算法,程序原理,设计方法
理解下载多线程,下载单线程,AS多线程以及Worker应用范围
理解Debug,导出工程,断点。
理解内存分析和性能分析以及优化
理解如何将一个大系统分解成多个子系统,子模块以及如何合并
会需求分析,程序逻辑分析,系统分析,项目组织
掌握敏捷开发和迭代开发,提高开发效率,适应功能需求变化
理解测试和bug处理,理解团队开发之间合作
会使用tweenMax等第三方类库,会开发类库
理解接口,继承,组合封装的作用
理解CDN和沙箱问题,常见网络知识,客户端文件部署,更新操作版本控制
SVN版本控制
理解领域知识,理解游戏
理解SWC的作用(导出代码,UI界面,资源等,以及配合RSL)
会使用自动构建界面/UI组件技术
理解炼金术,会从C/C++传统游戏开发中学习经验技巧甚至代码
会掌控一个项目以及解决项目中出现的任何(注意这个词)技术问题
会开发一个项目专用框架,会封装项目底层
会制作一个游戏2D/3D引擎
掌握独立学习钻研的方法。
做事情(写程序)要有效率,并且稳定。
相信自己可以比别人做得更好并努力去做。
保持快乐心态并成为多面手,提高综合素质和能力(不仅限于编程)