我正在开发一个游戏服务器,因为我必须存储每个玩家的进度,所以我有一个问题: 最适合我的情况的数据存储解决方案是什么?
一些事实: 目前,每个玩家都是我的 MYsql 数据库中的一行,具有唯一的 id 和名称。 每个玩家都有一个世界。 每个世界都包含越来越多的区域(随着玩家前进)。 每个区域都包含一组景观。 问题来了。
我想尽可能简单地添加新景观,所以我有这个简单的概念: 我有一个接口(interface) Landscape.java 仅包含一种名为 doit(String command) 的方法 景观的每个实现都在其 doit 方法中做一些奇特的事情,而无需我更改任何代码。
现在我必须存储每个玩家的世界,这里是我想到的一些想法/选项
将所有内容存储在数据库中需要我为景观的每个实现创建表。在我看来这将是一个糟糕的解决方案
连载是另一个想法,很完美,因为我不必担心任何简单地转换到风景和精细的事情。但我有疑问,我应该如何编辑数据,更新类时该怎么做,如何推出对数据的更改。
像 Hibernate、JPA 等框架(我对它们没有深入的了解,这对我的情况有帮助吗?)
编写我自己的文件格式,改变我的策略或其他想法?
最后有一些可能很重要的信息:
保存的数据必须可编辑
存储对时间要求不高,应在正常时间内完成
由于所有数据都缓存在内存中,我并不真正关心它是否快,它更可能必须是可靠的
可以使用 PostgreSQL/Mysql 和文件系统。
我在这方面没有经验,所以如果我走错了路,请给我提示;)
最佳答案
我没有看到任何建议您应该选择一种方法而不是另一种方法的信息。
有些人会有偏好,我会选择你喜欢的任何东西。
如果您要序列化数据,我会使用文本序列化,这样可以轻松在文本编辑器中对其进行编辑。例如XML、JSON、CSV。
关于Java服务器数据存储的最佳策略是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11863629/