Skip to main content
德胜云
  万速智能9 > 服务器知识

学会了吗「手机游戏服务器搭建教程,台州BGP服务器租用180.188.27」怎么在手机架设手游服务器失败如何用手机搭建游戏服务器

2024-05-11 02:00:08 浏览:

学会了吗「手机游戏服务器搭建教程,台州BGP服务器租用180.188.27」怎么在手机架设手游服务器失败如何用手机搭建游戏服务器

春节以来新型肺炎蔓延全国,而为了防止病毒的传播,各地封路封城,国民基本都是宅在家里面足不出户,受此影响国内养殖、娱乐、零售、旅游、餐饮等众多行业都遭受到重创

不过有一个行业却在这个假期迎来了爆发

什么行业呢?既然只能在家,那么精神方面的娱乐就便不能少,于是在国内许多行业受疫情影响处于低迷之时,游戏行业却逆势实现了增长,毕竟无聊的时候,打游戏是不错的选择

手游上线,手游服务器也要与时俱进,及时做好数据备份工作,那么,手机游戏服务器该如何开发呢?

下面咱们就随便聊聊手机手机游戏服务器开发需要的技术

一、聊聊手游服务器开发有哪些东西要考虑

1、开发语言的选择:

工欲善其事,必先利其器,选择一门适合的开发语法对后期开发有着事半功倍的作用

业界主要的是c/c++ + Python/lua模式做手机游戏服务器,c/c++做网络通讯数据传输,python/lua做业务逻辑,这样既保持了网络传输的效率(c++),又提升开发效率(Python/lua),同时也支持热更新

当然,也有其他服务器开发语言,erlang(没用过,页游公司用的多),c#(大棒子国喜欢用,神奇的民族),Java(第一次听说时我惊呆了),node.js(少量游戏用的,还有一个node.js写的引擎叫pemolo),php(做http协议通讯的游戏时php+mysql也不失为一种好选择)

看过两个手机游戏服务器引擎

1)、firefly(9秒社团开发的一款python手机游戏服务器框架)

2)、kbengine(按bigworld的架构来设计的,c++ + python的)

2、数据库

现在比较流行的两种数据库,关系型数据库mysql和非关系型数据库mongodb,这是我用的最多的两个数据库

关于两者之间的各种比较,网上有很多,当然你也可以用其他数据库,至于sqlserver,多数开发者都反映这个数据库挺坑的

3、服务端架构

讲一下我用过的其中一种架构模型,也是公司按照bigworld架构设计的:

1)、Gate:首先要有一个Gate(网关)服务器,负责客户端连接及消息转发到Game(游戏服),保持客户端到服务端的连接

没有任何逻辑,只做消息加密和解密,以及客户端和服务器消息的转发(相当于两者之间的桥梁).

2)、GameServer:GameServer是游戏进程,提供游戏逻辑功能(采用单进程(或者单线程)模型,手机游戏服务器的瓶颈从来不在CPU,所以只做逻辑功能的话单线程足够了,在这里没必要用多线程或多进程)

3)、DBManager:实现数据库的读写,方便Game服务器异步读写数据库的数据(有些把数据库读写放在游戏服,没有单独的服务器,那恐怕游戏服单进程就不够用了)

4)、GameManager:负责管理所有的GameServer,GameServer之间消息转发,提供广播到所有Game的功能

4、协议

客户端与服务器之间协议通信,可以用tcp或者http,主要看游戏模型,如果是那种弱联网单机玩法,用http足够了,像天天酷跑之类,只在需要的时候处理一条http请求响应

不过tcp用的比较还是比较多的。现在的网络游戏大多数都是tcp,像MMORPG类游戏,我们现在的游戏就是同时用了http和tcp,客户端和游戏服采用http协议。只有多人战斗转向战斗服才采用tcp长链接

udp:其实游戏是有udp的,在一些高效率的场景下比如pvp即时战斗,tcp的拥塞控制和超时重传并不适合,有些就用的udp,然后自己做丢包重发,拿网络公平性换游戏局部的效率

现在参与开发的游戏就同时使用了http协议和tcp协议,在游戏服是单机玩法用http协议,战斗服需要长连接保存协议状态,用的tcp

5、存盘

有数据库就肯定有数据库读写操作,最主要的还是存盘(save),周期存盘还是即时存盘

即时存盘就是每一次操作数据都进行存到数据库,当然这样会导致对数据库的操作过于频繁,毕竟这是效率的瓶颈之一

周期存盘也叫固定存盘,就是每隔固定时间存盘一次,比如10秒或者15秒,这样数据库的压力就会小很多,当然自己就要在内存中做好数据操作,防止数据污染或者存盘不上导致回档

二、开发一个手机游戏服务器需要掌握的开源技术

1、libevent,boost.asio等网络库,网上有很多开源网络库,与其自己造轮子,不如就用开源网络库作为自己服务器的通讯库,最出名的就属libevent和boost.asio了

Boost的ASIO是一个异步IO库,封装了对Socket的常用操作,简化了基于socket程序的开发,支持跨平台

libevent是一个C语言写的事件驱动的开源网络库

至于二者之间的效率,仁者见仁

当然还有很多:比如云风写的skynet(c + lua),陈硕写的muduo(c++)。都写得很好,云风写的东西简单好用,陈硕在秀他的c++技术

2、protobuf:全称Google Protocol Buffers,是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库,它和XML或者JSON差不多,也就是把某种数据结构的信息,以某种格式(XML,JSON)保存起来

protobuf与XML和JSON不同在于,protobuf是基于二进制的,主要用于数据存储、传输协议格式等场合

protobuf他的优势是对于传输比较大的数据产生的数据很紧凑很小,可以明显减小传输量

而且处理速度也比较快,又有各种编程语言的实现,例如C++,Java,PHP等等

缺点是不能明文编辑(数据是二进制的)

用protobuf rpc进行数据传输很方便,所以是一个不错的选择。google protobuf只负责消息的打包和解包,并不包含RPC的实现,所以需要自己实现

3、zeromq:消息队列,一个稳健,简洁的多进程通讯方案的基础。ZeroMQ 并不是一个对socket的封装,不能用它去实现已有的网络协议。它有自己的模式,不同于更底层的点对点通讯模式。它有比 tcp 协议更高一级的协议。(当然 ZeroMQ 不一定基于 TCP 协议,它也可以用于进程间和进程内通讯。)它改变了通讯都基于一对一的连接这个假设

在这里它更适合服务器与服务器之间的通信,比如逻辑服和战斗服之间进行通信。

4、memcached:一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度

可以用来做缓存,比如客户端本来每次操作都需要操作数据库,会严重影响效率,这时在中间加一层缓存系统,就提升了性能。基于http协议的通信用memcached是一个不错的选择,如果是tcp长链接,直接维护一个在线的内存对象就可以了。

类似的技术还有redis等

5、glog/zlog:你肯定需要记录日志,看爱好喽

6、tcmalloc:内存性能分析

7、distcc:分布式编译工具,之前每次修改代码都要make半个小时,用distcc进行多台电脑同时帮你编译,快很多

携手驰网卷心菜一同探索拥有一台服务器可以做哪些很酷的事情吧~

台州高防护段(TCP_SYN,ACK,RST)展示:

180.188.27.1

180.188.27.2

180.188.27.3

180.188.27.4

180.188.27.5

180.188.27.6

180.188.27.7

180.188.27.8

180.188.27.9

180.188.27.10

180.188.27.11

180.188.27.12

180.188.27.13

180.188.27.14

180.188.27.15

180.188.27.16

180.188.27.17

180.188.27.18

180.188.27.19

180.188.27.20

180.188.27.21

180.188.27.22

180.188.27.23

180.188.27.24

180.188.27.25

180.188.27.26

180.188.27.27

180.188.27.28

180.188.27.29

180.188.27.30

180.188.27.31

180.188.27.32

180.188.27.33

180.188.27.34

180.188.27.35

180.188.27.36

180.188.27.37

180.188.27.38

180.188.27.39

180.188.27.40

180.188.27.41

180.188.27.42

180.188.27.43

180.188.27.44

180.188.27.45

180.188.27.46

180.188.27.47

180.188.27.48

180.188.27.49

180.188.27.50

180.188.27.51

180.188.27.52

180.188.27.53

180.188.27.54

180.188.27.55

180.188.27.56

180.188.27.57

180.188.27.58

180.188.27.59

180.188.27.60

180.188.27.61

180.188.27.62

180.188.27.63

180.188.27.64

180.188.27.65

180.188.27.66

180.188.27.67

180.188.27.68

180.188.27.69

180.188.27.70

180.188.27.71

180.188.27.72

180.188.27.73

180.188.27.74

180.188.27.75

180.188.27.76

180.188.27.77

180.188.27.78

180.188.27.79

180.188.27.80

180.188.27.81

180.188.27.82

180.188.27.83

180.188.27.84

180.188.27.85

180.188.27.86

180.188.27.87

180.188.27.88

180.188.27.89

180.188.27.90

180.188.27.91

180.188.27.92

180.188.27.93

180.188.27.94

180.188.27.95

180.188.27.96

180.188.27.97

180.188.27.98

180.188.27.99

180.188.27.100

180.188.27.101

180.188.27.102

180.188.27.103

180.188.27.104

180.188.27.105

180.188.27.106

180.188.27.107

180.188.27.108

180.188.27.109

180.188.27.110

180.188.27.111

180.188.27.112

180.188.27.113

180.188.27.114

180.188.27.115

180.188.27.116

180.188.27.117

180.188.27.118

180.188.27.119

180.188.27.120

180.188.27.121

180.188.27.122

180.188.27.123

180.188.27.124

180.188.27.125

180.188.27.126

180.188.27.127

180.188.27.128

180.188.27.129

180.188.27.130

180.188.27.131

180.188.27.132

180.188.27.133

180.188.27.134

180.188.27.135

180.188.27.136

180.188.27.137

180.188.27.138

180.188.27.139

180.188.27.140

180.188.27.141

180.188.27.142

180.188.27.143

180.188.27.144

180.188.27.145

180.188.27.146

180.188.27.147

180.188.27.148

180.188.27.149

180.188.27.150

180.188.27.151

180.188.27.152

180.188.27.153

180.188.27.154

180.188.27.155

180.188.27.156

180.188.27.157

180.188.27.158

180.188.27.159

180.188.27.160

180.188.27.161

180.188.27.162

180.188.27.163

180.188.27.164

180.188.27.165

180.188.27.166

180.188.27.167

180.188.27.168

180.188.27.169

180.188.27.170

180.188.27.171

180.188.27.172

180.188.27.173

180.188.27.174

180.188.27.175

180.188.27.176

180.188.27.177

180.188.27.178

180.188.27.179

180.188.27.180

180.188.27.181

180.188.27.182

180.188.27.183

180.188.27.184

180.188.27.185

180.188.27.186

180.188.27.187

180.188.27.188

180.188.27.189

180.188.27.190

180.188.27.191

180.188.27.192

180.188.27.193

180.188.27.194

180.188.27.195

180.188.27.196

180.188.27.197

180.188.27.198

180.188.27.199

180.188.27.200

180.188.27.201

180.188.27.202

180.188.27.203

180.188.27.204

180.188.27.205

180.188.27.206

180.188.27.207

180.188.27.208

180.188.27.209

180.188.27.210

180.188.27.211

180.188.27.212

180.188.27.213

180.188.27.214

180.188.27.215

180.188.27.216

180.188.27.217

180.188.27.218

180.188.27.219

180.188.27.220

180.188.27.221

180.188.27.222

180.188.27.223

180.188.27.224

180.188.27.225

180.188.27.226

180.188.27.227

180.188.27.228

180.188.27.229

180.188.27.230

180.188.27.231

180.188.27.232

180.188.27.233

180.188.27.234

180.188.27.235

180.188.27.236

180.188.27.237

180.188.27.238

180.188.27.239

180.188.27.240

180.188.27.241

180.188.27.242

180.188.27.243

180.188.27.244

180.188.27.245

180.188.27.246

180.188.27.247

180.188.27.248

180.188.27.249

180.188.27.250

180.188.27.251

180.188.27.252

180.188.27.253

180.188.27.254

180.188.27.255

学会了吗「手机游戏服务器搭建教程,台州BGP服务器租用180.188.27」怎么在手机架设手游服务器失败如何用手机搭建游戏服务器

  • 奔走相告「中国分布式关系型数据库排名:蚂蚁腾讯华为阿里国内领
  • 不看后悔「CDN访问慢的分析思路和优化方案」cdn网站加速c
  • 原创「又一家服务器大厂股价创新高 AI硬件迎“超级行情”?巨
  • 速看「如何低成本注册.com域名?」com网站域名注册注册一
  • 不看后悔「CDN可以用于网页游戏加速吗?效果怎么样」cdn加