网络游戏服务器编程02 服务器简介

2024-06-23 09:08

本文主要是介绍网络游戏服务器编程02 服务器简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本章内容

	1、了解常见的服务器种类
	2、掌握网络游戏通信协议
	3、掌握socket编程
 
 

一、网络游戏类型

C/S架构是网络游戏最基本的框架,而从开发者的角度,又可以分一下几类
	1、对等的客户端与服务器端。(如cs,魔兽争霸等)
	2、基于大厅的网络游戏。(如欢乐斗地主,棋牌游戏等)
	3、纯C/S结构的网络游戏。(如魔兽世界)
 

·对等的客户端与服务器端

从严格意义上讲这种游戏不算网络游戏,因为它是局域网游戏。以其中一台电脑为server,其他与之相连的电脑为client。
特点:
·周期短,以一局为周期。
·由client负责核心算法,设计理念与单机游戏相仿。
·通常基于局域网。玩家信息无法保存。
结构图:
对等结构图

·基于大厅的游戏

大厅就是一个中介,一台专门的服务器。它的作用不是作为主机,而是负责为玩家牵线搭桥。进入大厅,玩家可以找到不同的玩家建立房间。为局域网游戏配置一个大厅服务器,就成了大厅游戏。如用vs对战平台玩dota。
特点:
·大厅只负责将client撮合在一起。在进行游戏时,玩家只和自己加入的server交互。因此,玩家可以保持与大厅的连接,不断汇报游戏信息;也可以断开与大厅的连接,等游戏结束后再重连大厅,并由主机汇报结果
·在与大厅相连的数据库中,存放了玩家的基本信息。即,玩家信息可以保持。
·大厅不包含游戏的核心逻辑运算。只负责提供房间供玩家选择。每个玩家在房间内的地位平等。每个玩家既可以充当服务器,也可以充当客户端。
结构图

·纯c/s结构的网络游戏

MMORPG(多人在线网络角色扮演游戏)就是纯C/S结构的网络游戏。这种游戏有一到多个服务器,成千上万的玩家同时在线,玩家在游戏世界里同时存在,并可以保持玩家信息。为了保证每个client具有相同的结构,关键的逻辑运算都放在服务器端。因此服务器是必须具备完整的游戏世界模型。客户端负责“播放”这个游戏世界,并通过I/O系统与这个世界交互。
特点:
·严格划分客户端与服务器端。两者开发分开进行。玩家只能与客户端交互,而服务器端有运营商控制。
·核心算法都在服务器端。而客户端只负责显示画面和一些非核心运算。客户端需要随时保持与服务器的链接。
·游戏世界具有良好的持续性。
结构图:
MMORPG功能结构图
TCP/IP协议详解
Socket编程
Over

这篇关于网络游戏服务器编程02 服务器简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086726

相关文章

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

Linux 网络编程 --- 应用层

一、自定义协议和序列化反序列化 代码: 序列化反序列化实现网络版本计算器 二、HTTP协议 1、谈两个简单的预备知识 https://www.baidu.com/ --- 域名 --- 域名解析 --- IP地址 http的端口号为80端口,https的端口号为443 url为统一资源定位符。CSDNhttps://mp.csdn.net/mp_blog/creation/editor

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包, 通常我们会使用nohup直接启动,但是还是需要手动停止然后再次启动, 那如何更优雅的在服务器上启动jar包呢,让我们一起探讨一下吧。 1、初版 第一个版本是常用的做法,直接使用nohup后台启动jar包, 并将日志输出到当前文件夹n

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

Go Playground 在线编程环境

For all examples in this and the next chapter, we will use Go Playground. Go Playground represents a web service that can run programs written in Go. It can be opened in a web browser using the follow

深入理解RxJava:响应式编程的现代方式

在当今的软件开发世界中,异步编程和事件驱动的架构变得越来越重要。RxJava,作为响应式编程(Reactive Programming)的一个流行库,为Java和Android开发者提供了一种强大的方式来处理异步任务和事件流。本文将深入探讨RxJava的核心概念、优势以及如何在实际项目中应用它。 文章目录 💯 什么是RxJava?💯 响应式编程的优势💯 RxJava的核心概念

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)