什么是游戏服务器
温馨提示:这篇文章已超过597天没有更新,请注意相关的内容是否还可用!
什么是游戏服务器
游戏服务器是游戏客户端用来玩多人游戏的本地或远程服务器。 大多数通过 Internet 玩的游戏都是通过连接到游戏服务器来运行的。
什么是游戏客户端?
游戏客户端是连接到游戏服务器的软件程序。 服务器提供连接并向客户端发送信息包。 许多客户端可以同时连接到服务器,并将保持对游戏世界的概览。 每个客户对视频游戏世界都有自己独特的看法。
大多数客户端是游戏客户端-服务器架构和点对点的混合体。
视频游戏是一种为娱乐而创建的计算机程序,它基于一个或多个人与执行视频游戏的电子设备之间的交互,可以是计算机、街机系统、游戏机、手持设备或移动电话。
在许多情况下,视频游戏再现虚拟环境和情境,其中玩家控制一个或多个角色(或该环境的任何其他元素)以通过某些规则实现一个或多个目标。
通过电视、PC 显示器或投影仪等视频输出设备交互式观看比赛,其中节目录制在磁带、CD、磁盘、存储卡、特殊游戏或在线上。
玩家通过外部设备与游戏互动,例如键盘和鼠标、游戏手柄、操纵杆,甚至是运动感应设备。 游戏是在一个人和一台机器或 CPU 之间,在同一台控制台上的两个或更多人之间,通过 LAN 或 Internet 在线玩的,可以与机器、计算机或彼此对抗。
游戏分为几类,其中最具代表性的有:动作类、角色类、策略类、模拟类(有很多)、运动类和冒险类。 通过最新的游戏引擎技术和 GPU,采用具有 EAX 效果和现代视觉效果的全新杜比数字环绕声。 足球、篮球或冰球等运动在 80 年代后期特别受欢迎,尽管一些职业球队将他们的名字借给了他们运动的这些视频版本。
专门销售视频游戏的机构是全球休闲行业的经典之作。 1990 年代初期 16 位系统的引入极大地增加了视频游戏的普及。 后来使用了 CD-ROM,因为它的容量比磁带大,因为它们已经达到了技术的极限,而且批量生产更便宜。 目前系统采用大容量DVD,但由于价格高、蓝光、容量大,使用频率不高。 目前,使用高清电视和电信线路传输此类视频游戏有助于进一步增强其游戏性和真实感。
游戏服务器托管
游戏服务器提供商是租用游戏服务器的公司。 游戏部落通常会为您玩的游戏租用一台或多台服务器网游服务器 编程,成员帮助支付租金。游戏服务器提供商通常会提供工具来控制和配置网络服务器
专用游戏服务器
大多数游戏都使用专用服务器应用程序。 该程序跟踪玩家并将其分发给其他玩家。 这比点对点更有效,但需要一台单独的计算机来托管服务器应用程序。 这台额外的计算机是服务器。
网络带宽,带宽的提升往往是托管游戏服务器时的主要限制因素。 具有家庭带宽的 Internet 连接很少能提供托管超过 4 到 10 个客户端的专用游戏服务器所需的上行带宽。
游戏服务器类型
游戏服务器分为监听服务器和专用服务器。 在服务端监听,服务端和游戏客户端运行在同一个进程,让玩家可以同时主持和参与游戏。 但是当关闭客户端时,服务器也会做同样的事情。
Listen 服务器主要由个人操作,通常在 LAN 端而不是 Internet,并且由于在单台计算机上运行服务器和客户端所需的大量处理要求和带宽,通常只有少数玩家。
专用服务器是独立于客户端运行的服务器。 这些服务器可以由个人操作,但通常在位于数据处理中心的专用计算机上操作网游服务器 编程,这些计算机提供更高的带宽和专用处理能力。
专用服务器是大多数 PC 多人游戏托管游戏服务器的首选方法。 大型多人在线游戏在专用服务器上运行,通常由拥有游戏的软件公司运营,允许他们控制和更新内容。 在许多情况下,它在集群中工作以允许巨大的环境和大量的玩家。
单机游戏从游戏玩家之间的交互形式开始:一个人在一台机器上玩。
联网游戏:同时玩的范围比较小,比如8-10人。
网络游戏:远端有很多机器在运行一个大系统,几万、几十万甚至更多的玩家可以加入一起玩。
2、游戏服务是一种互联网服务
其他常见的互联网服务包括:搜索、电子商务、即时通讯、电子邮件、视频等。
3、游戏服务有哪些基本功能?
网络连接和数据收发:TCP接收并打包数据包。
资料存取
逻辑计算
状态持久性:上下文、内部驱动程序等。
4、游戏服务器:严格来说是一个硬件概念
常见类型:机架式服务器、刀片机、小型机。
根据游戏类型或运行程序的不同,CPU/内存/硬盘会有一定的侧重。
5.游戏服务器开发
从游戏交互的角度看游戏开发的分工
游戏后台开发==游戏服务器开发
6.“游戏服务器”具体指的是什么?
承载游戏服务的硬件;
提供游戏服务的软件;
开发游戏服务的程序员。
二、游戏服务的特点及对策
一、游戏服务要解决的核心问题
满足海量游戏用户稳定优质的服务需求
海量 - 100,000~100,000,000,000,000,000,000,最多100,000,000个注册;
稳定 - 相对于:停机、网络和计算冻结;
优质-快速:网络延迟; 严谨的逻辑; 更新频率和及时性。
2、游戏服务与其他互联网服务有什么区别?
延迟敏感
实时互动游戏一般要求网络延迟在300ms以内,以保证体验。
实时高强度互动
单个终端频繁发送请求;
单个请求触发多个数据更改;
业务逻辑复杂,内部耦合度高
【延迟敏感+高强度互动】同时动作下,【状态维持】往往成为必要;
复杂游戏服务的实现代码可达百万行。
变更频率高,范围大,变更范围包括内容和逻辑。
系统级
(1)操作系统基础知识的理解
处理器管理
流程管理
线程调度
内存管理
输入输出管理
权限管理...等
(2) Linux操作系统知识
· 核心
· 用户管理
· 文件系统
·进程、线程
·进程间通信
· 网络
· 信号处理
·权限等
3.开发工具
· 编译器gcc知识
· 熟悉调试器gdb
· 熟悉文档工具ar
· 自动工具知识
· Makefile的理解
· 性能分析工具的知识
· 内存泄漏调试工具知识
· samba文件共享知识
· 版本管理工具知识(cvs/svn/cc)
4. 语言
(一)选择编程语言的几个因素
· 业务复杂性
· 执行效率VS开发效率
· 开发人员和团队能力
(二)C/C++技能要求
· 对C/C++语法有很好的理解
· 很好地理解 Ansi C 库函数
· 对指针有正确、坚定的认识
· 对STL库有很好的理解
· 了解C/C++语言的内存分配机制
· 了解第三方框架(如ACE/ICE等)
5.脚本语言
(1) shell脚本
· 对于Linux下的程序开发,学习使用shell脚本将大大提高工作效率;
· 部分工作适合用shell来完成,开发效率更快;
· Shell 脚本经常被用来做一些集成工作。
(2)程序嵌入式脚本语言
· 了解脚本(解释性语言)的优点和缺点;
· 脚本在游戏开发中的应用范围;
· Lua/Python/自定义脚本。
6. 软件设计技巧
(1)化繁为简的重要途径:区分“可变性”是关键。
(2) 设计原则——SOLID
· 单一职责原则
· 开闭原则
· 里氏替换原则
· 依赖倒置原则
· 接口分离原则
(3)设计模式:可以看作是设计原则的应用。
7.Linux下常用工具
· 系统管理工具:ipcs/ps/top/...
· 文件系统工具:ls/find/where/which/locate...
· 文件处理工具:sed/grep/...
· 性能测试工具:iostat/memstat...
· SSH工具:ssh/ssh2/sshd/ssh2d/scp/...
(1) 关系型数据库
· 了解数据库原理
常用DBMS:mysql:了解mysql的安装和简单管理; 性能调整的空间; 任务; 备份和恢复。
· SQL语言的理解和使用
· 对数据库表结构设计的理解
(2) 非数据库
· KV型数据存储方式
· 帽底
· Redis/MongoDB
(3) 文件
(4) 网络接入、协议
· 了解TCP/UDP协议