27
2025
02
12:19:36

【ONScripter笔记】

一款AVG游戏,也就是广泛意义上的Galgame。

突然跑来做游戏的理由很简单。我的爱好是做有趣的事情,游戏很有趣,所以我就来做游戏了。AVG游戏比FPS游戏简单,所以就先做AVG游戏。我是绅士,所以我做Galgame。

做一款游戏是符合我乱点技能点的爱好的一个决定,因为如果我一个人将这款游戏做出来,这将成为我锻炼编程、编剧、作画、制曲能力的绝佳机会。

AVG游戏的全名是Adventure Game,即冒险类游戏。通常意义上的日式AVG游戏是指电子剧本冒险游戏,为了防止混淆,请允许我暂时将其称为Galgame。

Galgame作为一类历史悠久的游戏,本身就已经十分成熟了,其中最经典影响最广的一个引擎叫做ONScripter(Open Source Nscripter )是Nscripter的第三方开源版本。这个引擎有一个十分变态的特点,那就是:几乎可以在任何一个平台运行,可以与号称“有屏幕就会有的Bad Apple”望其项背。

这是我查到的ONScripter支持的平台:

  • Android

  • Zaurus (SL-C700, etc.)


  • Linux

  • MacOS

  • Windows

  • Windows Mobile

  • Windows CE

  • PSP

  • iOS

  • NetWalker

  • Brain (WindowsCE 6.0)

  • NetBSD, DragonFly BSD

  • OS2/Warp

  • Playstation

  • Wii

  • FreeBSD

  • Dreamcast

……

只要你想,你甚至有可能在你的步步高点读机/Kindle电子书/诺亚舟电子词典/建设银行ATM/九阳豆浆机/海尔电冰箱/格力空调遥控器上运行ONScripter!<请把这一段删除,拜托了,王大可疯了>

ONScripter简称ONS。

我人生中玩的第一款Galgame就是使用ONS引擎玩的,那就是虚渊玄的——《沙耶之歌



知名的《寒蝉》《Air》《Clannd》都是这个引擎上的知名作品。

随着时代的进步,ONScripter引擎在性能上已经渐渐满足不了大家的需求了,但是由于我对ONScripter有着深厚的情感,于是决定将ONScripter作为第一阶段的引擎。

Galgame引擎的学习难度是相当低的,说实话,ONS的脚本语言是我见过的最简单的语言了——如果它可以被称为一门语言的话。。。

其实除了ONS外,还有三个引擎备选方案的

KRKR
橙光
Unity3D自制引擎

但是最后我依然决定要使用ONS,因为Galgame重视的是立绘、CG的作画质量,以及剧本质量,引擎是次要的,只要有需要,整个游戏可以相对轻易的更换引擎。

由于ONS是一个十分古老的引擎,并且是由日本人开发的,所以十分难以找到汉语及英语教程,我在B站找到了FiveYellowMice的教程(点击链接可以进入)十分遗憾的是,由于视频点击量太少,FiveYellowMice半途而废,腰斩了教程。

后来我十分幸运地在bangumi(点击链接可以进入)找到了4年前X‘moe Project留下的教程。受益匪浅,十分感谢X'moe Project!

本系列【ONScripter笔记】将会以这位dalao的文章作为基础进行展开。

接下来的一段时间,我将会循序渐进的分多篇文章重新组织X'moe的教程进行发布,我会重新编排,并修复小错误,添加注释,使教程更加易懂,更加嫩滑可口。

我在想,也许我会成为最后一个专门为ONS写教程的人吧,ONS引擎迟早会成为虚拟世界杂物堆中的一员,但我希望能借这个机会敦促自己制作Galgame,并且对可能会有的后来人有所帮助。

我会持续更新,并发表在虚拟杂物的记事本专栏的。








我还是个高中生的时候是十分讨厌历史课的。



高一还没有文理分班时,历史课也是要考试的。

我讨厌历史课,因为我历史成绩差,诡异的是,高一整整一个学年我将自己精力中最大的那一块分给了历史。

我学数学物理都没有这么专心过。我可以一边睡觉一边让物理考A(优秀),但是历史只能考C(及格)。

甚至有时我会早上5点起床去学历史,以求自己的成绩可以提升。

我将学历史的全部精力都投入到了一个笔记本。那是一个精致的本子,里面我用前所未有的专注度十分详细的记了历史笔记。内容之全面及精炼完全碾压课本,是老师课堂上积聚出来的结晶。

目录索引井井有条,书写框架十分清晰,表格也十分用心,甚至我为它制作了一些小插画。

我倾注了巨大的精力来做笔记,但是实际上我并没有在认真学历史。我只是在通过证明自己的努力来逃避一些事情。历史该考C还是考C,这使我十分烦躁。

但是我直到现在都在怀念我做笔记的那段时光。

安静地,一个人坐在凌晨5点没有人的教室里,慢慢地像对待艺术品一样记着一本对我没有任何卵用的笔记。渐渐天亮了起来,清晨第一缕阳光透过窗户照在了黑板上,再过一段时间,学校的起床音乐会响起,紧接着第二三名同学会破门而入,带着早饭的气息,教室渐渐变得喧哗起来,我的禅意渐渐褪去。

我为什么会这么想我也没搞懂,我从毫无意义的事情中体会到了一丝令我愉悦的东西。

我并不是将东西写给别人看的,我只是在享受那一瞬间毫无意义的满足感。

这个专栏暂时作为ONS笔记使用。

文字冒险类,AVG游戏的本质就是一种幻灯片,像PPT一样。




配合着插图会有BGM与对话、字幕出现。

首先我们来简单了解一下ONS引擎的运作方式。

我们先新建一个文件夹,文件夹的名字可以是你游戏的名字。在这里我们以saya为例。




然后在saya文件夹里放置如下四个文件。



▲最简单的游戏架构需要4个文件。



前两个.exe与.dll文件是引擎所必须的系统文件,是引擎的主体,相当于游戏的血肉。

这两个文件可以很轻易地在网上下载,搜索ons模拟器就可以找到,注意需要下载你所对应的系统的正确版本。

如果在这方面有困难可以在评论区或者私信向我索取资源。

测试游戏时就是双击onscripter.exe使游戏运行起来的。

第三个default.ttf文件是TrueType 格式的字体文件,你可以通过更改这个文件的方式实现游戏字体的自定义。这个文件可以在电脑系统目录C:\Windows\Fonts找到。当然你也可以去网上下载。由于我们的游戏是汉语游戏,因此需要找汉字字体




挑选你喜欢的字体复制到你的游戏文件夹内,记得将文件名改成defult.ttf。

第四个0.txt是游戏的核心。我们一般将其称为“脚本”。游戏的程序逻辑以及游戏剧情全部在这个txt文件里,相当于游戏的灵魂。

准备好这四个文件后,我们就可以双击onscripter.exe进行测试了。当然,由于0.txt脚本里什么东西都没写,因此你只能看到一个一闪而过的黑屏。

测试完成后再看你的游戏文件夹,你会发现文件夹里多出了两个文件。




stderr.txt是报错文件,这里面会记录游戏运行时出现的错误,帮助作者debug




这个相当于其他语言在进行调试时,编译器给出的警告。▼




stdout.txt是游戏运行信息,除非有什么特殊目的,无视它就好了。





游戏除了引擎脚本字体库外,还需要音频图片之类的多媒体素材用于构建游戏。这些文件只要被放在总文件夹下就可以生效,但是这不是一个好习惯,因为随着游戏内容的充实,文件夹内会被各种文件挤得混乱不堪。因此我们需要新建子文件夹对素材进行分类整理。



我一般习惯用image和sound分别储存图片与音频。



临时素材库用作临时的文件周转枢纽,这是我的个人习惯,最后我会将这个文件夹删除。




▲我一般还会在image与sound文件夹下再分别设立子文件夹,用于对图片与音频文件进行分类。这些文件夹的设立并没有统一标准,大家可以根据自己的爱好来做。

一个完整的游戏就是需要这么多东西。当然,这样的游戏是不适合发布的,因为可能会有人自己读取0.txt脚本进行剧透,甚至可能会篡改游戏。或者有人会自作主张打开素材库提前将不该看的CG看一个遍,悬念消失游戏就会毁了。所以我们需要对游戏进行压缩加密。

0.txt可以压缩为 nscript.dat之类的文件。
其他素材可以打包为arc.nsa格式的文件。

加密格式还有很多,需要专门的开发工具,这个我会在后面详细讲的。大家可以先不考虑

这样就可以防止游戏内容暴露在大家面前,同时也可以缩小游戏体积(也许吧)。


好了,基础就是这些了,下一期开始将会讲游戏的灵魂——脚本的编写方法。







推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://sg.hqyman.cn/post/9221.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: