ONScripter Development Help - Translation
I have been stalling on finishing the main development page for ONScripter beginners, but it seemed just as well to go ahead and write a page on how to translate novels written in NScripter or related engines - it's low-hanging fruit because it's usually self-explanatory. Even so, there are many choices to make and helpful tips to know about, so here goes an attempt at explaining them as coherently as possible.
Due to the nature of the article, know that from this point on, ONS refers to the original branch of ONScripter, ONS-EN refers to ONScripter-EN, PONS refers to PONScripter, and italics are used to denote filenames and some commands.
What Will You Translate?
So, if you're planning to translate a novel, the first step is to determine what engine it runs in, and the second is to determine the viability of fooling with it. The easiest way to tell if your game runs in NScripter or a derivative thereof usually depends on whether it has certain files often specific to (O)NScripter in the game folder, such as nscript.dat, 0.txt, arc.nsa, arc.sar, and so forth. If any of these filenames are present, congratulations - the first step is complete.
The second step is a bit trickier. NScripter has progressed a lot since the open-source clones first hit the scene, and ONScripter itself has progressed a LOT since ONScripter-EN and PONScripter were forked from it. What I generally find is, if your game was made after 2012 or so, it's probably not going to run in the Western forks of ONScripter. Modern features such as 1024x576 resolution and Lua scripting have sort of rendered the Western forks obsolete for translations of modern games, because they come from a time when Umineko was basically the heaviest game written in NScripter. The original Japanese branch of ONScripter does tend to run these modern novels, but its English support is very lacking, and I cannot provide much support regarding its behaviour. Two examples of modern NScripter novels that do run in ONScripter but do NOT run in ONS-EN nor PONS are Trianthology and Shimaisou - however, one example of a modern novel that WILL run in ONS-EN and PONS is Shinimasu.
Putting that aside, if your game is from before 2010, there's a very high chance that it'll run in ONScripter-EN without a hitch, because games were a lot simpler then, and tended to rely more on features inherent to the engine.
Which Engine Will You Use?
This is a topic on which I am heavily biased, because I tend to value integrity and feel over features. Both ONS-EN and PONS were abandoned by their maintainer in around 2011, but the former had reached a very mature state, while the latter was highly unstable and unpolished. PONS eventually became maintained by SekaiProject, but the nature of for-profit translators leads to sloppy work - and judging by SekaiProject's PONS documentaton, they really, really hate NScripter in general. Consider that PONS today is a fork that is kept around only for rushing out specific VNs whenever the need arises - only the bare minimum of features will be supported, and as long as it just runs, they'll sell you their games in it without a guilty conscience. PONScripter has many bugs, many bizarre behaviours, and many features missing, but above all that, it just feels janky compared to ONS-EN. The in-engine timer can fail, the skip function can cause the entire engine to break, and there's a chance of the engine sending you to the wrong place in the script entirely. The fact that PONS was used for the Steam version of Umineko is testament enough to what shoddy stuff it's made of. So why use it? Unicode support and proportional fonts, naturally.
Features Unique to PONScripter
- Unicode, meaning virtually any language is supported, although no text can be displayed right-to-left unless you reverse it manually.
- Proportional fonts, meaning the text looks much more smooth and natural. Multiple fonts can also be used in one game, which is an ability of NScripter that only PONS shares.
- 1280x720p resolution support. ONS-EN is only geared towards 320x240, 640x480, and 800x600.
Features Unique to ONScripter-EN
- Faithful accuracy to how games run in NScripter. ONS-EN is the closest you can get to "the original game, but with English support". This entails support for Japanese filenames, and the ability to arrange text strictly in columns.
- Emulation of effect DLLs. NScripter can make use of many third-party effects, and most of these were added to ONS-EN, including snow.dll and oldmovie.dll.
- Polish. ONS-EN feels solid and satisfying. Effects play out while you're skipping in order to avoid breaking the internal timer, and almost nothing can make the process hang except for things that can break SDL, such as severely low-bitrate sound files.
Features Unique to ONScripter
- About eight more years of development. Unlike the Western forks, ONS proper was never abandoned.
- Theoretical support for many more platforms. Mainly due to the Visual Studio build environment. Many of the platforms it can run on are ones that it hasn't been built on for a decade, so take those claims with a grain of salt.