gpt4 book ai didi

Redis如何表示一个二维世界(MMO?)

转载 作者:IT王子 更新时间:2023-10-29 06:10:24 27 4
gpt4 key购买 nike

我正在制作一款拥有 2d 世界的 MMO。 (这是一个学习项目,所以不要试图说服我放弃它 :) 我想为它试验一个新的数据存储,并且我读过关于 redis 的好东西。我已经完成了这些教程,我想我开始了解 Redis 的优势,但我不清楚如何为这样的世界建模。

这里有一些设计要求

  1. 我需要能够发送元素在世界中的当前位置。将这些划分为地理“房间”进行表演是可以接受的。
  2. 我需要能够在世界上“移动”一个物体,改变它的位置
  3. 我需要获取有关某个对象的信息:它的名称、类型、属性等。
  4. 我需要能够计算基本碰撞(obj a 想向右移动,那里有石头吗?)

您将如何在 Redis 中对其进行建模? redis是不是一个不合适的选择?

最佳答案

假设 2D 世界被分成已知坐标的正方形,您最好在 redis 中根据返回对象 ID 集(或导出/路径或地形等)的坐标生成键

例如一个非常简单的插图

obj:1:name = Rock
obj:1:passable = false
obj:2:name = Skeleton
obj:2:passable = true
loc:0:0:objs = {1,2} // loc:0:0 contains obj:1 and obj:2
loc:0:0:paths = {0:1, 1:0, 1:1} // three legal paths, to loc:0:1, loc:1:0, loc:1:1

我不是 Redis 专家,不知道这个域是否会导致您在 Redis 中出现问题,所以请对我的建议持保留态度。

关于Redis如何表示一个二维世界(MMO?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8874090/

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