从去年开始我们陆续设计了整个游戏前后端服务架构,之后进行了前端单人单机的编码工作,虽然还保有很多问题但整体已经可以游玩了,去年我们进行了一些websocket的调试,发现本地环境可以配置,线上始终无法连接成功,今年我们重新架设了阿里云的ECS,重新搭建环境调通了websocket,基本完成了后端的初步构建可以进行前后端联调。
这里首先说一下这个平台的概况
这是一个支持大部分浏览器(支持websocket的浏览器)的游戏平台,可以对接多种不同的游戏,提供较为精简的通讯和接口,前端使用canvas运算客户端逻辑,通信使用http+websocket,后端前期预计使用php接收websocket和http后期考虑使用java接收websocket,存储层使用redis,之前使用了memcache,但是对数据结构的管理着实让我们浪费了一些时间,同时java的同学对接redis更有经验一些,所以我们换用了redis作为数据层。架构如下图

其中websocket完成聊天和游戏内容快速交互,http完成其余的搜索组队状态等时效要求较低的动作
v0.1已经开发到可以单人在线完成游戏,同时服务端可以检测玩家的所有动作,并对其进行更改或者反馈,接下来开发的目标主要有
1、完善功能,提供多人在线游戏
2、将die,eat,move等事件进行服务端校验或直接交由服务端运算
3、优化前端游戏逻辑,重新编写面向对象的玩家逻辑,提高代码复用和性能,整合多个玩家动作,为之后的多玩家留下基础
4,、完成websocket和session的绑定,使http和websocket保持一致性
5、重新设计编写redis下的数据存储方案,同时加入session机制
6、修复游戏异常和bug