游戏网站制作(从零搭建游戏服务器,编译过程和环境部署教程详解)

现代的电子游戏,无论是端游还是手游,网游还是单机游戏,或多或少都会需要一些网络功能。从验证正版,到登录注册,再到多人互动,实时对战,都需要服务器端的支持。



游戏服务器是一个长时间运行的程序,它还服务于许多不规则和不确定的网络请求。主机评测&技术分享我们来和朋友们聊聊一个游戏服务器在游戏逻辑上可以分为多少个模块?

  • 注册和登录
  • 网络协议
  • 资料库
  • 游戏逻辑
  • 其他通用模块
  • 注册和登录

    这和网站后台开发有点不同,因为游戏账号的注册是由第三方平台的SDK提供的,游戏开发时只能开发登录逻辑。接收平台提供的SDK只有在游戏开发决定使用哪个操作平台时才会考虑。登录过程可以参考下面的时序图:



    网络协议

    这里的网络协议不是指TCP或HTTP,也不是指它上面的应用层协议。这里的网络协议用于游戏中客户端和服务器之间的通信。Google的协议缓冲区是应用最广泛的一个,有些直接用JSON或者MessagePack。

    数据库

    早期的游戏服务器不使用数据库,玩家的数据直接存储在文件中,每个玩家一个。

    现代游戏服务器都配备了数据库,因为游戏越来越复杂,数据量越来越大,数据库也便于数据管理和备份。

    数据库的选择与游戏道具无关,与开发者的习惯和经验有关。市场上游戏中使用的大多数数据库如下:

  • 关系型数据库
  • 蒙戈
  • DBRedis
  • 数据库在游戏服务器中的作用主要是与登陆玩家和游戏玩法相关的数据,游戏开发不会依赖于数据库是关系型数据还是非关系型数据。一般建议使用MongoDB作为游戏数据库,因为dict类型是游戏开发过程中最常用的数据结构,类似于MongoDB的数据结构(使用BSON)。而且在版本交替的过程中,不需要像SQL那样修改表结构。作为一种内存数据库,在实际开发过程中经常与MySQL结合使用。

    除了上面提到的这些数据库,我们还需要知道内存缓存(也称为内存数据库)的概念。这样,玩家登录成功后,玩家的数据要缓存在内存中,方便快速修改数据。线路不会马上清空缓存,方便短时间内重新登录,快速读取玩家数据。

    玩法逻辑模块

    以下是游戏开发中常见的玩法模块,一般游戏都会有。不同的游戏可能有不同的名字。

    背包装备系统英雄系统任务系统推送地图副本战斗系统活动管理内币商店充值(外币商店)单人竞技场多人竞技场公会系统好友系统聊天系统邮件系统新手指南红点管理

    其他通用模块

    以下模块用于帮助开发上面介绍的游戏的逻辑模块。比如聊天需要敏感词检测,好友或公会搜索使用模糊搜索。

    事件分发离线消息本身批量敏感词检测模糊搜索游戏日志系统操作日志系统

    工具类模块

    工具模块在游戏开发中也是必不可少的。以下是一些常用的工具:

  • Excel配置指南工具
  • 通用指令
  • 测试机器人
  • 服务器打包部署工具
  • 最常用的工具是Excel配置表向导工具,用于将配置好的Excel表转换成代码中可以轻松使用的数据结构。比如Python的字典结构,Lua的表结构等等。

    GM指令主要用于玩测试,或者创建新账号。不用从头开始训练,直接用指令修改等级,分发道具。

    游戏网站怎么做

    测试机器人主要用在服务器开发过程中,因为在开发过程中,客户端和服务器只是先约定了交互协议。在客户端完成所需功能的制作之前,需要使用一个测试机器人来测试自己的代码逻辑,比如测试接口的工具Postman。测试机器人的另一个目的是模拟正常玩家测试服务器。

    服务器打包和部署工具也是必须的,这些工具通常是对游戏服务器代码进行打包和加密的脚本。插入用于一键式部署的脚本可以更容易地操作和维护它们所替换的部署服务器。

    游戏后台相关模块

    后台一般是运营团队开发的。增加了几个与游戏服务器相关的后台模块,如下:

    公告系统邮件系统活动系统礼包系统操作日志

    一般有两种公告,一种是服务停止维护时登录界面显示的公告,一种是游戏中滚动显示的公告。根据游戏类型的不同,有些游戏没有滚动公告。

    邮件系统用于客服全服邮件或玩家单人邮件,游戏服务器提供相应接口向后台发送邮件。

    操作员使用活动系统来配置服务器活动的开放时间。礼包系统用于配置礼包的兑换代码。操作日志用于检查游戏中的点日志输出,并做数据统计和分析。

    游戏服务器引擎skynet介绍

    天网是一个用于在线游戏服务器的轻量级框架。如何使用可以参考官方维基。后续课程的例子都是基于这个框架,可以比作web开发框架中的Openresty或者flask等。

    天网服务器引擎的功能:

  • 且开源作者持续维护它。
  • 演员模式
  • 多线程操作
  • 多进程、内置集群最大化
  • skynet 开发环境搭建下载引擎

    在桌面上打开Xfce终端,首先创建项目目录:

    cd代码
    mkdir服务器
    cd服务器

    下载引擎需要git来克隆天网代码。

    git克隆https://github.com/cloudwu/skynet.git



    完成的项目目录结构如下:



    编译

    进入天网目录,执行make linux编译:





    运行演示

    编译成功后,执行。/skynet examples/config启动服务器:



    操作效果如下:



    你完了!已经部署了开发环境。如果你对游戏服务器的配置和环境有任何疑问,可以私信。同时,你可以分享一个服务器供应商zhizhenyun.com.cn郑智的数据。他的服务器相当不错。服务器还有独立的控制面板,非常方便。如果您需要任何指导和评价,请留言至主持人评价&技术分享!

    您可以还会对下面的文章感兴趣

    使用微信扫描二维码后

    点击右上角发送给好友