传奇手游架设和端游架设逻辑存在明显区别,整套工程包含手游服务端、数据库、网关、APP客户端、后台管理系统多个部分,文件体量更大,依赖环境组件更多,分为本地单机测试以及对外开放两套部署方式,环境参数不匹配会出现连接失败、角色创建报错、界面空白、装备不显示等各类问题。
架设前期需要整理全套资源文件,完整手游版本资源包含服务端整套源码、配套数据库脚本、手游客户端安装包、后台管理网页文件,还有版本对应的素材补丁。服务端文件存放路径全部使用英文数字命名,文件夹路径不能出现中文汉字,路径含有中文会直接导致程序读取异常,程序启动失败。
传奇手游多数版本依托Linux系统运行,Windows环境可以借助虚拟机搭建Linux运行环境,在虚拟机内部部署系统镜像,分配足够的内存与硬盘空间,虚拟机网络模式设置为桥接模式,保证本机可以访问虚拟机内部服务。部分版本提供Windows一键套件,但是稳定性较差,大量脚本功能无法正常执行,实际部署大多采用Linux环境。
部署系统环境之后,需要安装对应运行组件,包含mysql数据库、jdk环境、nginx网页服务工具。数据库安装完成之后,设置数据库账号密码,记录好账号信息,后续服务端配置文件需要填写数据库地址、账号、密码。把版本内的sql数据库脚本导入mysql数据库,导入完成检查数据表是否完整,人物表、物品表、怪物表、充值配置表都需要完整导入,数据表缺失会造成创建角色失败,功能按钮点击无响应。
接下来修改服务端内部配置文件,找到服务端文件夹内的conf配置目录,打开各个ini和properties格式配置文档,修改数据库连接地址,数据库部署在本机就填写虚拟机内网IP,同时填写数据库账号和密码。游戏网关IP,单机测试填写虚拟机内网IP,如果要对外开放,后续替换为公网IP。配置文件内的端口号全部记录,手游版本常用端口有游戏服务端口、网关端口、网页后台端口,全部需要做好记录。配置修改保存完毕,授予服务端全部文件执行权限,权限不足程序无法正常启动。
执行启动脚本,运行服务端启动shell文件,等待程序逐个模块加载,观察控制台输出日志,没有报错提示即为启动成功。手游服务端分为多个进程,游戏逻辑进程、登录进程、充值进程、聊天进程需要全部正常运行,部分模块启动失败,就会出现登录不上、聊天失效、充值功能异常。
网页后台管理系统部署,把后台网页文件放到nginx站点目录,修改后台配置文件当中的数据库连接信息,指向已经导入的mysql数据库。浏览器输入虚拟机IP加后台访问端口,就可以打开管理后台页面。后台可以实现账号管理,角色等级修改,道具下发,怪物爆率查看,服务器公告编辑等操作,后台登录账号密码一般存放在数据库管理员表当中,可以直接修改数据表重置账号密码。
客户端处理环节,原版手游客户端内部写死了服务端连接IP,直接安装原版安装包无法连接自己搭建的服务端。需要使用APK修改工具解压安卓客户端,找到客户端内部的配置文本,把里面的默认IP地址替换成自己服务端的IP,单机测试填写虚拟机内网IP,外网部署填写公网IP,同时核对端口号,保证和服务端配置的端口保持一致。修改完成之后重新打包签名APK文件,没有完成签名的安装包无法正常安装到手机或者模拟器。
本地单机测试阶段,电脑安装安卓模拟器,把修改IP签名后的APK安装包导入模拟器完成安装,模拟器网络需要能够访问虚拟机的IP地址。打开游戏客户端,进入登录界面,尝试注册账号,创建游戏角色,登录进入游戏,测试打怪、装备掉落、NPC交互、商城功能是否正常。登录失败优先核对服务端进程是否全部启动,客户端IP端口是否和服务端匹配,防火墙是否拦截对应端口。进入游戏之后装备、地图显示异常,说明客户端资源补丁和服务端版本不一致,需要替换对应资源文件。
完成单机测试之后,再做外网部署相关操作。外网部署需要服务器硬件环境,把整套服务端上传到远程服务器,服务器系统选用对应版本的Linux系统。上传完成之后重复数据库导入,修改配置文件,启动服务端整套流程。服务器后台放行游戏用到的全部端口,端口没有放行外部设备无法建立连接。客户端APK配置文件内IP修改为服务器公网IP,重新打包签名,其他玩家安装这个修改后的APK,就可以连接进入游戏。
手游版本的爆率、怪物刷新、NPC对话、任务脚本修改,需要在服务端对应脚本目录进行调整。修改怪物掉落,找到服务端存放爆率脚本的目录,修改对应怪物的掉落文本,保存之后,部分版本需要重启游戏服务端,部分版本支持热重载,执行重载命令即可生效。物品属性修改,需要操作数据库内的物品数据表,修改完成之后,新生成的装备才会读取新属性,已经产出的旧装备属性不会自动变动。
架设当中常见故障,客户端点击登录没有反应,检查服务端登录进程是否启动,核对客户端配置的IP端口;注册账号提示失败,查看mysql数据库账号权限,确认数据表完整导入;创建角色点确定无反馈,查看游戏逻辑进程日志,大多是脚本文件缺失;游戏内部分功能按钮失效,对应进程没有正常运行,需要重新启动对应模块;后台网页打不开,检查nginx服务状态,核对后台数据库配置。
不同引擎开发的传奇手游版本,目录结构会有区别,但是数据库导入、配置文件改IP、客户端修改重签这几步属于通用流程。部分版本附带GM命令,登录游戏之后输入对应指令,就可以调整角色属性,刷取装备道具,测试版本内容。整套部署优先把本地单机环境调通,确认登录、打怪、掉落全部正常,再迁移到远程服务器做外网部署,能够减少大量排错的时间。

