- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 网游服务端架构
最近二十年以来,IT行业发展之迅猛。计算机也从最开始的“毒害青少年的罪魁祸首”变成了各行各业都离不开的工具。在这个过程中,网络游戏也变得容易让人接受了,再也不像二十年前一样,如过街老鼠,人人喊打。现在的游戏已经是几乎下到幼儿园上到养老院的居家旅行必备良品。因此,从技术层面来说,现在的网络游戏也面领着用户量激增、业务逻辑越来越复杂、需求频繁变化等种种问题。 所以,对于一款网游来
2017-11-16 17:30:10 2960 1
原创 分布式游戏服务器框架sframe(五)—— 配置管理
开发游戏服务器,肯定会有大量的配置数据,什么等级配置、关卡配置等等。对于这些静态数据,我们一般都是采取文件的方式来存储的。策划事先配置好这些数据文件,服务器启动后便将其加载到内存,由配置管理模块统一管理。对于配置文件,有各种各样的格式,CSV、JSON、XML、LUA等等都很流行。但是对于程序来说,我们希望无论配置文件采用什么格式,数据加载到内存后都是一样的存在形式。 sfra
2017-03-24 18:46:59 1359
原创 分布式游戏服务器框架sframe(四)—— 消息映射
对于服务器业务开发来说,主要的任务便是处理各种消息——服务间消息、客户端的消息等等。一般的开发模式都是将每一类消息都映射到与其对应的一个处理函数。服务器收到该消息后,找到与其对应的处理函数,再将消息进行解码,最后调用处理函数。这些步骤都是通用的,所以大多数服务器框架都有一套消息映射机制。实际开发中,一套系统的业务往往是非常复杂的,这也就意味着我们要处理的消息是非常多的,几百、几千种消息往往是很正常
2017-03-23 17:06:49 1103
原创 分布式游戏服务器框架sframe(三)—— 序列化与反序列化
序列化和反序列化是我们在实际开发经常用到的东西。一套好的序列化和反序列化的解决方案,往往会起到事半功倍的效果。sframe拥有一套很方便高效的序列化和反序列化机制。在本篇文章中,我将主要介绍这套机制的实现原理。 序列化和反序列化已经是非常成熟的技术了,网上也有着一大堆不一样的实现。已有现成的各种各样的开源库供我们选择。很多较为流行的库都比较大,并且大多都是基于代码生成技术的实
2017-03-16 17:34:54 1263
原创 分布式游戏服务器框架sframe(二)—— 服务调度与服务间通信
一套分布式服务器有若干个节点构成,所以对于分布式服务器框架来说,首先必须解决服务的调度和服务间通信这两个至关重要的问题。上篇文章已经大概介绍了sframe的整体思想。在本篇文章中,我将继续介绍sframe的服务调度和服务间通信。服务调度 前面已经提到过sframe将服务器节点抽象成了服务节点。在sframe中,所有的服务必须继承sframe::Service类,才能被注册到
2017-03-15 18:28:35 2089
原创 分布式游戏服务器框架sframe(一)—— 整体思想
网上有很多开源服务器框架,但总感觉用起来不大顺手。于是乎,我利用闲余时间,开发整理了一套自己的分布式游戏服务器框架。这套框架到如今也差不多成型了,于是我准备写一些相应的文章,介绍下这套框架里的一些关键点的实现,旨在与更多人分享交流一下经验。这是一个长期战线,我计划本文先简单介绍一下大概思想,后续再陆续推出其他的实现上的东西。 至于框架的名字,想了好久也想不出,哎,取名字实在非我
2017-02-06 15:55:47 4591 1
原创 C++实现反射(根据类名动态创建对象)
和网上大多数实现一样,本文也采用工厂方法来实现对象的动态创建,唯一不同的在于,本文的实现优化了类的注册,使用起来更为简单。废话不多说,直接上代码(这也没什么可说的,看代码更加直观)。DynamicFactory.h文件,需要支持动态创建对象的地方,包含此文件,然后继承DynamicCreate即可。#ifndef __DYNAMIC_FACTORY_H__#define __DYNAMI
2016-06-21 18:38:07 13751 9
原创 RTTI实现详解
在使用C++进行面向对象编程时,我们经常用到RTTI(运行时类型识别)。我们常常使用typeid判断某个对象的类型,dynamic_cast动态转换对象的指针或引用类型。每次使用起来我们都大呼过瘾,这用起来确实非常方便。那么,RTTI到底是如何实现的呢?这是我一直都想搞清楚的问题。于是,乘着这两天砖量不大(呼~~搬砖、搬砖、>_)的大好时机,学习了一下RTTI的原理,顺便写下这边博文做个总结,希望
2014-12-17 15:59:20 5854 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人