游戏介绍

麻雀虽小五脏俱全

  1. 玩家角色系统
    • 角色造型
    • 等级经验
    • 体力
    • 动作:stand、walk、run、eating等
    • 道具系统:载具、武器、装饰品等
  2. 账户系统
    • 账号、昵称
    • 数据库
  3. 地图/场景系统
    • 多地图/场景支持
    • 场景切换
    • 地图切换
    • 可移动区域、碰撞检测
  4. 玩家互动玩法
    • 多人在线
    • 聊天
    • 觅食
    • PK
    • 狩猎

开发语言/工具类库

语言:ruby

开发环境:windows RubyMine集成开发环境

技术架构/总体设计

  • 客户端

    功能划分

    • 图像/音频资源配置、资源缓存
    • 动画、图形渲染
    • 用户操作
    • 通讯

    分层 MVVM模式

    • view 视图
    • viewModel 视图相关业务逻辑
    • model 数据实体类、message实体类
    • service 数据相关业务逻辑
  • 服务器端

    功能划分

    • 用户数据管理
    • 公共游戏数据管理
    • 与所有客户端通讯

数据通讯 socket TCP长连接

  • 客户端启动时与服务端建立TCP连接

  • 通讯数据统一json格式

  • 数据加密传输
    • 基本DES加密
    • 随机秘钥
    • 加密流程
  • 打造消息通讯基础框架

  • 仅通讯重点数据
    • 人物移动时仅传输目标位置
    • 同一地图中的玩家才进行数据通讯

图形

  • 开源图形游戏引擎gosu
    • 提供基本图形渲染功能
    • 提供拼音播放功能
  • 打造动画系统

  • 打造GUI基础框架

服务端数据存储

  • 使用mysql存储用户数据
  • ruby-mysql gem
    • mysql数据库操作基本类库
  • 手工打造数据库连接池

详设

游戏各模块的详细介绍我将放在其他博文中一一呈现

在这里我要说明两点

  1. 好的设计在你不去动手实现时,一般是不会出现
  2. 掌握重构,游戏需要不断维护,随着功能的增加,控制维护代价势在必行

基于socket通讯 实现一套消息通讯框架 - 待产出

基于长连接的游戏消息通讯数据加密 - 待产出