准备一台Windows Server或者CentOS服务器,本地单机测试也可以用自己电脑。配置最低2核4G,想稳一点直接4核8G,硬盘50G以上。系统选Windows Server 2012以上,或者CentOS 7.6,别用家用Win10家庭版,驱动和权限容易出怪问题。
先装运行环境。Windows端一般要JDK1.8、MySQL5.7、Redis、Nginx,JDK别装17,老手游服务端认不了。MySQL装的时候root密码记一下,字符集用utf8mb4。Linux可以用宝塔面板,装Nginx、MySQL5.6或5.7、PHP5.6,后面改配置和导库会省事很多。
服务端压缩包下载完,解压到纯英文路径,比如D:\MirMobile,别放桌面,别放带中文的文件夹。路径里有中文大概率引擎启动闪退。解压后看下里面有没有DBServer、LoginServer、GameServer、GateServer这几个目录,以及assets、sql、config文件夹,缺了就重新拿包。
进config目录,把所有ini或者lua配置里的127.0.0.1换成服务器IP。本机单机就填127.0.0.1,局域网真机测试填电脑内网IP比如192.168.1.100,外网就填公网IP。login、game、gate几个配置里的端口保持一致,常见用7000、7100、7200,也可能用5500、5600、5700,看具体引擎。
数据库这一步不能跳。进MySQL新建库,名字按服务端sql文件夹里的说明来,有的叫mir3_account、mir3_game,有的就一个总库。用Navicat或者phpMyAdmin把sql目录里的脚本导进去,账号密码和服务端db配置对上。导完看下表数量,角色表、物品表、怪物表、NPC表都得在,不然进游戏看不到怪。
防火墙一定要放行端口。Windows本地测试可以直接关防火墙,云服务器要去安全组放开7000到7200、8080、3306,不然手机连不上。路由器要是开了AP隔离也要关掉,否则同WiFi的手机也访问不到电脑。
启动顺序按数据库先开,再开登录网关,再开游戏网关,最后开主引擎。反过来开容易报连接拒绝。每个黑窗口看一眼有没有红色报错,监听地址是不是你填的IP,不是就回去查配置文件有没有漏改。
安卓客户端要单独处理。通用APK不能直接连你架的服,得改内部IP。用MT管理器或者APKTool解包,找assets/config.json、serverlist.txt、server.cfg这类文件,把里面127.0.0.1换成服务端IP,端口对齐。改完重新签名打包,不签名安卓会报解析包错误。
有些引擎自带登录器配置器,直接填IP、端口、区名,点生成APK就行,签名文件用引擎自带的,别乱换第三方。生成完发到手机安装,安卓要在设置里开未知来源安装权限。
手机连的时候和电脑同网段。局域网测试手机连同一个WiFi,别开流量。打开APK注册账号建角色,能进地图、能走路、能打怪就算通了。黑屏一般是客户端Res素材没覆盖,去服务端Data或者assets里把地图资源拷进客户端重打包。NPC不显示是怪物表NPC表没导库,补sql后重启主逻辑。
角色存不住先看MySQL起没起,再看服务端db密码对不对,日志里报Connection refused就是库没通,Access denied就是密码或账号权限错。
端口被占用就在服务器跑netstat -ano|findstr 7000,任务管理器按PID杀掉占用进程,或者整套端口统一换一组。引擎闪退优先查三件事:JDK版本错、路径有中文、某个网关已经开着没关干净。
单机自己玩到这就完了。想外网给别人连,就把服务端填公网IP,云服务器安全组放行端口,APK重新打包发别人安装。长期跑建议每天备一次库,服务端config和sql单独存一份,更新补丁先小范围重启网关试,别直接覆盖正式服。
卡顿先看资源,4G内存别把Java堆设太高,模拟器分配2核4G起步。微端资源不完整会反复拉包,把Res和Data按版本一次性覆盖全。攻沙那种多人场景,2核4G会顶不住,往上加到8核16G再加带宽才稳。

