Welcome 微信登录

首页 / 软件开发 / JAVA / 手机网游制造之数据处理篇

手机网游制造之数据处理篇2011-01-24 csdn博客 陈跃峰开发程序:疯狂的炸弹

开发进度:第三期

本期要点:设计服务器端数据处理功能

开发平台:java平台

手机网游只有客户端是玩不起来的,必须要有服务器端。开发服务器端,最核心的就是设计服务器端的数据处理功能(完整的实例程序请到http://www.shudoo.com/bzsoft下载)。

在一般的服务器端程序中,服务器端程序主要包含数据存储、程序逻辑控制和网络编程等部分,数据存储和程序逻辑控制结合的比较紧密,可以统称为数据处理。为了方便网络数据的传输和整个程序的维护,程序的服务器端最好跟客户端的开发语言一致。

PC上程序的服务器端开发,对安全性和响应时间等要求都比较苛刻,要求数据传输处理快、存储安全,响应时间短。不过手机程序的网络传输速度相对PC要慢不少,所以手机网游的服务器端要求相对较低不高,开发也更容易。

服务器端数据处理设计思路

当客户端第一次连接服务器端时,服务器端分配一个唯一的用户ID给客户端,在客户端获得该用户ID以后,每隔一定时间向服务器端查询,看服务器端是否有匹配的用户可以进行对战。

如果没有则向客户端反馈继续等待的指令,如果有匹配的用户则为这两个客户端分配房间ID,并生成地图数据信息,开始游戏对战。进入游戏界面以后每隔一定时间获得一次地图数据,当用户移动角色时向服务器端发送移动指令,服务器端根据客户端的移动请求进行逻辑处理并对应的修改地图数据(见图)。

当客户端连接到服务器端时,服务器端进行逻辑处理,分配一个唯一的用户ID给客户端。在获得房间ID时实现的思路和用户ID实现一样,而对于游戏界面的地图数据,包括各个地图块的数据和玩家位置、方向等信息,则使用Java中一个自定义类进行代表,每个房间的数据就是该类的一个对象。

分析数据处理技术

在《疯狂的炸弹》游戏中,要处理的数据主要有三种:用户ID分配逻辑、玩家分配逻辑和玩家移动控制逻辑。用户ID分配逻辑是为玩家分配唯一的编号,比较简单;玩家分配逻辑是将处于等待状态的两个客户端分配到一个房间,并初始化游戏数据的逻辑;玩家移动控制逻辑是判断玩家是否可以实现移动,并修正移动以后的游戏数据,比较复杂。

玩家移动控制逻辑的原理如下所示:在游戏界面中,依次存储每个单元格中显示的图片序号,玩家也按照行号和列号来存储位置,整个界面是一个11行10列的区域,所以在移动是按照单元格判断移动即可。在移动时,先判断当前用户ID是对战玩家中的用户1还是用户2,然后判断以后的单元格是否超出地图区域,如果没有超出地图区域则按照移动方向,修改玩家的行号和列号。

服务器端数据处理设计步骤

第一步:创建项目

启动Eclipse,选择“File→New→Java Project”,设置项目名称为“BomberServer”,并一路选择“Next”, 完成项目的建立。然后新建一个入口类,选择“File→New→Class”,设置名称为“Server”,点击“Finish”。创建项目的代码下载地址是http://www.shudoo.com/bzsoft。