一步一步开发Game服务器(一)

什么是服务器?对于很多人来说也许只是简单成为在服务器端运行的程序的确如此,服务器通常意义就是说在服务器端运行的程序而已。那么我们怎么理解和分析游戏服务器哪?

传统意义上来说,程序运行后,正常流程,

启动 -> 加载必要数据 -> 分析必要数据 -> 接受连接 -> 登陆系统 -> 交换数据 -> 退出登陆。

这样单线程服务器的思路就算完成。有经验的同学都可以看得出这是最简单的程序运行流程,有一个最主要的问题就是这是一个单线程的流程,承载量自然就不大,吞吐量也就自然下降了。

如果改为多线程怎么办呢?改成多线程后又怎么保证数据的完整的性,准确性呢?这个问题我会在后面的文字里面一一讲解。

通常在游戏服务器设计中,分为单服务器和组服务器,

单服务器(包括登陆模块,逻辑模块,数据交换模块);

组服务器则为,登陆服务器,逻辑服务器,和数据交换服务器。这里又可以分为

登陆服务器1 -》 逻辑服务器1 -》 数据交换服务器1,

登陆服务器2 -》 逻辑服务器2 -》 数据交换服务器2,

登陆服务器 N -》逻辑服务器N -》 数据交换服务器N,

通常情况数据交换服务器可以提供一组登陆和逻辑服务器使用。

这里的数据交换可以理解成数据缓存模块,数据更新模块,数据存储模块。是程序数据和数据库存储数据交换用的,

一般情况下逻辑模块的设计都是很复杂的东西。后面的文章我一步一步去剖析它。

时间: 2024-10-08 10:04:39

一步一步开发Game服务器(一)的相关文章

一步一步开发Game服务器(三)加载脚本和服务器热更新(二)完整版

上一篇文章我介绍了如果动态加载dll文件来更新程序 一步一步开发Game服务器(三)加载脚本和服务器热更新 可是在使用过程中,也许有很多会发现,动态加载dll其实不方便,应为需要预先编译代码为dll文件.便利性不是很高. 那么有么有办法能做到动态实时更新呢???? 官方提供了这两个对象,动态编译源文件. 提供对 C# 代码生成器和代码编译器的实例的访问. CSharpCodeProvider 提供一下方法加载源文件, // 基于包含在 System.CodeDom.CodeCompileUnit

一步一步开发Game服务器(四)地图线程

时隔这么久 才再一次的回归正题继续讲解游戏服务器开发. 开始讲解前有一个问题需要修正.之前讲的线程和定时器线程的时候是分开的. 但是真正地图线程与之前的线程模型是有区别的. 为什么会有区别呢?一个地图肯定有执行线程,但是每一个地图都有不同的时间任务.比如检测玩家身上的buffer,检测玩家的状态值.这种情况下如何处理呢?很明显就需要定时器线程. 我的处理方式是创建一个线程的时候根据需求创建对应的 timerthread 直接上代码其他不BB 1 using System; 2 using Sys

跟我一步一步开发自己的Openfire插件

http://www.blogjava.net/hoojo/archive/2013/03/07/396146.html 跟我一步一步开发自己的Openfire插件 这篇是简单插件开发,下篇聊天记录插件. 开发环境: System:Windows WebBrowser:IE6+.Firefox3+ JavaEE Server:tomcat5.0.2.8.tomcat6 IDE:eclipse.MyEclipse 8 开发依赖库: Jdk1.6.jasper-compiler.jar.jasper

一步一步学习Swift之(一):关于swift与开发环境配置

一.什么是Swift? 1.Swift 是一种新的编程语言,用于编写 iOS 和 OS X 应用. 2.Swift 结合了 C 和 Objective-C 的优点并且不受 C 兼容性的限制. 3.Swift 采用安全的编程模式并添加了很多新特性,这将使编程更简单,更灵活,也更有趣. 4.Swift 是基于成熟而且倍受喜爱的 Cocoa 和 Cocoa Touch 框架,它的降临将重新定义软件开发. 5.Swift 是编写 iOS 和 OS X 应用的极佳手段,并将伴随着新的特性和功能持续演进.

[ALM]一步一步搭建MS ALM环境 - 安装域服务器

描述: 搭建并配置域服务器 步骤: 1,打开Hyper-V Manager,参考[Hyper-V]使用操作系统模板创建新的虚拟机,先完成操作系统的安装,注意以下修改以下信息: 磁盘名称:dc.vhdx 磁盘存储位置:x:\VMs\DC 虚拟机名称:DC 使用现有的虚拟机磁盘:x:\VMs\DC\dc.vhdx 选择使用内网网卡:InternalVirtualNetwork 服务器域\名称:ALM\DC 服务器IP:192.168.35.5 网关IP:192.168.35.1 服务器角色:域控制器

windows phone开发第一步:搭建软件开发环境

windows phone开发第一步:搭建软件开发环境:http://www.cnblogs.com/hanjun/archive/2012/10/09/2716669.html

一步一步开发属于自己的SharePoint 2010工作流

一步一步开发属于自己的SharePoint 2010工作流 分类: sharepoint MOSS2013-03-17 08:26 376人阅读 评论(0) 收藏 举报 目录(?)[+] 从Sharepoint 2007开始,工作流作为一个真正的强有力的工具内置在SharePoint中.你可以通过设计工作流,从而在网站或应用程序中添加自定义逻辑,而且不需要编写任何代码!通过工作流实现业务流程自动化所需的各种功能,从发送通知到创建任务这么简单的事都可以通过工作流完成.还有的很多可能性,许多的功能有

C#WPF 语音开发教程 源代码下载 csdn tts(text to sound) 一步一步 教你制作语音软件 附图和源代码

C#WPF  语音开发教程  一步一步 教你制作语音软件 附图和源代码 效果展示 一 项目准备 1.vs2012开发平台 2.微软的语音软件库 下载:http://download.csdn.net/detail/wyx100/8431269 (含实例项目源代码) 二.开发目标 制作一个语音软件,可以朗读文字: 多个语音库:男音和女音.支持英文和中文朗读: 支持选择播放设备 支持朗读语速选择 支持音量选择 三 开发过程 1.新建WpfSpeechDemo工程 文件(vs开发平台左上角)----新

一步一步跟我学DeviceOne开发 - 仿微信应用(一,二,三)

这是一个系列的文档,长期目标是利用DeviceOne开发一些目前使用广泛的优质手机应用,我们会最大化的实现这些应用的每一个功能和细节,不只停留在简单的UI模仿和Demo阶段,而是一个基本可以使用的实际App. 在实现的过程中,会有很多困难,还会发现有一些功能目前缺乏组件支持而无法实现,也会碰见各种移动开发中都会碰到的常见技术问题.一步一步的操作和问题的解决可以让开发者直观的了解通过DeviceOne如何开发一个实际App,也可以了解移动开发本身的很多技术细节,可以让App开发者少走很多弯路. 这