在游戏开发中,我们经常会遇到一些技术难题,而其引发的bug则会影响整个游戏的品质.女性向手游<食物语>就曾遇到过一些开发上的难题,腾讯游戏学院专家团Wade.Zc.Jovi等专家为其提供了指导和帮助.过载保护.集群.服务器通信.并发选型等方面的问题,是中小团队常常的技术难题,本文分享了一些专家在坐诊过程中遇到的游戏服务器常见问题解决方法,希望对大家有所帮助. 问题一:玩家登录时拉取好友信息,但好友服务繁忙导致登录失败. 解决方法: 1.分离关键路径上非关键调用,缩短事务流程,避免周边服务异常阻…
     图1     在Linux的世界,如果你不玩命令,那你见了同行都不好意思和人家打招呼.同时服务器正常状况下放在远端,一般都是开ssh登录服务器,相信远程桌面的人很少见吧.这篇文章说说Linux服务器下常用的命令.     1.查看本地时间 $date    由于地球上存在这么多的时区,查看下当前时间还是没有错的,比如服务器有问题,看下时区,发现是管理员上班时间,可以给人家发邮件或者电话,效率更高.     2.查看当前登录用户 $who     这个命令可以查看计算机什么时候启动的,都…
这篇文章主要介绍一下游戏服务器需要安装的软件和需要修改的配置.现介绍下项目,本项目服务器端是c++ + mysql组合,客户端是as写的,需要安装的服务为Mysql,Php,Apache, 以及一个nodejs的脚本. Mysql安装和配置: 1.安装 $yum install mysql mysql-server php-mysql 2.配置 a)将mysql 设置为启动服务 $chkconfig --level 235 mysqld on b)启动mysql服务 $service mysql…
游戏服务器是在windows环境开发的,相关跨平台的东西在这里不谈了,只谈如何将Visual Studio 工程转换到Linux下编译.这里涉及到的软件分别为:Centos版本为6.4,Visual Studio 2008,Eclipse cdt. 为了后面的知识容易理解,先简单说下C++编译原理,有四个过程. 1.预处理,通过预处理器(cpp)将宏展开,同时插入include包含的头文件      $cpp test.cc >test.i 2.编译,将预处理文件编译成汇编文件      $gc…
ioGame 国内首个基于蚂蚁金服 SOFABolt 的 java 网络游戏服务器框架:无锁异步化.事件驱动的架构设计 通过 ioGame 可以很容易的搭建出一个集群无中心节点.有状态多进程的分步式游戏服务器 无中间件依赖.代码即文档.JSR380.断言 + 异常机制 = 更少的维护成本.开发成本 同样的一套业务代码无需变更,可以同时支持多种协议:websocket.socket 轻量级.启动快.更节约.更简单.开箱即用.无配置文件.超高性能 近原生的快.业务框架平均每秒可以执行 1152 万次…
经过多次折腾之后,在一次进行了一次重大的重构,去解决问题 主要重构如下 1.将原来的单一协议修改多协议进行,一些查询.认证的功能都采用HTTP进行,避免全部采用TCP链接资源的消耗: 2.原来单一的部署,划分多个分布式的系统,添加怪物自动管理系统(怪物的刷新,配置等).后台服务系统(游戏过程中逻辑数据处理).webAPI查询认证系统(查询和认证).游戏后台辅助系统(主要监控其他项目的运行情况,用于容灾处理).缓存服务器(redis).数据服务器.资源服务器(配置文件): 现在基本解决了原来出现的…
在服务器系统开发时,为了适应数据大并发的请求,我们往往需要对数据进行异步存储,特别是在做分布式系统时,这个时候就不能等待插入数据库返回了取自动id了,而是需要在插入数据库之前生成一个全局的唯一id,使用全局的唯一id,在游戏服务器中,全局唯一的id可以用于将来合服方便,不会出现键冲突.也可以将来在业务增长的情况下,实现分库分表,比如某一个用户的物品要放在同一个分片内,而这个分片段可能是根据用户id的范围值来确定的,比如用户id大于1000小于100000的用户在一个分片内.目前常用的有以下几种:…
http://blog.jobbole.com/64638/ 在编写网络游戏的时候,到底使用UDP还是TCP的问题迟早都要面对. 一般来说你会听到人们这样说:“除非你正在写一个动作类游戏,否则你就用TCP吧” 或者是 “你能够在MMO游戏中用TCP,因为魔兽世界就用的TCP!” 遗憾的是,这些观点都没有反映这个问题的复杂性. 背景 首先,说明一下,我之前主要是用TCP进行网络编程.我曾为一个流行的在线纸牌游戏编写服务器了好几年,在高峰期我们的每台服务器能够承受4000到10000个连接(同一台物…
Scut游戏服务器免费开源框架--快速开发(3) Scut快速开发(3) 1        开发环境 需要安装的软件 a)        消息队列 b)        数据库,Sql2005以上版本 c)        VS2010开发工具(.Net Framework 4.0以上) 2        代码框架 项目划分三层:实体层,组件层,业务逻辑层(脚本层):模型层主要是数据实体映射,自定义缓存结构:组件层主要负责实现中层层扩展功能:业务逻辑层主要负责实现游戏功能: 2.1     数据库创…
GoWorld代码:https://github.com/xiaonanln/goworld Golang具有运行效率高.内存安全等优良特性,因此是非常适合用来进行服务器开发.使用Golang开发游戏服务器有如下的优点: 运行效率远高于各种脚本语言,大幅度提升服务器承载能力 内存安全,不会像C++服务器那样出现内存错误导致服务器down机 Goroutine能够很好地利用多核计算能力,提升承载能力 Golang本身非常简单好用,大家都喜欢 然而使用Golang编写游戏服务器也面临一定的困难,主要…