我正在开发一个游戏服务器,因为我必须存储每个玩家的进度,所以我有一个问题:对于我的案例来说,最好的数据存储解决方案是什么?
一些事实:目前,每个玩家都是我的 MYsql 数据库中的一个行,具有唯一的 ID 和名称。每个玩家都有一个世界。每个世界都包含一组不断增长的区域(随着玩家前进)。每个区域都包含一组景观。问题来了。
我想尽可能简单地添加新的景观,所以我有一个简单的概念:我有一个界面 Landscape.java,只包含一个名为 doit(String command) 的方法,景观的每个实现都在他们的 doit 方法中做一些花哨的东西我不得不更改任何代码。
现在我必须存储每个玩家的世界,这是我想到的一些想法/选项
将所有内容存储在数据库中需要我为景观的每个实现创建表。将是一个糟糕的解决方案
序列化是另一个想法,非常完美,因为我不必担心任何简单地转换为横向和精细的事情。但我有疑问,我应该如何编辑数据,更新类时该怎么做,如何推出对数据的更改。
Hibernate、JPA 等框架(我对它们没有深入的了解,这对我的情况有帮助吗?)
编写我自己的文件格式,改变我的策略或其他想法?
最后一些可能很重要的信息:
保存的数据必须是可编辑的
存储不是时间关键的,应该在正常时间完成
由于所有数据都缓存在内存中,我并不真正关心它是否快速,它更可能必须是可靠的
可以使用的是 PostgreSQL/Mysql 和文件系统。
我在这个领域没有经验,所以如果我走错了路,请给我提示;)