游戏服务端
文章平均质量分 94
老友小明哥
离职中
展开
-
游戏服务端为什么需要登录服?!
注:这篇文章不仅会说登录服,还会说一些其它游戏相关的事哦!我们都知道,很多游戏在上线时,都会大肆宣传,最近宣传比较多的就是《激战2》了。(当然我不是《激战2》的水军)很多玩家都会提前坐在电脑前,等候游戏官方给出的开服时间,抢点进入游戏,因为这样能占据时间的红利,可以在游戏中占个好排名原创 2014-05-31 00:03:27 · 3923 阅读 · 4 评论 -
游戏服务端之xml类型转换
上一篇博文我已经说明了服务端添加tinyxml的基本操作及基本用法。我的服务端之添加xml解释器http://blog.csdn.net/yitouhan/article/details/17453159但是可以看出tinyxml读出的数据是不做类型匹配的,也就是说tinyxml读出的数据都是字符串。但是在实际应用中,我还需要其它的数据类型,例如整型和浮点型。这里主要要说明的是istr原创 2013-12-23 00:02:15 · 3100 阅读 · 1 评论 -
游戏服务端之AOI概述
AOI(Area Of Interest),中文就是感兴趣区域。通俗一点说,感兴趣区域就是玩家在场景实时看到的区域;也就是AOI会随着英雄的移动改变而改变。一般在游戏的中,游戏的世界都是由各种场景组成,场景中有着各种各样的Obj(英雄、怪物、NPC和掉落物品等等)。当英雄在移动的时候,玩家需要看到其它在自己视野内玩家的英雄;需要看到在自己视野内的怪物;需要看到打BOSS掉落的物品;……。有原创 2013-12-29 00:27:53 · 13098 阅读 · 2 评论 -
游戏中的离线玩家
一般的游戏架构都有 数据库 + 缓存 这样的存储机制,而这个机制决定了离线玩家的实现方式。其中一种很常用的做法是将所有玩家的信息全部都加载到内存中,当要查找离线玩家信息时,直接可以在内存中获得,不需要再到数据库中查找。其实我一直觉得这其中有一些问题,那就是随着时间的推移,内存的有效利用率越来越低。原因很简单,(从趋势上来讲)整个游戏的玩家活跃度会随时间慢慢降低。特别是合服之后,这种负面效果将会加倍原创 2015-09-04 11:24:07 · 2721 阅读 · 0 评论 -
游戏服务端之C++游戏服务端防崩溃
在游戏开发当中,不用我多说了,游戏的稳定性是相当重要的。为了追求游戏的稳定性,很多开发者都会选择脚本语言作为游戏的主要开发语言。因为使用脚本语言,即使游戏出现重大的bug,由于脚本支持热更的天然优势,使开发者更迅速地解决问题;而且脚本的良好容错性,也会使游戏系统不会轻易崩溃。但是,一些即时性游戏需要更高性能的,开发者可能会选择C/C++作为开发语言,但是怎样来保证游戏的稳定性呢?关键词是原创 2013-12-07 00:03:41 · 6045 阅读 · 4 评论 -
游戏服务端之C++网络库对外接口
大多数的情况下,游戏的服务端都是在Linux下运行,但是Linux下做开发C/C++的开发相对来说是比较困难的。所以一般来说,游戏的服务端都是做成可移植的,这样方便在Windows下做开发。也就是说,服务端既可在Windows下运行,也可以在Linux下运行。说了这么多,看似与网络链接半毛钱关系都没有。其实不是这样的,就像Lua一样,既可以在Windows下调用它,也可以在Linux调用它,关原创 2013-12-15 00:01:41 · 4636 阅读 · 0 评论 -
游戏服务端之C++封装Mysql
很多缺少实际工作经验的同学会认为,操作Mysql还需要封装?!直接写sql语句操作就可以了。其实封装Mysql有以下的好处:1、更加安全。即使你是相当谨慎的一个程序员,就算在几百处甚至几千处地方写sql操作Mysql也避免不了会出现写错表名,字段名写错了或者写少写多了,符号写错等等。封装可以解决这些问题。2、更好的移植性。封装其实就是一些共性的集合,这样当然具有更好的移植性了(这样能方便像原创 2020-08-18 21:16:33 · 4078 阅读 · 7 评论 -
我的服务端之有限制使用Thread
前言:多线程是一把双刃剑,不要盲目使用多线程!使用多线程的优点:1、支持并发。2、提高程序执行效率,这里又可以分为两种情况:单线程情况下,I/O操作会让CPU处于"等待"状态,因此多线程能更好利用CPU;多核CPU的出现,让多线程程序有更好的执行效率。缺点:1、造成一定的线程切换开销。2、资源容易出现竞争,甚至死锁。3、多个线程"同时"对某块内存进行读写,容原创 2014-02-08 00:04:08 · 2490 阅读 · 5 评论 -
序列化的作用
前言:本文以C++语言作为讲解序列化的作用。序列化是什么?一般说到序列化,其实是包含了反序列化。以C++为例,序列化就是将结构体(或者是类)等复杂的数据结构的各个属性有序地保存到字符数组。而反序列化就是将有序的字符数组还原回结构体(或者是类)等复杂的数据结构。序列化作用1、方便网络传输我们都知道,socket的数据都是以字符串进行传输,而序列化的作用就是原创 2015-03-12 09:16:15 · 8634 阅读 · 3 评论 -
游戏中的随机--转换思维
文章中的标题是“游戏中的随机--转换思维”,有一个关键词是“随机”;但是随机这个说法过于笼统,因此我主要说一个具体化实例:随机坐标。随机坐标在游戏中相当常见,例如掉落、怪物生成、采集生成或者是一些活动中的藏宝地点。随机出一个坐标不难。那随机出一个不重复的坐标呢?其实也不难!还能好好说话吗?就是要讲述如何做出一个高效及简洁的随机坐标模块!我知道相当一部分人设计随机坐标模块的思原创 2015-04-15 13:30:44 · 1884 阅读 · 1 评论 -
游戏服务端之内存池
内存池(Memory Pool)一、前言1、操作系统的内存分配方式1.1、连续分配方式顾名思义,这种分配方式,会将进程分配在连续的空间。连续分配方式一般可以分为固定分配方式、动态分配方式和伙伴系统(固定分配方式与动态分配方式的折衷方案)。1.2、基本分页存储管理方式1.3、基本分段存储管理方式注:以上说的分配方式,自个可以到网上去搜索一下,方便理解以下内容。原创 2014-01-05 00:03:23 · 6200 阅读 · 15 评论 -
用gdb调试游戏服务端
前言说说gdb的重要性一般来说,提到gdb,都是用命令来调试。“命令”,这个对于用户来说几乎等同于繁杂的词语。尽管事实确实如此,但实际的开发调试必须用到gdb。现在,大多数Linux系统是存在于服务器当中。我们想操作这些系统时,一般是通过Terminal来操作。也就是说这些Linux系统不具有图形界面。而调试一般分两部分,开发时调试和运行时调试。当我们的程序部署到Linux上时,那就需要忘原创 2014-11-17 00:15:00 · 4042 阅读 · 0 评论 -
游戏服务端之添加xml解释器
在游戏服务端中,我们会将可变的东西写数据库里,而将一成不变的东西写在配置里。在现实开发过程中,大多数开发者会选用xml作为服务的配置。原因是xml树形结构化表示、标记清晰及易于理解和方便移植。下面我将会为我的服务端添加tinyxml。tinyxml是一个简单的,轻量级的,由C++实现的XML文档的解析器,它可以被其它程序方便地集成进去使用。同时tinyxml也是免费开源的。因此我会将tinyx原创 2013-12-21 00:04:22 · 10343 阅读 · 0 评论