Development notes/The month before Reitaisai 11

The situation
On April 12, 2014, ZUN announced the release of Touhou 14.3, 弾幕アマノジャク　～ Impossible Spell Card, at Reitaisai 11 on May 11. From the official announcement trailer, it technically looks similar to the photography games.

To prepare for this, I'll probably need all of the remaining 4 weeks. I do not want to get into the same situation I was in during the full version release, where a lack of sleep, care and practice left the patched game broken for 15 hours on Day 1, and it took 2 more days to make all the data available for translation. This project is supposed to reward early adopters with a gradual translation and not punish them, but last time, I did exactly the opposite.

The schedule
In particular, the things that still need to be done are as follows, and will be done in this order:


 * Get the next Windows release done by adding ZIP support and cryptographically secure automatic updates. Both features have been roughly planned out and only need to be implemented, which won't be that easy. A lot of the work here is necessary for the DOS port as well: We'll need ZIP support to work around the 8.3 file name limitation, and the automatic update feature will move stuff out of the main engine that won't be necessary in DOS.  [✔ Done] 


 * Move the base patches, including the "Japanese translation", away from the wiki into a Git repository. It's about time we stopped using that needless wrapper around the actual patch data, it has long become a maintenance nightmare. This further decentralization will also be the main focus of our #newtouhou advertising campaign this time around. With this, it will be made even easier to set up a patch server and provide translations without going through    . In fact, I would be delighted if a third party provided a complete translation of the new game before     . Of course, this means that there are still some translators hiding out there that are able to use alien technology like, um, "JSON"... and Python.svg "Python"... and Dropbox.png "Dropbox"...  [Almost done] 


 * Write a new set of scripts to dump game data to the formats thcrap uses, and from there to the wiki formats. This, again, will emphasize the fact that     no longer receives special treatment in the patching process. Maybe I'll even get someone else (inb4: Nazeo) to operate the latter scripts to further distance the engine from the wiki.


 * Write a script to replace the contents of a patch file with random Unicode garbage, for the sake of testing the patch functionality without having to wait for translations or copy-pasting Lorem Ipsum manually. ^^  [Almost done] 


 * Take another look at the Latin script font and trying to twist it in such a way that it looks good with ZUN's custom anti-aliasing filter without requiring game-specific hacks.


 * A number of practice speedruns where I'll be recreating thcrap support for and  from scratch. These will probably be livestreamed.


 * If there's still time left before the release, I'll take a look at Steam integration for the configuration tool - that is, adding the shortcuts to run the patched games directly to the list of Steam games if Steam is installed.


 * During release day, remove all the cruft that ensures backwards compatibility with very ancient builds. :-P

Further plans after th143 support has been completed

 * Move the self-updater to a stand-alone executable in an attempt to silence Norton (and to get rid of the firewall warnings).
 * This is also very important because of zipfile support. Zip is both a terrible and loosely defined standard, with very broad and fuzzy boundaries as to what still constitutes as a "valid ZIP file". Add a custom implementation on top of that (I don't like that MiniZip thing that is bundled with zlib) and bugs are most likely inevitable. Running all the zip code in a stand-alone executable at least keeps potential crashes away from the game itself. :/


 * If we're getting a Phantasmagoria game: Finish thcrap support for (it's still missing spell card translation).
 * Finish thcrap support for and  - these are still missing translation of the mission descriptions.

The decentralization
With thcrap being an open-source project, there might be some misunderstanding about what the decentralization aspect is all about - perhaps suggesting that a lot of people will be starting to independently hack around in some code base, eventually ending in complete chaos. In fact, nothing could be further from the truth.

I will still remain the main developer of the core data that provides the abstraction layer between the patch engine and the individual games, and the Japanese patch that provides the boilerplate for all the other languages. As such, my job is to make sure that every instance of text in the game can be replaced. I call this "patch support": This is what I'll be working on immediately after having acquired the game, and what I'll be speedrunning for practice in a few weeks. Note that no translation patch is created, or even necessary, during this step - this is only possible after patch support has been completed at least partly.

This highly intricate, technical step is not what I intend to decentralize. Instead, it's translation.

Basically, this means that I no longer sell     as the only way to create patches using the thcrap engine. While this site will still remain open and continue to serve translations based on the community consensus, I'm going to place emphasis on custom edits of the thcrap translation files that are read by the patch engine itself. If you haven't known, this is the only thing the patch actually sees and inserts into the game - it doesn't even know that there is a wiki.

All it needs to turn these custom edits into a thcrap patch repository on its own is a script that has been included in the thcrap package since the 2014-01-26 build. Together with the dependency system introduced earlier, the translators won't even have to bother about any patch development at all, which is exactly the point. All they have do is:
 * clone the "Japanese patch"
 * edit the text and images as they please
 * specify some additional dependencies as outlined here
 * test the patch locally
 * run the aforementioned script
 * upload it to some kind of server (which can even be on Dropbox or GitHub) whenever they like (everything can self-update, after all)
 * and send me a mail to get listed in the neighbor repository list of Touhou Patch Center, and thus in everyone's patch configuration menu.

All of this dramatically reduces the entry level required to create a game translation, down to only having to worry about JSON markup. This is as simple as editing   , but gives a translator full control over their translation.

Take a look at wobuffet3's patch for an example where this same system is already used in practice, albeit not for something you would consider a "translation".

Regarding the requests for a "finished product"
Once the engine can self-update, things will appear to be a lot more stable. Still, there is a reason why the thcrap builds are identified by the day of their release instead of using smart things like semantic versioning: At this point of development, I want to reserve myself the right to break and redesign any part of the patch data formats and configurations with every release. Thus, we're still far away from thcrap version 1.0.

But I know, that's not what you are asking for. You want something with a nice and friendly interface that's intuitive to use and nicely integrates into your system, your Steam library, and that Windows 8 start screen you could not escape from when buying your latest PC.

However, my past experiences with Music Room Interface made me really dislike GUI coding, and there are a lot of things I would rather do for this project - finishing the support for the older games including their trial versions, Git protocol support for updating patches, BGM modding, PC-98, Seihou - heck, I'd rather write a new web page to replace this terrible, sluggish MediaWiki and serve as a better translation front-end, despite having zero experience in that field.

The point is: I refuse to click together a half-assed GUI just because popular opinion demands me to. This fanbase deserves something better and fancier for a project that has invariably become the present - and future - of Touhou patching. If you're serious about wanting a quality product, you probably share this opinion.

We've now had our "money for quality artwork" offer up for over two months. Unique artwork would give me a clear design vision and thus motivate me a lot to start working on a GUI. But during all that time, we haven't heard from any artist so far ( except for one case where someone tried to pass off sprites from fangames as their own work ). Please tell me - what more can I possibly offer besides all of my money and the promise of immediately starting work on the GUI after having received sufficient artwork?

I mean, it doesn't even have to be Touhou-related. Any kind of artwork that somehow suits a project like this one would fit. But as long as I don't see at least an attempt, I'll invest my efforts into things that matter to me.

No art, no GUI, no polish.

Sorry.

--NamelessLegacy (talk) 01:57, 12 April 2014 (UTC)