大佬带飞,用Linux实现经典小游戏(附源码)!
老男孩IT教育
行业新闻
2023年5月15日 17:38
利用Linux系统环境,不光可以搭建常规的互联网网站业务,还可以实现游戏平台的构建。并且可以根据修改后台数据信息,对玩家游戏的数据进行修改调整,下面就完整的构建一个游戏项目。
利用Linux系统环境,不光可以搭建常规的互联网网站业务,还可以实现游戏平台的构建
并且可以根据修改后台数据信息,对玩家游戏的数据进行修改调整,下面就完整的构建一个游戏项目
容器安装部署
1、主机环境规划
在部署docker容器化游戏平台主机环境时,需要先对部署的主机地址与名称信息,以及用途进行规划:
01-配置虚拟主机名称
hostnamectl set-hostname Game-server
02-关闭系统安全软件
# 关闭系统防火墙软件
[root@Game-server ~]# systemctl stop firewalld
[root@Game-server ~]# systemctl is-active firewalld.service
inactive
[root@Game-server ~]# systemctl disable firewalld.service
[root@Game-server ~]# systemctl is-enabled firewalld.service
disabled
# 关闭系统selinux程序
[root@Game-server ~]# setenforce 0
[root@Game-server ~]# getenforce
Permissive
-- 表示临时关闭selinux
[root@Game-server ~]# sed -i '7s#enforcing#disabled#g' /etc/selinux/config
[root@Game-server ~]# sed -n '7p' /etc/selinux/config
SELINUX=disabled
-- 表示永久关闭selinux(需要重启生效)
03-进行系统时间同步
# 下载时间同步软件
[root@Game-server ~]# yum install -y ntp ntpdate
[root@Game-server ~]# ntpdate cn.pool.ntp.org
# 编写计划任务
[root@Game-server ~]# crontab -e
* */1 * * * /usr/sbin/ntpdate cn.pool.ntp.org &>/dev/null * 分 * 时 * 日 * 月 * 周
# 重启crond服务使配置生效:
[root@Game-server ~]# systemctl restart crond
04-安装系统基础软件
[root@Game-server ~]# yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack yum-utils
2、容器环境部署
进行docker下载源优化
# 配置docker-ce国内下载yum源(阿里云/清华源)
[root@Game-server ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
… 省略部分内容…
repo saved to /etc/yum.repos.d/docker-ce.repo
-- 将指定下载源文件保存到/etc/yum.repos.d/目录中
进行docker依赖包安装
[root@Game-server ~]# yum install -y device-mapper-persistent-data lvm2
进行docker社区版安装
[root@Game-server ~]# yum install docker-ce docker-compose -y
进行docker社区版启动
[root@Game-server ~]# systemctl start docker && systemctl enable docker
[root@Game-server ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2021-07-31 04:11:16 CST; 9s ago
Docs: https://docs.docker.com
-- 看到running,表示docker正常运行
游戏代码部署(服务端)
1、游戏平台代码上传部署
# 将游戏工具包中的 fuck.tar.gz 游戏代码上传
[root@Game-server ~]# rz -y
# 解压游戏工具包中的游戏代码压缩包
[root@Game-server ~]# tar xf fuck.tar.gz
# 通过docker-compose运行服务端
[root@Game-server ~]# cd fuck
[root@Game-server ~]# ./start
-- 至此利用容器化技术,已经将游戏平台服务端部署完毕
2、游戏平台网络信息修改
修改服务区服信息,将ip修改为自己服务器的ip地址即可
[root@Game-server ~]# vim www/tianlong3D/conf/serverlist/serverlist.txt
?Id Desc Name Ip Port State Type GroupName
INT STRING STRING STRING INT INT INT STRING
#预留
# 描述 服务器名 IP 端口 状态 状态 顺畅0 拥挤1 火爆2 维护3 类型 不推荐0 推荐1 组名
19901 混服公测服 oldboy 10.0.0.200 2231 2 0 1--10
[root@Game-server ~]# ./stop
[root@Game-server ~]# ./start
-- 重启游戏平台服务
游戏终端部署(客户端
)1、客户端工具安装
部署过程所需软件工具总览
01-安装客户端软件程序-jdk1.8
安装jdk环境,用于满足游戏客户端软件程序所运行的java虚拟环境,满足软件跨平台的特性:
双击jdk-8u66-windows-x64 执行程序进行下一步安装即可:
02-安装客户端软件程序-ApkIDE
安装游戏软件程序的反编译工具ApkIDE,用于将原有的客户端游戏程序代码进行反编译;
在进行反编译之后,可以修改网络地址信息,以适应当前的游戏服务网络环境。
解压ApkIDE最新3.3.3少月增强版.zip,然后运行程序中ApkIDE少月版.exe
说明:在运行ApkIDE程序时,需要系统中提前安装部署好NET Framework 3.5 框架软件。
ApkIDE程序运行起来之后,选择原有默认的游戏客户端文件ApkIDE_game.apk;
对原有的客户端游戏文件,进行反编译操作处理:
说明:游戏代码反编译的过程可能需要耗费比较长的时间,请耐心等待一会儿
游戏客户端代码反编译成功后,会看到如下操作界面信息
将反编译后的程序代码文件信息进行修改:
修改文件信息-01:assets\config.properties
将此文件中的8,13,14行将域名修改为自己服务器ip地址
修改文件信息-02:res\values\strings.xml
将此文件9,10,17,18服务器地址信息进行修改调整.
修改完毕之后,选择编译重新生成客户端游戏运行需要加载的apk文件
03-安装模拟器运行游戏
运行安装雷电模拟器软件程序,并在模拟运行完毕后,加载上面编译生成apk游戏程序文件
将刚刚生成的新apk导入到模拟器,登录游戏如下图所示,即可开心的玩耍起来:
2、客户端设置调整
开外挂作弊功能设置,实现随意充值游戏元宝,在浏览器访问:http://IP:81/zt/gm.php
gmcode默认123456
原有游戏角色元宝信息情况:元宝数量为0
根据用户ID信息进行,进行元宝重置操作:
充值完毕后游戏玩家的元宝信息情况:
修改玩家用户等级骚操作:
# 进入数据库容器
docker exec -it fuck_mysql_1 /bin/bash
# 修改数据库数据
mysql -uroot -p123456 -e ‘update mtlbbdb_19900.t_char set level=50 where aid=16;’
# 退出容器并重启服务
./stop && ./start -- 不要进行操作
