如何将无限噪声图存储到数据库中?

问题描述 投票:0回答:1

我正在考虑设计一款小型 2D 游戏,其中所有玩家共享相同的地图,由 Perlin 噪声(例如)生成,并且可以由玩家修改。从技术上讲,它应该像一个巨大的、可能无限的

r/place
(Reddit 事件)。出于可扩展性的原因,运行游戏的服务器应该是 RESTful。因此,每次更新后,地图都应该存储在数据库中。我想知道如何存储这样的地图,使用什么类型的数据库(Redis,postgres,cassandra?),以及如何优化地图的存储(分为块?)。

database game-development scalability noise
1个回答
0
投票

如果生成时带有噪声,请使用种子随机数生成器。然后你只需要存储种子和所做的任何更改。

您可能需要空间索引数据库而不是关系数据库。 K-D 树、R 树或 Oct 树可能更有用。

最接近“普通”数据库术语的是 GIS(地理信息系统)。 PostGIS 是一个构建在 Postgres 和 IIRC 之上的 GIS 系统,它允许空间查询。

另外,虽然 REST 非常适合结构化低速数据,但 JSON 的开销不为零,因此对于实时多人游戏来说可能是一个问题。也许用它来通信登录/分数,但我不建议将玩家运动数据作为 JSON 发送,并且以安静的方式构建端点可能不是最佳选择,因为每个请求都是不同的连接。可能最好使用 webRTC 或 websockets 来获取实时数据(假设您是基于浏览器的)。

© www.soinside.com 2019 - 2024. All rights reserved.