多人在线互动类独立游戏开发小结
游戏介绍
麻雀虽小五脏俱全
- 玩家角色系统
- 角色造型
- 等级经验
- 体力
- 动作: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数据库操作基本类库
- 手工打造数据库连接池
详设
游戏各模块的详细介绍我将放在其他博文中一一呈现
在这里我要说明两点
- 好的设计在你不去动手实现时,一般是不会出现
- 掌握重构,游戏需要不断维护,随着功能的增加,控制维护代价势在必行