多人在线互动类独立游戏开发小结
游戏介绍
麻雀虽小五脏俱全
- 玩家角色系统
    - 角色造型
- 等级经验
- 体力
- 动作:stand、walk、run、eating等
- 道具系统:载具、武器、装饰品等
 
- 账户系统
    - 账号、昵称
- 数据库
 
- 地图/场景系统
    - 多地图/场景支持
- 场景切换
- 地图切换
- 可移动区域、碰撞检测
 
- 玩家互动玩法
    - 多人在线
- 聊天
- 觅食
- PK
- 狩猎
 
开发语言/工具类库
语言:ruby
开发环境:windows RubyMine集成开发环境
技术架构/总体设计
- 
    客户端 功能划分 - 图像/音频资源配置、资源缓存
- 动画、图形渲染
- 用户操作
- 通讯
 分层 MVVM模式 - view 视图
- viewModel 视图相关业务逻辑
- model 数据实体类、message实体类
- service 数据相关业务逻辑
 
- 
    服务器端 功能划分 - 用户数据管理
- 公共游戏数据管理
- 与所有客户端通讯
 
数据通讯 socket TCP长连接
- 
    客户端启动时与服务端建立TCP连接 
- 
    通讯数据统一json格式 
- 数据加密传输
    - 基本DES加密
- 随机秘钥
- 加密流程
 
- 
    打造消息通讯基础框架 
- 仅通讯重点数据
    - 人物移动时仅传输目标位置
- 同一地图中的玩家才进行数据通讯
 
图形
- 开源图形游戏引擎gosu
    - 提供基本图形渲染功能
- 提供拼音播放功能
 
- 
    打造动画系统 
- 打造GUI基础框架
服务端数据存储
- 使用mysql存储用户数据
- ruby-mysql gem
    - mysql数据库操作基本类库
 
- 手工打造数据库连接池
详设
游戏各模块的详细介绍我将放在其他博文中一一呈现
在这里我要说明两点
- 好的设计在你不去动手实现时,一般是不会出现
- 掌握重构,游戏需要不断维护,随着功能的增加,控制维护代价势在必行