许多策略游戏都涉及研究技术,并且每种技术都有一组先决条件(起始技术除外)。这些可以线性(技术级别)或树(技术树)形式排列。

我正在寻找一个mod的技术树图,无论是虚构的文明建设游戏中的技术还是学位课程的课程表。

如果有比“技术树”更好的称呼,我全力以赴。我对类似内容的搜索基本上是为了使游戏本身生成技术树而实际上对Civilization IV或Civilization V进行了修改,但这虽然可行,但似乎与我的使用方法完全相反。每当您进行更改时,游戏就需要很长时间才能启动,而且查看它的唯一方法是打开游戏或将几个屏幕截图拼接在一起。当我修改游戏时,通常会有一个游戏计划,但在这种情况下,您似乎正在使用该游戏来制定游戏计划?

基本上,树上的每个节点都可以具有任意数量的先决条件和共同条件。

我可以在Visio中将其映射出来,但随后必须手动安排所有内容。我希望它遍历节点的要求并自动链接它。

我可以访问Visio,Photoshop,Illustrator等,但是感觉这些工具将涉及很多手册

我想我自己可以用大约三个数据库表和一些HTML / CSS来做到这一点,但是我没有是时候选择另一个编程项目了。同样,很高兴知道在我朝那个方向冒险之前是否有工具可以做这种事情。

要求:


我可以在几乎任何环境下运行,我个人有Windows 8.1 x64,但是我有可用的不同配置的虚拟机。
需要能够输出一些合理的格式,例如带有图像的HTML或SVG图像,或者PDF。我不希望它输出为XML之类的格式,而我不打开程序就无法带人或看别人。
需要能够将其保存为原始格式(无论那种格式可能是这样,这样我就可以在不重构整个树的情况下对其进行编辑。
需要有一组“节点”,每个节点都有一组先决条件

一些图形界面(GUI),用于布局和配置节点。我不想打入XML文件
将描述性副本和图像添加到每个节点(而不仅仅是标题)

或者,如果在Visio中有一个很好的方法,我欢迎提出建议。

评论

不是免费的,但可能很有趣:flyinglogic.com

您给出了答案(我会给出的答案),但是我只想确保您知道拥有专门用于游戏开发的网站-gamedev.stackexchange.com

#1 楼

可以使用Graphviz自动排列树:


免费和开放源代码(Eclipse公共许可证)
Windows / Linux / Mac
许多输出格式,包括SVG和PDF

示例:


生成者:

/* courtesy Ian Darwin and Geoff Collyer, Softquad Inc. */
digraph unix {
    size="6,6";
    node [color=lightblue2, style=filled];
    "5th Edition" -> "6th Edition";
    "5th Edition" -> "PWB 1.0";
    "6th Edition" -> "LSX";
    "6th Edition" -> "1 BSD";
    "6th Edition" -> "Mini Unix";
    "6th Edition" -> "Wollongong";
    "6th Edition" -> "Interdata";
    "Interdata" -> "Unix/TS 3.0";
    "Interdata" -> "PWB 2.0";
    "Interdata" -> "7th Edition";
    "7th Edition" -> "8th Edition";
    "7th Edition" -> "32V";
    "7th Edition" -> "V7M";
    "7th Edition" -> "Ultrix-11";
    "7th Edition" -> "Xenix";
    "7th Edition" -> "UniPlus+";
    "V7M" -> "Ultrix-11";
    "8th Edition" -> "9th Edition";
    "1 BSD" -> "2 BSD";
    "2 BSD" -> "2.8 BSD";
    "2.8 BSD" -> "Ultrix-11";
    "2.8 BSD" -> "2.9 BSD";
    "32V" -> "3 BSD";
    "3 BSD" -> "4 BSD";
    "4 BSD" -> "4.1 BSD";
    "4.1 BSD" -> "4.2 BSD";
    "4.1 BSD" -> "2.8 BSD";
    "4.1 BSD" -> "8th Edition";
    "4.2 BSD" -> "4.3 BSD";
    "4.2 BSD" -> "Ultrix-32";
    "PWB 1.0" -> "PWB 1.2";
    "PWB 1.0" -> "USG 1.0";
    "PWB 1.2" -> "PWB 2.0";
    "USG 1.0" -> "CB Unix 1";
    "USG 1.0" -> "USG 2.0";
    "CB Unix 1" -> "CB Unix 2";
    "CB Unix 2" -> "CB Unix 3";
    "CB Unix 3" -> "Unix/TS++";
    "CB Unix 3" -> "PDP-11 Sys V";
    "USG 2.0" -> "USG 3.0";
    "USG 3.0" -> "Unix/TS 3.0";
    "PWB 2.0" -> "Unix/TS 3.0";
    "Unix/TS 1.0" -> "Unix/TS 3.0";
    "Unix/TS 3.0" -> "TS 4.0";
    "Unix/TS++" -> "TS 4.0";
    "CB Unix 3" -> "TS 4.0";
    "TS 4.0" -> "System V.0";
    "System V.0" -> "System V.2";
    "System V.2" -> "System V.3";
}


您可以对节点进行分组:



digraph G {

    subgraph cluster_0 {
        style=filled;
        color=lightgrey;
        node [style=filled,color=white];
        a0 -> a1 -> a2 -> a3;
        label = "process #1";
    }

    subgraph cluster_1 {
        node [style=filled];
        b0 -> b1 -> b2 -> b3;
        label = "process #2";
        color=blue
    }
    start -> a0;
    start -> b0;
    a1 -> b3;
    b2 -> a3;
    a3 -> a0;
    a3 -> end;
    b3 -> end;

    start [shape=Mdiamond];
    end [shape=Msquare];
}


评论


我得试试看,谢谢!

–朱莉娅·麦圭根(Julia McGuigan)
2014年8月10日在1:50

好的-标记为答案(暂时)。我能够通过测试使用它:imgur.com/2p0ELe6。它的输入足够简单,我也许可以通过编程方式生成它,然后将其添加到其中,然后(可选)输出SVG,因此我可以使用点语言或SVG进行格式设置,并使用后处理代码生成和CSS。我看到的“仅感谢”问题是,我没有立即看到在语法上将某些内容表示为可选内容的方法。示例图片(上),三种技术中的任何一种都允许对Writing进行研究。这显然是必须的,但是我现在将解决它。

–朱莉娅·麦圭根(Julia McGuigan)
2014年8月10日在2:28



如何更改节点形状(graphviz.org/doc/info/shapes.html),颜色等以表示它们是可选的?

–弗朗克·德农库尔
2014年8月10日在6:15

链接是可选的,不是技术。例如,基本游戏《文明IV》中的牧师,陶器或畜牧业解锁了写作。您仍然需要针对技术人员研究所有这三者,但是只需要其中一项就可以开始研究写作。这会改变您的建议吗?

–朱莉娅·麦圭根(Julia McGuigan)
2014年8月10日14:06

1.我们也可以更改边缘形状(graphviz.org/doc/info/attrs.html)2.听起来您可能想要添加AND或OR门(en.wikipedia.org/wiki/Logic_gate)来区分您是否需要所有先决条件或仅一个。

–弗朗克·德农库尔
14年8月10日在16:54

#2 楼

yEd满足所列要求,功能强大且易于使用。它是免费软件,可以跨平台运行(需要Java)。

查看其功能。

这是我用它制作的树:



评论


有趣。我会看一看。

–朱莉娅·麦圭根(Julia McGuigan)
2014年8月10日14:07

@Krom您从哪里获得这些图标?

–user23772
16年5月18日在4:26



@SAxworthy图片取自RTS游戏《骑士与商人》。再三考虑,我最好用中性的东西代替它们。

– Kromster
16年5月18日在5:34



它运行良好,并且通常允许在节点,边线或图形上使用自定义属性。导出到GraphML会保留自定义属性,但GML格式则不会。我将使用它来设计游戏技术树。我几乎开始写自己的技术树编辑器。很高兴我找到了这篇文章。

– DataMania
17-2-10的3:47

#3 楼

FreePlane是创建树和思维导图的免费简单工具。我用它来集思广益,几乎所有的编程项目。


可以在Windows,Mac或Linux上运行
可以导出为多种格式,包括PDF和Latex
以本机格式保存*.mm以供将来编辑
>具有父/子节点系统
提供在GUI或脚本中工作的选项
支持图像和描述

这是开发人员提供的几个示例:



评论


嗯,我尝试过这个,但我真的不喜欢它的界面。我试图创建五个“根”笔记(从技术上讲,我想它们将是自由节点),但是它很固执,正在将它们分组在一起,并且似乎坚持认为所有内容都应映射回根。从示例图像看来,这是可能的,但实际上在Graphviz中使用文本编辑器,命令行,数据抓取和代码生成可能更容易,而不是绕过难以掌握的GUI。不过谢谢!

–朱莉娅·麦圭根(Julia McGuigan)
2014年8月10日在2:32