欢迎光临散文网 会员登陆 & 注册

【教程】如何在《医院计划》中创作自己的科室模组之第零篇

2023-02-23 13:54 作者:睿智的狐狸official  | 我要投稿

     

我的模组

 

       有些小伙伴熟悉我,即《医院计划》“精神卫生模组(the Department of Psychiatry)”的作者。而这个系列的专栏将从XML语言到医学参考资料,一步步指导你严谨而又认真的创作属于自己的科室模组。让我们开始吧。

零、基础知识

     模组定义

        在《医院计划》这款硬核的医疗模拟游戏中,已经包含了急重内外心神,DLC内容创伤科、传染科,医技、管理科室检验科、影像科、行政部。但是显然,者对于追求极致模拟的玩家来说,是远远不够的。而科室模组,无非是对游戏科室内容的拓展,是在建立科室、技能后,对于症状、检查、诊断、治疗手段、诊断的增扩,再串联的一种过程。简单来说,我有了症状,有了检查,有了诊断,有了治疗,就有了诊断。上述过程在游戏的里,是需要通过XML语言进行“编程”来完成的,但无需惊慌,这种方式并不困难。

     所需材料  

        想要创作科室模组模组需要以下材料,我会进行详细的说明。

    

未使用代码编辑器来查看XML代码
   
使用了代码编辑器来查看XML代码


        1、代码编辑器:顾名思义,代码编辑器就是编辑代码的一种特殊的、具备代码高亮、收缩等功能的编辑器。对于不需要超大规模开发的XML代码来说,个人推荐使用Notepad3(分享,https://wwi.lanzouw.com/i76BH0mq78wb),使用代码编辑器的另一大原因就是防止“瞎眼”,保护视力。在代码编辑器中,XML代码得以良好地呈现,突出重点,层层递进,这种差异是显而易见的。

        2、XML验证器:在XML的应用场景中,基本上可以说是不具备自我纠错能力的,因此需要保障文件的基本语法是正确的。而XML验证器,发挥检查最基本的语法内容的作用,能够保证代码的语法正确性,从而不至进入游戏后直接“红一片”(一个XML验证的网站,https://www.runoob.com/xml/xml-validator.html)。

        3、Steam版的Project Hospital游戏本体:如果你想要把模组上传到创意工坊上,就必然要使用Steam版的游戏本体(DLC与模组上传无关)。

        4、一本至少是本科临床医学的学科教材:就是蓝色生死恋。科室模组需要保证基本的严谨性和真实性,绝对不能误导玩家,引导其在现实世界中做出不正确的健康抉择。如果要深入的话,可以积极查找该科室的教材资料,甚至相关指南,这种方式做出的成果比一本蓝色生死恋要好很多。譬如,在做精神卫生模组时,我参照了这些书籍。

《沈渔邨精神病学》

精神医学专业的本科教材

         这些书籍显然是要比下述这一本的参考价值强许多的。

临床医学本科精神病学教材


    如果经济条件允许的话,我甚至建议你买来实体书。  

    XML语法

        游戏的模组使用XML来编写代码的,下面我就用几近简白的方式叙述它的语法规则。

       1、在XML中,开头时用来声明代码版本和所用编码的文件称作“头声明”,是可选的。

<?xml version="1.0" encoding="utf-8"?>

        一般来说无需修改,采用上述版本即可。

       2、 基本成员称为“元素”或“节点”,每个元素分为内容和标签,都要有一个关闭标签,标签不得单独出现。

<test>Hello,world!</test>

        上述中“Hello,world!”是内容,而“test”和“/test”是标签,其中“/test”是关闭标签。

      3、语言对于大小敏感。

<test>这是正确的</test>
<Test>这是错误的</test>

     4、最基础的父节点称之为“根节点”或“根元素”。

<Database>
	<test>根节点把所有内容包含在一起</test>  
</Database>

          上述中“Database”是根节点。

    5、必须正确嵌套。

<a><b>这是正确的嵌套</b></a>
<a><b>这是错误的嵌套</a></b>

        注意,无论标签间是否换行,都要遵循同样的规则。

    6、XML 属性值必须加引号

<dia ID="DIA_PSY_GAD">
</dia>

        语言的节点可以有对应的值,但是必须使用引号。

    7、注释格式

<!--我是一只快乐的注释-->

        语言的注释永远不会被机器运行,需要采取上述格式。

    8、换行和空格要求

        语言会自动合并空格为一个,在游戏模组的制作中换行符需用“\n”表示。

   由代码编写不规范引起的常见问题

       1、游戏主菜单左上角一片红,通常报错密集,涵盖面广,难以找到具体出错的文件,这种情况下就须考虑是否是结束标签丢失的问题。

       2、卡在载入很长时间,也要考虑是否是结束标签丢失的问题

   常见的编码误区

       1、先写超多代码,再检查,这样会导致报错时debug工作的困难。

   关于命名规范

        目前对于元素名、模组名等各类名字普遍使用的是用大小写区分进行命名,如“GameDBAddon”,而标签的值和内容则通常采用全部大写进行命名。

        当然,基于个人喜好,也可用下划线法进行区分,如“game_database_addon”之类。

    模组基本知识创建第一个代码及其文案           

       在游戏中,模组理论上在Project Hospital\ProjectHospital_Data\StreamingAssets\Addons,我们“打样”模组时也需要在这个目录下进行。但是,凡在创意工坊上订阅的模组,其地址均在SteamLibrary\steamapps\workshop\游戏ID\模组ID,这个路径下。我们可以通过Steam版游戏内的Steam创意工坊-上模组的方式进行上传。

       

游戏DLC遵循的命名方法

       创建游戏模组的第一步是要建立文件夹,凡模组的文件夹吗,都必须使用“Mod”作为模组文件夹的起始,之后填上模组名,不要有标点符号或空格。

       模组所需的图片直接放置在文件夹中,所有xml代码则均需放置于再行创建的“Database”文件夹。模组的翻译文案独立于代码,如果众多的话可置于独立的“Localization”文件夹当中。

配图


        模组文件是一种XML文件,xml是文件的拓展名,想要更改拓展名,就需要到资源管理器里进行一番设置。

       

win11的设置方法

        其他系统的可以在网上搜索到。

        完成后,就要正式开始创建模组第一个代码文件啦,是不是有些小激动?

        

模组的路径

        打开按照上述步骤创建好的文件夹,打开其中创建好的Database文件,新建一个文本文档,其名为:ModAddon.xml(注意要全选,删或覆盖掉text这个拓展名),再新建一个文件,其名为:ModStringTableEn.xml(注意同上)。

        ModAddon.xml是模组的基础文件,代码内容可以参照下列模板:

<Database>
	<GameDBAddon ID="ADDON_MOD_这段中文替换为你的模组的英文名,全大写,空格用_代替">      
	<Author>这里填作者</Author>       
	</GameDBAddon>
</Database>

        GameDBAddon的值是你以后对该项进行翻译和其他操作的标识,不会展示给用户,仅需规范命名,可尽量简短,翻译文案文件是给玩家看的。

        ModStringTableEn.xml是模组基础文件的翻译文件,代码内容可参照下列模板:

<Database>
	<GameDBStringTable ID="ADDON_MOD_这里填模组名,要求和上一个一样">
	
    <LanguageCode>en</LanguageCode>
	<LanguageNameLocalized>English</LanguageNameLocalized>
	
	<Contributors>
	<Name>这里填作者,可以通过复制本行在上下两个标签之内以达到增加作者数的目的。</Name>
	</Contributors>
	
	<LocalizedStrings>	
		
	<GameDBLocalizedString>      
	<LocID>这里填刚才GameDBAddon的ID值</LocID>                       	
	<Text>这里填给用户看的模组的正式名称</Text>  
	</GameDBLocalizedString>
	
	</LocalizedStrings>
	</GameDBStringTable>
</Database>

       其中“LanguageCode”是语言代码,而“LanguageNameLocalized”是游戏内语言在该语言内的表示,比如中文的语言代码是“zh-Hans”而“LanguageNameLocalized”则是“简体中文”。在模组基本文件的文案中,禁止使用多语言翻译文案,即建立多个针对同一个文件的不同语言的翻译文案,因此统一使用英文作为语言代码,如反之,则将文件名中的“En”替换为“ZhHans”或什么其他的语言代码的首字母大写版本,将代码中的上述两个参数替换即可。

模组代码同翻译文案的关系图

    之后,我们就可以尝试运行游戏,查看是否报错,是否显示!LOC!加上给开发者看的由你设定的内部标识(出错),是否在左下角成功出现在“text”标签里的正式名称。


像是上图这样,出现自己设置的模组正式名称和作者名

    XML语法检查   

        出错了也不养惊慌失措,可以通过进入XML检验器(具体见初始的需求列表)来检查,在写大型的文件时(如接下来遇到的科室和诊断文件),运行前最后也进行这样的检查。


向我们报错的XML验证器


    总结

        在第零篇中,我们学习了有关基础知识,建立了基本文件,对《医院计划》游戏的科室模组有了一个基本的认识。下一节,我将着重阐述科室文件及其翻译文案的建立,以及图标资产的录入。如果有问题,请尽管在评论区中讨论。

        我是Leo,冷门游戏的冷门模组作者,我们下期见。


【教程】如何在《医院计划》中创作自己的科室模组之第零篇的评论 (共 条)

分享到微博请遵守国家法律