游戏后端和 Web 后端有什么区别?

2020-07-08 22:39:46 +08:00
 yoke123

突然心血来潮,想从事游戏后端开发,求打醒我。

顺便 V 友们给我科普科普一下游戏服务端和传统的 Web 服务端的区别和坑在哪里和需要掌握哪些技术。

谢谢各位了。

9368 次点击
所在节点    程序员
31 条回复
opengps
2020-07-08 22:51:51 +08:00
游戏偏向于通信,我理解必然要求写 4 层 socket 通信(udp,tcp 都用)
但是 web 后端,大部分人可能只写过 7 层 http ( s )通信
jiangzhuo9357
2020-07-08 22:54:11 +08:00
咱还是说说相同点比较好……
Graves
2020-07-08 22:59:03 +08:00
我也有个疑问,互联网项目和金融项目有什么区别,第一感觉就是金融需要安全性更高,具体高在哪?
MeteorCat
2020-07-08 23:00:33 +08:00
天差地别
kaiki
2020-07-08 23:02:19 +08:00
为啥要打醒,这个不是也挺好?
LokiSharp
2020-07-08 23:07:23 +08:00
低实时要求的没区别直接 http 就行,高实时要求的得手撸 socket
lululau
2020-07-08 23:14:31 +08:00
@Graves 金融行业都在 https 里再包一层加密,用 rsa 加密完整报文,还有的用私钥加密公钥解密🤦‍♂️
systemcall
2020-07-08 23:15:46 +08:00
感觉可以试试做页游,既是 Web 开发又是游戏开发,实时的要求低,赚钱快
Graves
2020-07-08 23:21:35 +08:00
@lululau #7 套娃? https 再套一层自己实现的类 https ?
mmdsun
2020-07-08 23:40:50 +08:00
游戏客户端和服务器端基本上一直要保持连接,不是典型的 Request-Response 模式。需要长链接 socket 之类的。和一般后台开发差有些大。

那 Java 和 C#技术栈举例的话。
Java 的话一般后台开发用 spring boot 就够了。游戏要上 netty
.net 普通 MVC 肯定不够用,SignalR 需要用到。

大型游戏服务器一般用 C,Erlang,Golang,lua 这几种语言比较多。

另外可以看一下 GitHub 上面热门游戏服务器框架。

GitHub 上有哪些不错的游戏服务器框架?
https://www.zhihu.com/answer/1064619916
raaaaaar
2020-07-09 01:04:09 +08:00
游戏行业加班是不是要严重些。。
wenlele
2020-07-09 07:41:50 +08:00
没真正从事过游戏的研发工作,但我觉得从业务需求去考虑,游戏后端和 web 后端差别应该挺大的。

光是考虑常用的非功能性指标,游戏后端对可用性、健壮性、时延、错误容忍度等的要求应该会高许多,导致使用的技术架构会有更大的差异,比如我猜游戏后端的通信会依赖长连接的技术,游戏很多静态资源会放在客户端,或者强依赖于 CDN 等网络技术减轻服务端数据传输的压力。

而且,当业务复杂度很大的时候,即使同时 web 后端,顶层抽象的技术架构可能差异不大,但具体的技术架构也会有很大的差异。没有什么技术架构能简单打包就能被其他产品使用的。 我想游戏后端也是如此的。
zqx
2020-07-09 07:44:23 +08:00
@Graves 开发环境是局域网,Java 或 Node 的依赖都要手动维护一份版本列表,然后拷贝进开发环境,CICD 的时候也都是局域网。产品本身倒不一定有多安全,rsa 加密之类的和互联网应该一样
zjsxwc
2020-07-09 08:10:39 +08:00
N 年前网游后端直接就是个 sqlserver 数据库吧,存储过程一把梭,逃
hanxiV2EX
2020-07-09 08:11:17 +08:00
游戏后台管理系统开发属于 web 后端,可以先从游戏后台开发转游戏开发,我一个朋友转了两年游戏后端又回到 web 后端了,哈哈哈。。。
delectate
2020-07-09 08:31:21 +08:00
当然都是加密后的长连接。
短链接很容易被篡改,至于说 http,只适合页游。

很多年前,有一些比较弱逼的游戏,甚至本地改内存都能作弊,就是逻辑没处理好。
怎么解决这个问题呢,我记得有一下几种方案,通常使用 1 种或者多种并用(很久没有研究了,相关资讯可能有点落后,楼下请继续补充):
1 、客户端校验资源和数据文件完整性;
2 、检查客户端是否有可疑程序(类似期货的“看穿式监管”,搜集 ip 、mac 、磁盘序列号等所有数据);
3 、通信数据加密;
4 、保持长连接;
5 、逻辑检测(比如在坐标 a,b,不可能跨越时空出现在另一个坐标 c,d );
6 、行为检测(比如超越人类极限的 1ns 手速,或者固定模式的行为逻辑)。
scr
2020-07-09 09:00:13 +08:00
差别很大. 游戏重实时, 用的长连接, 大部分公司里, 996 算休假模式
optional
2020-07-09 09:30:06 +08:00
300ms 和 30ms 的区别。
paoqi2048
2020-07-09 09:39:18 +08:00
看这里 /t/686506
Mutoo
2020-07-09 09:39:23 +08:00
不同的游戏,后端区别也很大,MMORPG 跟棋牌游戏就是两种极端,FPS 、格斗游戏又是另一番天地。
业务方面有游戏服务器管理、大厅、匹配、任务、活动、公会、玩家、升级、道具、交易、聊天、抽奖等等系统。
实时性要求高的游戏,后端要处理数据同步问题、断线重连问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/688374

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX