跳至正文

编辑器篇①:VisualStudio与VisualStudioCode的区别与选择

这篇文章写给初入mod制作的新人,以供参考

一.区别

初入mod制作,你一定或多或少地听说过VisualStudio(以下简称VS)这款软件,很多modder都在使用,并且极力推荐它,你可能十分困惑,VS到底是什么?为什么如此多人推荐它?

首先,从本质上来讲,VS是一款IDE,即集成开发环境 (Integrated development environment),意思是说,只要你安装了VS和对应的开发工具包,你就可以愉快的开始写代码了。如果你对Terraria和tModLoader有了解的话,你可能会知道,Terraria是基于XNA——一款早就不再更新的游戏引擎开发而成的。XNA的后代,也就是MonoGame,则被用于开发tModLoader。它们都属于.NET Framework框架,而众所周知,.NET是由C#开发而成的,理所当然的,C#便成为了我们开发mod所使用的语言。VS对于C#的支持是极为强大的,尤其是随着.NET6.0的发布,VS更新了一个重量级功能——热重载。

热重载,有人也叫它热更新。按照字面意思,它的作用就是,即时更新。这意味着当你测试时经过多步测试,发现了一个bug,你不再需要重新启动应用,再度经历一遍痛苦的测试过程,而是可以把bug修复后直接单击热重载按钮,代码的改动就会直接应用到当前的进程。而且这个功能是VS独有的,但VS并未开源,因此如果你想使用这个方便的功能,就不得不使用VS。

听完了这些,你是否已经对VS心驰神往,双目放光,不能自拔了?我知道你很急,但是你先别急。鉴于作者是一位对Visual Studio Code极度狂热的人鉴于公平性,我们还是要来讲一讲Visual Studio Code(以下简称VSC)。

可以看到某位不知名群友已经穿越到赛博朋克时代写mod了
某位不知名管理员已经冲向了vim的怀抱一去不复返

VSC,从狭义上来说,它并不是一款IDE,而是一个文本编辑器。为什么这么说呢?首先,在此我并不想争论IDE的概念和定义。其次,VSC的本体确实只带有一些基础的高亮功能。但是从广义上来讲,安装了多种插件的VSC,称为IDE并不为过。

没错,VSC最强大之处,在于它由Electron开发的浏览器式结构带来的近乎逆天的可拓展性,也就是插件(extension),插件之于VSC就如同mod之于Terraria,插件给VSC带来了无穷无尽的可能性——想要一个功能但是VSC没有?写个插件吧!自己开发的脚本语言没有高亮和补全?写个插件吧!希望给VSC添加某些代码片段或者添加一些指令?写个插件吧!总之,在插件的加持下,VSC总算是看起来可以用于开发mod了。

可是上文也说了,只有高亮和补全,没有纠错,这对于新人来说可是致命的问题啊!别担心,LSP会出手!

LSP,即各位读者Language Server Protocol,也就是语言服务器,这是VSC为了解决代码完成、重构、导航到符号的定义、语法突出显示以及错误和警告标记等功能的一种措施。想了解的可以去微软官方查看细节。LSP的出现让插件可以通过连接语言服务器,发送代码,获取错误和高亮等信息这样的流程实现一门语言的支持,这不仅可以用于VSC,同样也可以用于其他支持插件功能的文本编辑器。VSC的C#插件,就集成了OmniSharp语言服务器,可以对C#代码进行纠错和高亮等处理,这让VSC开发mod更加方便了。

同时,VSC对于内存不够的modder非常合适。由于VS及其全面的功能,它的大小一般在10-20G上下。而VSC由于本体只是一个文本编辑器,它的大小则仅有几百M。

最后,值得一提的是,VS同样具有插件功能,但它的插件市场远远没有VSC那样生机勃勃,甚至可以说是门可罗雀。而且VS的插件开发难度远高于VSC,因此此处不对它进行介绍。还有一点很有意思,VS的插件文件和VSC的插件文件同样都是.vsix格式,但二者并不能兼容,试图安装只会报错。

二.选择

看完上面的介绍,想必你已经有了自己的选择。如果你还是没什么头绪,你可以参考以下建议。

①:如果你的电脑内存充足,那么不用纠结,无脑选择VS即可。尽管我是一名VSC的狂热粉丝,但是不得不承认,VS对于新人才是最友好的,如果你真的觉得VSC很棒,那不妨等你成为一个熟练的modder再去使用它。

②:如果你的电脑内存不足,或者比较喜欢自定义编辑器的各种功能,那大可以来熟悉一下VSC,只要你足够有耐心,你就会获得一款只属于你自己的私人定制编辑器。

③:草拟莱莱我要用vim!vim天下第一!呃啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊我的身心已经属于ArchLinux辣!

④:如果你是异端,想用记事本写代码。那你最好跑远点,让我看见三天之内鲨了你嗷。(咦,③呢)

选择方面就这些,下一篇就说说VSC插件怎么开发罢,润了(

《编辑器篇①:VisualStudio与VisualStudioCode的区别与选择》有1个想法

发表回复