类似于那种测试性格的娱乐选择题,选择不同的选项跳转到不同的题目
还有就是类似于养成类游戏,选择不同的选项加载不同的剧情
数据库咋设计才能足够灵活?
1
binux 2022-06-03 15:01:19 +08:00 via Android
状态转移表
|
2
HeyHudy 2022-06-03 15:20:14 +08:00
蹲一个答案
|
3
imn1 2022-06-03 15:33:41 +08:00
虽然我不甚了解,但我做的话,肯定是状态机,数据库有一个或多个状态字段就够了
|
4
12101111 2022-06-03 16:08:29 +08:00
kv 数据库,状态机
坏处就是如果程序的状态机有 bug , 或者数据库被篡改,直接就逻辑混乱了 |
5
Natsumoku 2022-06-03 16:21:31 +08:00 4
网上那种性格测试我不了解
单机游戏的话,大厂会有专门的(往往是内部的)工具,把剧情走向分支可视化。至于人人都能用到的工具们,我去年写过一篇《分支剧情创作中的挑战和工具》: https://indienova.com/indie-game-development/tools-for-branching-dialogs-and-narrative/ 但你如果问它们背后的数据库是怎么设计的,我也不清楚。好在这些工具有些是开源的,你可以去读读看源码。 我也想过自己造这方面的轮子,但是一来我现在的目标还是做游戏而不是做工具,用现成的工具来帮助我开发已经够用了;二来即使造出来了也未必比这些好用;三来如果要造轮子,还得有独树一帜的特点才行,我的确有注意到这些工具的局限性,它们仍然无法同时做到“剧情灵活可变”和“软件省时易用”——我可以做出非常灵活的、模块化的剧情,但代价是要在工具和游戏引擎里做巨多的准备工作才能进入高产写作的阶段,我也可以花几分钟就做出分支剧情来,但成品就真的很死板,所以如果是我来做新的工具,会想努力兼顾这两点,既要从 narrative designer 的角度去设想 user journey ,又要从程序员的角度去思考背后的实现 |
6
joesonw 2022-06-03 16:45:32 +08:00 via iPhone 1
一般都是一个剧情表,用来表诉依赖关系。再一个玩家剧情表,用来记录玩家的剧情状态。然后其余的都是客户端展示用,都是本地的 xlsx 。
|
7
debuggerx 2022-06-03 16:47:31 +08:00 via Android
一般产品 /策划给的 excel 啥样的 稍微调整下就入库了
很多时候游戏不是围绕程序 /数据库设计 而是策划 /excel 优先 |
8
documentzhangx66 2022-06-03 16:48:02 +08:00
数据库的本质是对数据结构的体现,建议可以学学数据结构这门课。然后你会发现,这个问题,有几种不同的设计方法,每种方法都有自己的优缺点。
|
9
Mutoo 2022-06-03 18:25:19 +08:00 1
剧情就是一系列的 flag (布尔值),然后加上一堆的 if-else 而已。「立 flag 」这个词就是这么来的,
|
10
coderluan 2022-06-03 20:16:32 +08:00
这种游戏根本不需要数据库吧,把数据结构设计好,非得用数据库照着存就完了。
|
11
XiLingHost 2022-06-03 20:51:45 +08:00
要灵活的数据库,那就用 nosql
|
12
MrKrabs 2022-06-04 00:36:19 +08:00
json 足够
|
14
a570295535 2022-06-04 08:42:08 +08:00
可以把选择题看成一个数学题,默认没选=50 ,选择 A 就+0 ,选择 B 就+1 ,选择 C 就-1 ,选择 D 就+2 。
最后只需要判断总数大小,小于多少什么性格,大于多少什么性格,这样就简单多了。 |
15
skys215 2022-06-04 09:58:35 +08:00
图形数据库? Neo4j 等
|
16
newtype0092 2022-06-04 10:02:12 +08:00
单纯的游戏存档不需要数据库,因为这东西本来就是从单机游戏来的,要说灵活肯定 nosql 或者直接丢 json 合适。
不过现在这种服务一般都涉及到后台关联统计,类似 x%的人选了什么,高分排行榜等等。这种用 ES 之类的工具可以解决一部分,但最好还是把用于分析关键的指标存入关系数据库。 |
19
Wenco OP |
20
Wenco OP @a570295535 感谢,你这个逻辑适合最后计算结果,根据不同的选项跳到不同的下=一=题并不适用
|
21
Wenco OP |
22
xzysaber 2022-06-04 16:40:53 +08:00 1
游戏的很多东西都想知道是怎么设计的,尤其是 DOTA2 这么复杂的游戏。
各种技能、物品效果叠加等。 |
23
winglight2016 2022-06-04 23:52:22 +08:00
有挺复杂的逻辑运算语言,也有规则引擎,也有简单的 excel ,key-value ,最后就是 ifelse ,如果要类比,工作流应该差不多
|