gpt4 book ai didi

Javascript 多人游戏 - 服务器端验证。

转载 作者:行者123 更新时间:2023-11-28 00:19:26 25 4
gpt4 key购买 nike

我开始着手使用 HTML 5/Javascript 创建多人游戏。

我目前正在制作一些关于如何阻止人们作弊的不同想法的原型(prototype)。现在我知道我需要在服务器端做所有事情,只需要让客户端发送“ Action ”。

我的问题是我无法找到为每个玩家存储游戏状态的最佳方法。

所以只看一些基本的东西;两名玩家在一张空 map 上奔跑。

目前我的想法是

两个客户端 (sockets.io) 都将它们的操作发送到 Node.JS 服务器,然后该服务器以 X/Y 坐标进行响应。这可以。但很明显,两个客户端都需要知道对方的位置。

我想通过为每个游戏创建一个新的数据库表并将游戏状态存储在其中来实现这一点,这样两个 node.js 连接就可以相互通信。

我的问题是,这是在两个 node.js 连接之间进行交互的最佳方式吗?它是否足够快?还是我缺少针对此特定任务的设计模式?

谢谢

最佳答案

为每场比赛创建一张新 table 通常被认为是一个糟糕的想法。

如果您不需要持久性——即。如果你的 Node.js 服务器崩溃,游戏可能会丢失——你可以简单地将游戏存储在内存中,在一个对象中,比方说 games,它可能包含一个具有数组的对象玩家,每个玩家可能包含xy 坐标等

var games = {
123019240: {
players: {
123: {x: 1, y: 1, name: 'Joe'},
456: {x: 2, y: 2, name: 'Jimbob'}
}
}
};

但是,如果您确实需要持久性,那么您真的应该研究 SQL 以外的一些其他数据库——例如 Redis 可能 是该任务的不错选择。

无论如何,SQL 感觉都是错误的工具,按需创建新表更是如此。 (不过,如果您使用的是 SQL,请考虑使用 game_idplayer_idxy 以及确保在 game_id 上有一个索引 :) )

关于Javascript 多人游戏 - 服务器端验证。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9996779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com