1
kiracyan 2022-03-12 19:13:20 +08:00
c++ go
|
2
BrettD 2022-03-12 19:14:55 +08:00 via iPhone 2
C++,游戏服务端业务时延敏感
|
3
paoqi2048 2022-03-12 19:19:36 +08:00
主要看项目的技术选型,一般是 C++写底层再搭配一门脚本语言如 Lua/Python ,另外就是 Java 、C#、PHP 、Erlang 和 Go 这种
|
4
whitehack 2022-03-12 19:22:59 +08:00
我们用的 nodejs 和 go
|
5
nightwitch 2022-03-12 19:24:36 +08:00
和游戏品类有关系。。moba/fps/mmorpg/SLG/消消乐所用的服务器技术差很多
|
7
rv54ntjwfm3ug8 OP @Kasumi20 #6 .NET 不是语言,而且我已经写上了 C#了
|
8
newtype0092 2022-03-12 19:49:40 +08:00
除了上面说的 C++,有些延时不敏感的会用 Java ,比如回合制卡牌、棋牌、益智类小游戏等。
|
9
ragnaroks 2022-03-12 19:58:01 +08:00
具体看游戏类型和数值设计,如果是那种战力养成的游戏还真挺吃优化的,像仙境传说老游戏没啥氪金点就可以直接 dotnet+mysql 1c2g 带 50 多人
|
10
forgottencoast 2022-03-12 21:33:10 +08:00
@theklf4 哈哈,#6 莫名其妙。
|
11
ly841000 2022-03-12 22:06:47 +08:00
go 不用强行刷存在感吧?哪个著名点的游戏用 go 了?
|
12
magicdawn 2022-03-13 00:46:09 +08:00
咋没有 rust 啊
|
13
luckyrayyy 2022-03-13 02:43:52 +08:00
ZGC 能做到 TB 级别内存的 stw 时间低于 1ms 了,应该很少有游戏会严苛到这种级别吧?未来会不会有很多游戏后端用 Java ?
|
14
Leviathann 2022-03-13 02:52:43 +08:00
@luckyrayyy 我认识一人在页游公司,他们用的 jvm 生态,语言是 kotlin 好像还有 akka 框架
|
16
magicdawn 2022-03-13 10:33:43 +08:00
rust arewegameyet: Almost
https://arewegameyet.rs/ecosystem/networking/ |
17
bruce0 2022-03-13 12:13:06 +08:00
以前基本都是 C++,现在的分游戏类型了
像卡牌(阴阳师),养成类的(暖暖),等对延时不敏感的游戏现在大多数用 go 就可以了, 广州那边很多用 erlang 的,听说还都是用一个框架出来的, 听说过有用 java 的, 但是认识的没有用的 像 fps, moba, mmorpg 这些, 基本还是 C++, 毕竟对延时很敏感, go 有 GC 还是会有影响的 像我司, 卡牌都是 go 新开的 fps 用的 C++ @ly841000 游族的少年三国志 就是 go 写的 |
18
documentzhangx66 2022-03-13 15:16:06 +08:00
其实如果性能允许,能用 Java 、C#、node 、python 、甚至 php 写后台,谁愿意用 C 或 C++。
很多游戏后台用 C++,那不是优势,而是无奈。 |
24
timethinker 2022-03-18 12:59:30 +08:00
语言用 C++是有优势,但是相比较之下,良好的架构更加重要,要兼顾到日常逻辑开发的便利性,如何权衡取决于公司的用人成本。用 Java 配合 Netty 已经足够承载绝大多数游戏类型了,并且招人也很方便。
游戏服务端一般是有状态的,而 web 开发大多数是无状态的,有状态就意味着容易出现单点事故,比如网络不可靠,机房出现故障,服务端宕机等等,因此就需要通过日志的方式来存储状态变更操作,尽量减少事故带来的影响。类似于 redis 的 AOF ,mysql 的 binlog 。 要知道大多数在线游戏后端主要是计算密集型的应用,跟 web 开发的区别之一就在于基本上所有的状态都会保存在进程内存中,目的就是尽量避免 IO 操作。数据库的作用仅仅只是用于存档落地,甚至简单的来讲都可以不要数据库,直接二进制文件也可以。比如我经常在开发调试的过程中将整个玩家对象序列化为一个 JSON 文本,特别方便用于测试的时候,设置各种玩家的快照还原。 还有很多关于游戏后端开发的知识要点,一次也说不完,比如线程模型,元数据(配置)管理,网络 IO ,二进制消息协议,GM 管理后台,第三方系统集成等等,是一个很庞大的内容。 值得庆幸的是,随着用户的爆炸增长,现代的服务部署以及运维都比以前要好上太多了,使用云服务和容器成本更低,更有保障,但一切的前提是要根据游戏类型选择合适的技术架构。 |