【发布时间】:2021-05-18 10:45:50
【问题描述】:
假设我有一个支持多个玩家的开放世界游戏。
游戏通过 X 和 Y 存储他们在这个世界中的位置。
此外,玩游戏的任何人都可以看到 11x11 的画布,他的玩家自己在此屏幕上显示,始终居中。
游戏世界有 1000x1000 个方格,可以使用按键行走。
我所知道的是:
- 我可以在玩家行走时发出事件,
- 在服务器端检查此事件数据(看是否可行,速度是否正确/防作弊措施),
- 更新包含所有玩家和位置的游戏状态,
- 从服务器重新发出此状态,以便每个客户端都能正确渲染此新播放器。
问题是,我真的应该更新一个甚至没有被发现的人吗?
当每个人都在四处走动、移动物品、赚取等级等时——这些事件是从客户端发出的,这没关系,但考虑到服务器端,它会为每个更新状态重新发出这些事件,而且,也许那个会超载吗?
此外,发送整个游戏状态,即使它没有被渲染,也会导致许多违规行为,这让我认为还有另一种选择。
我是网络和游戏开发的初学者,这让我很难想到 - 所以我决定试着把它变成一个问题。这样,也许有人阅读了我的想法,我可能会得到一些澄清。也许我只是想错了。
【问题讨论】:
标签: sockets networking server state game-development