Tuesday, 31 January 2012

New Features and Announcing a New Toy

Well, after publishing my roadmap, and making some progress with it, I decided to essentially ignore it and do something else. So, here I'll document exactly what I did with the only time I had to work on RPGMaker Trans recently.

I made a Python binding onto Fujitsu's ATLAS software.

Now, anyone with two brain cells should be able to work out that this means I intend to bring automatic machine translation directly into RPGMaker Trans.

To be clear, I'm not sure when this feature will land. It still isn't on my Roadmap, although logically it shouldn't be that difficult to implement - at least in a primitive form. I'm looking to "do things right" though and enable the creation of some small scripting component which allows scripting around the types of things that ATLAS doesn't translate well. For example, for some games which "announce" character names, ATLAS will decide to merge the character name into the characters dialogue with bad consequences.

But this type of scriptable translation could also be useful for other games, for pretty much the same reason. Hence I'll also be working on a "Scriptable QuickATLAS" style program - name to be decided. There's probably quite a few uses for such a tool, like working around "triangle-ised" text from an AGTH hook (you'll know it if you've seen it), other hook based nonsense, or just generally improving ATLAS translations.

Again, no ETA on this.

Oh, and before I forget, the Python/ATLAS bindings will be released separately under a Public Domain license, once I do a little stress testing on them to make sure they don't fall apart under non-trivial workloads.

And finally, before anyone points it out: I am aware of Vkozyrev and his machine translator for RPGMaker Trans patches. I think, however, that using ATLAS has substantial benefits over his solution of online translators, partly because of speed but also because a lot of people use ATLAS, and hence a lot of people are accustomed to ATLAS-speak. Also, I tend to find that ATLAS with a good custom dictionary simply works better than the online translators. Finally, by integrating machine translation into RPGMaker Trans, Machine Translation becomes much more available (i.e. I'm pretty confident that not many people actually download Vkozyrevs machine translator, otherwise I think we'd be seeing a few more actual patches/pirated games based on it online rather than just the ones he maintains).

Monday, 23 January 2012

Aftermath

Well, Megaupload died. Everyone should know about it by now.

Problem though is that the cyberlockers are now running in fear. Filesonic is no longer offering any services - problem as they're one of my mirrors. Also uploaded.to is blocking the US - and whilst I don't use them, considering that blocking the US is probably a correct way to remove yourself from the jurisdiction of the FBI, I can see other cyberlockers following suit.

Now small rant upcoming (don't want to read, skip to the next paragraph): I think the US exceeded its jurisdiction (getting a German national arrested in New Zealand seems a little over reaching). However, it seems Kim Dotcom (probably - pending trial to establish facts) deserved it. By all accounts it does seem that Megaupload was not responding to requests by copyright holders to remove files, so he was (probably) one of the "bad guys" in the copyright debate. I'm definitely against piracy, as I am a content creator under other names, and if the reports are true on Megaupload then it probably deserved to be shutdown. But arresting a non-national in a foreign jurisdiction seems excessive. It isn't as if New Zealand doesn't have anti-piracy rules, and there shouldn't have been any problem in arresting and trialling him in either New Zealand or Germany.

Needless, regardless of any rants or whatever, everyone has to deal with the aftermath. It seems pretty likely that at some point in the future most cyberlockers will become unreliable (perhaps Mediafire/Rapidshare will stay above board, but the rest, I doubt it). Hence I'm looking to perhaps take RPGMaker Trans onto private hosting. The catch is that this costs money, and I'm pretty unwilling to actually spend money on distributing RPGMaker Trans. That said, private hosting would enable a few neat things to go ahead that up till now haven't been possible.

So I'm putting out a poll on if people would donate to the RPGMaker Trans project. If there's enough people backing me, I'll look to setting up a proper website for RPGMaker Trans and whatever other projects I make. I'm not looking for a huge amount of money - on low end VPS's the price would probably be about $50 a year to cover my costs. So basically, if I get say about 20-30 backers, there'll be a dedicated website. If not.... ah well. What could have been, I suppose.

Thursday, 5 January 2012

Progress

And so the new speedy parser is done. Well, done enough that I can get useful performance data out of it. Technically, it needs integrating into the translation engine, but it works pretty well. Also LMU files, but that should be less than 20 minutes work once everything else is ready.

So, the summary of improvements: Much faster (10 times, at least), and now picks out "Change Hero Class Name" (thanks shadepariah for pointing this out and providing a sample of it). Also, (untested) should pick out if a face is being displayed on the dialog - this is useful for translators as a face decreases the amount of space available for text. Finally, the script parser should be much more robust than it was before.

Also note: as this parser uses a different internal representation, there won't be a release until a new serialiser has been written.

The rest of this post is a programming type post, for people interested in the intricacies of programming high performance Python. OK, a lot of this will also apply to many other languages, especially interpreted ones, but mainly Python. If you're interested, look after the break.