精华内容
下载资源
问答
  • 揭秘游戏服务器,不看后悔!!!

    万次阅读 多人点赞 2021-06-13 10:31:01
    游戏好玩,所有玩家看到了前端,但是做一款游戏,离不开后台游戏服务器的支持,服务器都要做什么,服务器的架构是什么,需要哪些技术,一系列的问题有没有思考过?下面讲下作为做服务器开发中需要做的事。 1、常见...

    目录

     

    前言

    1、常见游戏模块

    2、开发语言与项目构建发布

    3、JAVA游戏服务器,需要掌握的技术

    4、总结


    点赞在看,养成习惯

    前言

    《摩尔庄园》前段时间上线, 持续超出市场预期,相信也有不错的收益。游戏好玩,所有玩家看到了前端,但是做一款游戏,离不开后台游戏服务器的支持,服务器都要做什么,服务器的架构是什么,需要哪些技术,一系列的问题有没有思考过?下面讲下作为做服务器开发中需要做的事。


    1、常见游戏模块

    • 游戏玩法

    游戏开发中常见的玩法模块,一般的游戏都会包含这些玩法

    新手引导、任务系统、背包系统、装备系统、副本、战斗系统、活动、商店、充值,竞技场,公会系统,好友系统、聊天系统、邮件系统、红点系统等等

    • 通用模块

    1. 定时job,处理一些定期活动重置,排名发奖励等

    2. 登录,顶号,离线,断线重连处理

    3. 敏感词检测,版署需要

    4. 日志系统,记录玩家行为日志,奖励日志等

    5. 功能开启关闭,有时候游戏出问题后(比如刷奖励)指定功能需要及时关闭

    6. 掉落,奖励随机规则

    7. 防沉迷系统,主要是未成年人保护规则

    8. 聊天监控,

    9. 错误上报机制

    10. 道具卡兑换,邀请码

    11. 夏令时问题处理

    12. 不停服热更线上代码

    13. 紧急下家运营活动

    14. 合服

    • 运营后台管理系统

    1. 发布下架活动

    2. 发布公告

    3. 发送邮件

    4. 游戏资源冻结

    5. 账号封号,解封,禁言

    6. 查询当前在线人数

    7. 我自己的专栏:https://blog.csdn.net/perfect2011/category_11069339.html

    2、开发语言与项目构建发布

    一般游戏服务器使用C++,nodejs,photon, JAVA等语言开发,端游戏一般选择C++,因为端游对服务器的性能要求相对比较高一些,语言各有利弊,C++效率高,但是掌握度难些,JAVA易于掌握,开发效率搞,目前对于追求快速上线率的页游和手游来说,JAVA成了一个不错的选择,下面主要以JAVA项目来讲述服务器各模块之间如何交互,如何分工合作。项目采用maven框架构建,简化了项目依赖管理, jar包便于与持续集成工具(jenkins)整合一键打包发布svn,一般地,游戏服务器的架构划分如下三层:网络接入层、游戏逻辑层、数据存储层

    • 网络接入层

    通信方面使用Netty框架,主要封装各种物理底层通讯机制,让应用程序员关注业务逻辑。协议数据使用protobuff, Protobuf有更高的消息压缩率,时间效率和空间效率都有很大的提升,支持多语言,跨平台

    • 数据缓存以及存储

    市面用的游戏用到的数据库大多是下面这几种:

    MySQL,MongoDB, Redis

    游戏服务器都配备了数据库,是因为游戏越来越复杂,数据量也越来越多,而且采用数据库也方便对数据的管理和备份。mysql主要存储一些游戏中玩家数据,redis主要存储一些跨服数据,比如跨服排行榜数据实时排名,或者数据的缓存。

    游戏中玩家数据需要及时响应,及时反馈,一般游戏中绝大部分的数据是有缓存的,游戏中玩家产生的数据变化,一般先修改玩家缓存数据,一定时间后,缓存数据定时批量写入数据库,长期使用不到的缓存将会被清理,减少内存空间使用。

    • 游戏逻辑层

    服务器各类模块介绍 :

    模块名 功能类型 功能说明
    yyds-all maven父功能 管理模块关系,maven的一些配置
    yyds-core 公共模块 游戏业务无关的公共代码。
    yyds-common 基础模块 游戏业务相关的公共代码。
    yyds-game 游戏服 处理游戏业务逻辑(游戏和聊天业务,聊天消息通过网关进行转发)
    yyds-gate 网关服 负责维护客户端连接,转发消息。
    yyds-scene 场景服 处理地图相关业务(移动、视野同步)
    yyds-web WEB服 登录、创角、充值、GM命令、运营后台操作入口。
    yyds-platform 跨服 游戏服之间的消息中转,跨服类玩法。
    yyds-fighter 战斗服 处理战斗逻辑

    服务器架构 :

    注:platform 和多个游戏服相连接。

    流程说明:

    • 登陆流程:玩家登陆时首先连接web服,进行登陆,验证成功后,会将玩家登陆的token 放到Gate服。然后玩家连接Gate服登陆到Game服。

    • 战斗流程:玩家在Game服发起战斗,比如匹配战斗,则在Game服上匹配,然后送入Fighter 战斗服进行战斗,此时所有的战斗消息从Gate服直接路由到Fighter服,战斗结果发送给Game服,然后进行发奖等逻辑

    • 玩家移动流程:玩家移动消息同步给Scene服,Scene服每一帧同步给所有的玩家


    3、JAVA游戏服务器,需要掌握的技术

    1. Java基础知识

    2. JavaNIO编程

    3. 多线程编程,并发集合的掌握,游戏中有很多并发事件,安全性尤为重要

    4. 热更新,内存,CPU性能分析

    5. Netty,Mina网络框架精通一种

    6. Redis,memcache,MongoDB等单用或者组合使用

    7. SQL语言,数据库:如mysql

    8. 数据库操作,比如mybatis,Hibernate

    9. spring,springMvc主要用于http协议的WEB服务器

    10. tomcat,Nginx

    11. Linux常用的基本命令及shell脚本(服务器发布,启动关闭)

    4、总结

    游戏服务器因为需要面向所有的玩家,所以对服务器的稳定性要求比较高,不能总是出现问题《需要在开发中细心。

    策划的设计经常天马行空,所以也要考虑到服务器的功能扩展性,争取在尽量少写代码的情况下完成功能。

    服务端程序的开发速度很重要,需要考虑模块的通用性,功能的扩展性,尽量的降低bug可能性,合理设计。

    服务端同学任重道远,需要不断的学习和积累经验,才能做好游戏的支撑。

    加油吧,希望各位同学做出自己喜欢的游戏

     

     

     

     

    展开全文
  • 游戏服务器之服务器优化思路

    千次阅读 2014-07-16 01:59:31
    游戏服务器之服务器优化思路

    本文只是提供一些游戏服务器优化思路,其中一些思路是用在不同场合的,不是同个架构的。需要根据应用场景选用合适方式。本文的引用的文章都是在自己写的在本博客内的,也都是上线开几百个服的成熟项目的。

     

    一、框架设计优化

    1、分静态服务器和动态服务器。

    2、动态服务器使用两层负载均衡:多网关  和 多场景。网关的选择是登陆服务器根据网关的负载来选择。场景则作为分线和副本等分开。

    框架图参考:http://blog.csdn.net/chenjiayi_yun/article/details/18891591

    3、中心服务器负责服务器依赖检查和内部消息转发和控制登录流程。中心服务器会主动连接登陆服务器和后台服务器。其他服务器会主动连接中心服务器。中心服务器有主动连接和被动连接的管理器,可根据需求的服务器类型来查询需要的连接。

    中心服务器参考:http://blog.csdn.net/chenjiayi_yun/article/details/19329287


    二、业务设计优化

    1、网络

    多线程使用

    方式一:网络被动连接线程池

    被动连接线程池 http://blog.csdn.net/chenjiayi_yun/article/details/17793459

    (1)动态线程调度

    网络接收线程池的动态线程调度策略。接收发送网络使用多线程,每多增加512连接动态增加一条线程。

    动态线程调度策略参考:http://blog.csdn.net/chenjiayi_yun/article/details/35922173

    (2)网络收发处理优化

    有读才可能有写(优先读)。使用单独的epoll描述符来处理读(读epoll描述符不处理写,另一个epoll描述符处理读和写)。每隔一段时间才写。写是检查写缓冲区。

    (3)网络消息队列

    读的是无锁队列。参考:http://blog.csdn.net/chenjiayi_yun/article/details/36190543

    写会写缓存。使用发送字符队列,参考:http://blog.csdn.net/chenjiayi_yun/article/details/37933099

    方式二:逻辑网关

    (1)对于树状多网关对象的单逻辑服务器。读写线程使用不同线程。连包使用单独线程。监听连接使用单独线程。

    逻辑网关对象参考:http://blog.csdn.net/chenjiayi_yun/article/details/20288433


    连接处理

    超过10min没有逻辑消息的客户端连接可以关闭和回收。

    2、数据服务

    (1)读档

    (1-1)持久性档案

    自定义文件数据库:提供复杂度O(1)的查询和插入效率,插入和更新数据会增加和修改内存数据索引,和需要修改和添加索引文件和数据文件的数据记录。

    使用自定义文件数据库的方式参考:http://blog.csdn.net/chenjiayi_yun/article/details/17880275


    mysql

    mysql句柄连接池,实现多线程句柄管理,启动时获取连接上的所有的表结构作为orm功能的字段检查标准。

    参考:http://blog.csdn.net/chenjiayi_yun/article/details/36698011

    使用存储过程,提高常用查询(或插入sql)效率。

    使用存储过程查询,参考:http://blog.csdn.net/chenjiayi_yun/article/details/36674223


    (1-2)缓存

    自定义缓存

    缓存角色描述数据到数据服务器。装载角色描述数据到内存,参考:http://blog.csdn.net/chenjiayi_yun/article/details/37834121

    缓存账号信息到登录服务器(或者数据服务器)。

    有些常用查询可用惰性缓存兼查数据库两个方式结合(优先查内存)。


    第三方网络数据存储引擎

    应用redis服务器,惰性写入redis。参考: http://blog.csdn.net/chenjiayi_yun/article/details/18887647

    (2)写档

    (2-1)定时写档

    随机几分钟定时器(十分钟或者更长)

    (2-2)分优先级写档

    分任务、物品、技能、其他等标签来写。参考:http://blog.csdn.net/chenjiayi_yun/article/details/37775429


    3、逻辑

    (1)ai 

    (1-1)场景ai优化

    有效屏计算:只计算有效屏上的ai,分批(如10批)计算。

    有效屏计算参考:http://blog.csdn.net/chenjiayi_yun/article/details/14554353 场景服务器的有效屏

    (1-2)ai类型优化

    追击类型

    优化ai寻路:使用移动定时器。限制寻路长度(20格),限制a*计算次数(150内),使用开启和关闭列表,使用小根堆记录最小f值。

    ai寻路参考:http://blog.csdn.net/chenjiayi_yun/article/details/18509023


    攻击类型

    使用攻击定时器。优化ai玩家搜索,优先仇恨列表。

    ai参考:http://blog.csdn.net/chenjiayi_yun/article/details/18509023


    回归类型

    回归时直接刷新位置。


    (1-3)计算时间优化

    超过20ms的ai类型处理被打断。


    (2)技能

    范围搜索

    几何范围搜索:按场景具体类型屏索引来搜索(分成三类场景屏索引:物品、npc、玩家)

    羁绊范围搜索:视野内队友搜索

    参考:http://blog.csdn.net/chenjiayi_yun/article/details/19429133

    (3)背包

    (3-1)多格子的物品使用按图的方式记录物品在背包的位置(按位记录位置)

    参考:http://blog.csdn.net/chenjiayi_yun/article/details/18960847

    (4)场景数据同步

    场景服务器屏索引分为:物品、npc、玩家。

    (4-1)九屏同步

    1)为了减少服务器内部数据同步(网关与场景服务器之间的):网关和场景都有玩家的屏索引,更改时需要同步。可以减少场景服务器和网关服务器之间数据同步。

    2)限制广播范围:技能、场景道具、npc、玩家形态上的变化只需要同步给九屏中的玩家。

    参考:http://blog.csdn.net/chenjiayi_yun/article/details/14554353#t6

    (5)角色移动

    如果不是很严格检查,后端可以不计算阻挡(包括动态和静态阻挡)。

    (6)校验

    客户端连接的校验和数据包的校验在网关处理。


    三、c++技术优化

    1、对象内存优化

    定长的内存对象可使用内存池

    (1)自定义小对象分配器

    根据需求实用单对象分配器或多对象分配器,内存是在对象分配器的析构函数内释放。

    单对象分配器,一次分配一个对象,本身已提供指针管理,参考:http://blog.csdn.net/chenjiayi_yun/article/details/24358135

    多对象分配器,一次性分配多个对象,如果需要管理需要另外的指针管理器,参考:http://blog.csdn.net/chenjiayi_yun/article/details/24359611

    (2)stl内存池

    sgi标准的stl

    stl拓展内存池(支持单线程)  __gnu_cxx::__pool_alloc 

    参考:http://blog.csdn.net/chenjiayi_yun/article/details/28253361

    stl拓展内存池内存池(支持多线程的) __gnu_cxx::__mt_alloc

    参考: http://blog.csdn.net/chenjiayi_yun/article/details/36190543

    2、语法使用优化

    参考:http://blog.csdn.net/chenjiayi_yun/article/details/8719831

    3、自定义容器优化

    对常用容器进行封装使用。

    自定义字符串为键的哈希表,有效提高查找字符串的键的节点,参考:http://blog.csdn.net/chenjiayi_yun/article/details/37698083

    自定义小根堆,有效获取优先级最高的节点,参考:http://blog.csdn.net/chenjiayi_yun/article/details/37654845

    自定义读写间无锁队列, 有效减少读写线程间锁竞争,存在一些内存拷贝消耗,参考:http://blog.csdn.net/chenjiayi_yun/article/details/36190543

    自定义列表,简化封装,提高添加列表效率,不提供迭代器模式访问,提倡指针访问数组,参考:http://blog.csdn.net/chenjiayi_yun/article/details/17712039

    自定义锁,方便开发使用,参考:http://blog.csdn.net/chenjiayi_yun/article/details/8780784

    自定义字节缓冲队列,用于发送和接收字节的缓冲,参考:http://blog.csdn.net/chenjiayi_yun/article/details/37933099

    4、算法计算

    加密算法xtea简单高效的加密算法,算法上根据维基提供的方式来使用,根据游戏安全性需求减少了计算轮数(16)和key长度(16字节),提高一些效率,c风格修改,参考:http://blog.csdn.net/chenjiayi_yun/article/details/21990645
    校验码,使用键异或缓冲区每个字节,参考:http://blog.csdn.net/chenjiayi_yun/article/details/17678209

    展开全文
  • 游戏服务器框架简述

    千次阅读 2017-12-10 09:37:50
    游戏服务器框架简述 框架 目前游戏类型千差万别(卡牌,arpg,mmo,moba等),每种类型游戏设计的侧重点不相同导致框架上的差异,不过即使相同类型游戏,不同设计师实现的框架也不经相同。这里我们不会针对各种...

                                                游戏服务器框架简述

    框架


    目前游戏类型千差万别(卡牌,arpg,mmo,moba等),每种类型游戏设计的侧重点不相同导致框架上的差异,不过即使相同类型游戏,不同设计师实现的框架也不经相同。这里我们不会针对各种纷杂的框架一一介绍,本着求同存异的态度,只是从分层架构设计的角度来阐述这些零零种种框架的本质。


    依据业务上的差异,基本上可以把游戏服务器框架映射到一个四层架构模型上,如图:




    • Gateway Service


      负责客户端网络接入,收敛网络入口。gateway的业务逻辑相对比较简单,主要处理网路消息的转化(客户端发送到后端服务器,后端服务器发送到客户端)与过滤。从它负责的业务角度上可以看出一个好的gateway service其实就是一个高性能的网络服务。针对高性能网络服务的实现有很多方式,常见模型有:


      在我们游戏里面使用的方案是基于linux系统下的多线程模型。具体的实现是,one loop per thread,loop是基于反应器的设计模式实现。系统层面也会做相应的优化,比如cpu绑定,网卡的硬中断,软中断的优化。在这些完成之后,一个高性能的网络服务器基本上就成型了。在我们实际运行过程,单Gateway最高同时在线达到15w,机器整体的负载也不高。


      • 多线程模型,如果对网络编程不熟悉,可以选择开源实现,比如muduo, asio,netty等。

      • 纤程,这一类的开源实现也有很多,语言级别的golang,erlang,单独库形式的libco,skynet。



    • Logic Service


      游戏逻辑主要在这个服务上处理。常见的实现,多IO线程加单独的业务线程。线程之间通过消息队列进行通信,消息队列简单可以用一个加锁的队列实现,也可以选择无锁队列(建议使用成熟的开源方案)。网络消息汇总到同一个线程中处理,也就是说游戏业务处理是单线程的,这种设计的优势在于避免业务开发中数据竞争。如果单线程实在不能满足性能要求,比如一些mmo游戏中,可以采用多进程的模式,也就是有多个logic service,配合可能也需要一些协调logic service的服务。


    • Record Service


      数据库的代理层,负责与数据库交互,解耦业务层的数据处理,适应数据库的改变,业务逻辑也相对简单。实现类似于Logic Service,它也可以合并到logic service里,但是独立开来,整体框架更加清晰。


    • Database


      顾名思义,保存玩家数据的地方。常见的游戏数据库包括: mysql,redis,mongodb等。我们游戏数据库选择是RedisLV,它解决了redis备份时候可能导致内存使用过高的问题。它使用的方法是为redis引入基于leveldb的数据落地方案。leveldb是google开源的kv数据库,使用lsm tree算法,数据写入的性能比较高。修改redis的源码,在redis中与写入操作相关的命令处理中,将改变同时写入leveldb,数据库的备份只针对leveldb做备份。


    服务驱动


    这一节主要针对Logic Service,也就是游戏核心业务的驱动。游戏的业务主要是响应外部请求和处理内部状态改变,包括以下两种驱动方式:


    • 消息驱动,针对各种网络消息做出响应。比如,玩家的点击反馈等。常见实现方式是通过命令模式,也就是消息封装成一个对象,不同的消息参数化。

    • 时间驱动,一些业务需要基于时间而做出改变。比如,定时活动的开启,玩家数据定时的保存等。常见的实现方案是定时器,定时器采用的算法可以是时间轮,红黑树等。


    实现这两种驱动之后,游戏服务器可以响应外部和内部的改变,基本上服务就可以正常的运转。游戏业务与其他所有后端业务都一样,本身就是数据结构的组织。下面介绍一些常用的设计模式和算法帮助游戏业务的实现。


    常用设计模式


    • 单例模式

    • 工厂模式

    • 命令模式

    • 订阅者模式

    • 状态模式

    • 策略模式


    常用算法


    • 二分查找

    • 快排

    • 红黑树

    • 跳表

    • 优先级队列

    • A*

    • 行为树


    来源:http://mmogamecoder.com


    版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢。


    -END-


    展开全文
  • 在使用虚幻4引擎开发网络游戏时免不了会需要自己来编写服务器,关于如何编写网络服务器,不在这篇文章的讨论范围,后面有时间可能会出相关的教程,这篇文章主要是基于某些原因,我们不想自己实现服务器,那么我们...

    在使用虚幻4引擎开发网络游戏时免不了会需要自己来编写服务器,关于如何编写网络服务器,不在这篇文章的讨论范围,后面有时间可能会出相关的教程,这篇文章主要是基于某些原因,我们不想自己实现服务器,那么我们可以采用虚幻自带的独立专用服务器,并且将它打包成exe,log方式启动,效果图如下:

    那么这就是服务器的启动日志喽,你可以把它理解为是一个后台的进程,也就是所谓的游戏服务器。那么虚幻4自带的这套呢,是服务器和客户端公用一套代码,有利有弊吧,比如说优点有,他可以在服务器模拟碰撞而不需要自己实现,那么弊端就是不宜与维护,因为客户端和服务器代码在一起。在游戏运行的时候,客户端其实只是模拟服务器上的行为,也就是说客户端上很多东西只是从服务器上同步过来的,可以看作是一个copy,在UE4引擎下如果需要同步的变量,或者是需要同步的行为,我们都把它设置为replicated即可。对于需要执行的操作,那么就封装成为一个事件在服务器执行即可,当然这也不是这篇文章重点要说的,有点跑题。那么下面讲如何编译游戏专用服务器,其实很简单,就几个步骤。

    1、你需要下载引擎源代码,然后自已编译引擎,至于如何下载编译引擎,请读者自行百度,这里简单提一下吧,如果已经下载编译好的可以跳过此布。首先你需要注册一个GitHub账号,还要有一个epic game账号,然后在epic game账号设置中关联GitHub账号,之后去GitHub会收到关联的验证,点确认后,你就可以在组织中找到它,

    后面就不用我说了吧,选择一个版本直接下载就行。

    下载完成后,你会得到一个类似于这样的压缩文件,我这里是4.21版本。然后解压,解压完成后按图示顺序依次执行批处理,首先点击Setup,等待完成后,点击gen.....生成vs工程,

    完成后你会得到一个UE4.sln文件,

    点击该文件,启动vs2017或者其他版本的vs,然后右键生成

    之后的操作耐心等待即可,过程很漫长,一两个小时甚至好几个小时,取决于机器性能。生成完成后在下图目录中可以找到引擎exe文件。发送到桌面快捷方式即可。

    2、用vs打开你需要编译服务器的工程,如果你创建的不是c++工程,请右键工程名,生成vs工程。

    生成完成后点击打开工程:

     

     

    你会得到如下的工程结构,

    点击此处可以启动工程:

    那么基础操作我本不太想说太细,避免篇幅太长,但是又考虑部分新手,还是简单提一下。

    3、下面需要做的就是关闭vs,不关也可以,后面根据提示重载解决方案即可,新建文件,命名看图示规则:

    记事本打开文件,写入如下代码:(有几处需要修改的,根据图示规则修改)

    代码贴一下吧:

    // Copyright 1998-2018 Epic Games, Inc. All Rights Reserved.

    using UnrealBuildTool;
    using System.Collections.Generic;

    [SupportedPlatforms(UnrealPlatformClass.Server)]
    public class TestProjectServerTarget : TargetRules
    {
        public TestProjectServerTarget(TargetInfo Target) : base(Target)
        {
            Type = TargetType.Server;
            ExtraModuleNames.Add("TestProject");
        }
    }
     

    这个代码不同版本的引擎,写法可能也有所不同(4.18后可以用上面代码),最简单的你也可以直接从官方对应的shooter game 工程目录下拷贝他的这个文件过来修改下也行。

    4、完成以上步骤之后,我们再次生成vs工程,

    打开vs,按如下图示操作:

    生成完成后,启动工程,这时候需要修改下游戏的默认服务器地图设置等等(不设置的话可能导致服务器进去是黑的,因为默认是一个空地图),根据自己项目需要设置即可。

    设置完成后,关闭引擎,回到vs,按图示步骤再次生成工程,注意的是这时生成的是服务器,

    生成完成后,在如下目录会得到一个exe文件:

    将它拷贝到我们工程打包后的如下目录,(如何打包读者自行解决,比较简单,这里不提)

    此时就可以启动我们的服务器了,有几种方式,可以右键发送到桌面快捷方式,并修改目标,加  -log(方便我们查看日志)

    然后直接打开快捷方式即可启动服务器,也可以用dos命名启动。

    启动成功如图所示:

    此时服务器便启动成功了,也就意味着我们的独立服务器打包成功了。可以启动客户端测试,输入gm命令测试:

    ~open 127.0.0.1  便可以打开地图,本篇内容到此结束,欢迎下方留言。

     

     

     

     

    展开全文
  • golang Leaf 游戏服务器框架简介

    万次阅读 2017-11-04 11:43:43
    Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架。Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器。Leaf 的关注点:良好的使用体验。Leaf 总是尽可能的提供简洁和...
  • Matchvs是一款十分易用的游戏服务器引擎,开发者通过SaaS层提供的API,即可完成“就近”节点接入、玩家匹配、游戏数据通信的建立;PaaS提供GS开发框架、托管平台,无需自有服务器资源即可对服务端的联网能力进行扩展...
  • 如题,如果一直开着游戏那么服务会一直关闭,游戏下了之后服务就能正常自动开启 同样,开着游戏office会用不了,计算机基本信息那里会显示windows未激活 ...
  • 游戏服务器到底是什么?

    千次阅读 2015-01-21 14:29:47
    游戏服务器的定义   在线游戏当中,如果有‘在线’则一定会跟随‘游戏服务器’。但关于游戏服务器却并没有什么较好的评价,在致歉文中最常见的单词也是‘服务器’。游戏进行不畅时也会经常说是‘服务器不稳定’...
  • 背景在中国的互联网诸多业务领域中,游戏一直是充当“现金牛”而存在的。但是,在游戏服务器端开发领域中的很多重要问题,并没有被明确的分辨出其特异性,从而得到专门的对待。我们不管是在业界开源领域,还是内部...
  • 游戏开发的过程中,我们需要记录一些日志,以便以后了解游戏运行的情况,以及根据日志发现并处理游戏中的突发情况。 一,游戏日志可以分为以下几种: 1)系统日志 2)用户操作日志 3)异常日志,即错误日志 系统...
  • 学习游戏服务器编程基础篇

    千次阅读 多人点赞 2017-01-22 20:52:30
    笔者介绍:姜雪伟,IT... 前段时间,一直给开发者灌输学习3D游戏引擎技术,包括游戏底层数据结构封装,算法与游戏实战技术分享课程,以及编写了一些使用算法解决游戏实际问题等等方面的文章。在给读者介绍3D游戏引擎
  • 大型多人在线游戏服务器架构设计

    万次阅读 多人点赞 2016-09-24 20:37:54
    由于大型多人在线游戏服务器理论上需要支持无限多的玩家,所以对服务器端是一个非常大的...一款游戏服务器的架构都是慢慢从小变大的,不可能一下子就上来一个完善的服务器构架,目前流行的说法是游戏先上线,再...
  • Go开源游戏服务器框架——Pitaya

    千次阅读 2020-09-23 23:54:47
    简介 Pitaya是一款易于使用,快速且轻量级的开源分布式游戏服务器框架,使用golang编写。 源码分析 PlayerConn Acceptor Acceptorwrapper Agent HandleService
  • 如何正确关闭游戏服务器

    千次阅读 2017-02-12 23:46:52
    一,如何正确的关闭游戏服务器 1,最简单粗爆的方法 在Linux系统上,使用ps -aux|grep java 可以查到所有运行的java程序的pid,即进程号,然后使用kill - 9 进程号,杀死一个进程。 这样做虽然简单快速,但是会有一...
  • 游戏服务器通用架构

    千次阅读 2011-08-28 16:01:32
    这里讨论的游戏服务器架构大概是目前国内乃至世界上的网游通用的一种架构了: http://bbs.gameres.com/showthread.asp?threadid=93775 作者:qinglan 有段时间没有研究技术了,这次正好看到了新版的mangos,较...
  • 游戏服务器结构探讨

    万次阅读 2011-06-12 18:08:00
    原文地址:http://blogold.chinaunix.net/u/1129/showart_397768.htmlhttp://bbs.gameres.com/showthread.asp?threadid=93775 有关游戏开发:游戏开发始终是个小...从游戏开发团队的规模也能看出,基本上只能算小开
  • Google Play游戏服务入门

    千次阅读 2020-06-14 14:14:10
    游戏技术在不断发展。 然而,数十年来,许多核心游戏玩法元素保持不变。... 在本教程中,我将向您展示如何创建一个简单的Android游戏,如何向其中添加Google Play游戏服务以及如何使用排行榜和成就API。 先决条件...
  • 网络游戏服务器架构

    千次阅读 2013-09-24 17:46:25
    服务器组成 ...dbserver:负责数据库相关事务。gateway:负责管理所有玩家的连接管理,...world:负责游戏核心逻辑。 服务器部署 session:1个dbserver:若干gateway:若干world:若干 服务器关系 session:与外网相连,接受cli
  • 游戏服务器架构,配置

    千次阅读 2018-01-28 15:05:18
    游戏服务器架构 实验时间:2009-03-18 实验人:小风 实验名称:游戏服务器架构之《奇迹》 实验任务和目标:自己当GM做游戏服务器 以奇迹服务器为例:其他游戏原理一样!! 实验环境描述:SQL server2005 和windows...
  • 游戏服务器编程

    千次阅读 2015-10-25 20:26:45
    游戏逻辑方面的异常处理,是 随每个游戏的不同而不同的,所以,本文随后的内容将重点阐述在网络数据包接收模块中的异常处理。  为方便以下的讨论,先明确两个概念(这两个概念是为了叙述方面,笔者自行取的,...
  • 游戏开发的过程中,我们需要记录一些日志,以便以后了解游戏运行的情况,以及根据日志发现并处理游戏中的突发情况。 一,游戏日志可以分为以下几种: 1)系统日志 2)用户操作日志 3)异常日志,即错误日志 系统...
  • 什么是游戏服务游戏服务是华为为移动开发者提供的用于满足各种移动游戏开发需求的服务。使用游戏服务,您可以轻松地在游戏中实现排行榜、事件、成就、存档等功能。游戏服务有效简化游戏的开发过程,让您可以...
  • 游戏服务器心跳包的作用

    千次阅读 2017-04-01 10:38:37
    转自:点击打开链接 首先查一下tcp的断线是否真的可靠 看到了一位同学的经验 点击跳转到原文  之前的测试都是,手动强制关闭客户端进程,然后查看服务器的情况,结果往往是,服务器收到了客户端关闭...
  • 游戏服务器架构探讨

    千次阅读 2007-10-18 21:10:00
    重回技术怀抱 ---- 开篇 有段时间没有研究技术了,这次正好看到了新版的mangos,较之以前我看的版本有了比较大的完善,于是再次浏览了下他的代码,也借此机会整理下我在游戏服务器开发方面的一些心得,与大家探讨。...
  • 百万用户级游戏服务器架构设计

    千次阅读 2014-08-04 12:03:56
    百万用户级游戏服务器架构设计       服务器结构探讨 -- 最简单的结构  所谓服务器结构,也就是如何将服务器各部分合理地安排,以实现最初的功能需求。...
  • 棋牌游戏服务器架构: 部署

    万次阅读 2012-09-16 00:34:32
     在这个图中,可以看到,客户端的形式多种多样,可能是pc上的一个可执行文件,也可能是通过浏览器打开的一个网页,甚至于手机客户端。它们都通过internet连接到游戏服务器。  在这个部署中有1个CenterServer,1...
  • Go游戏服务器开发工作准备工作

    千次阅读 2018-12-25 06:30:32
    目录Go游戏服务器框架选择leaf其他开发环境搭建获取leaf源码配置vscode网络问题解决 Go游戏服务器框架选择 目前,在github上leaf、cellnet、mqant、go...Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务...
  • switch游戏服务器设置

    千次阅读 2019-09-26 20:12:10
    配置dnsmasq 这里是重点了,博主为了玩到“堡垒之夜...恭喜,至此就大功告成了,打开游戏看一下是不是可以进入了 有什么问题可以留言咨询,留言时输入邮箱可以收到回复通知 祝你玩的开心 have a nice day~

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,425
精华内容 48,970
关键字:

怎么开启游戏服务