In the Mood

June 1, 2008

A couple of fun videos on Youtube:

Now if that doesn’t get you in the mood for Target Rabaul 2, nothing will! 

Progress Update

Almost got tool working on my OS X box, it started to download terrain files, then curl ran into a segmentation fault. Wade is working on it. Closer, but no cigar yet. 

Codewise, I cleaned up some things, made the localization code more robust, and then started to implement a new UI, based on some code from Joemac. I realized it’s really not that hard to make a decently pretty interface. In fact, it reminds me of the old days (I won’t say good old days) of laying out web sites in HTML using tables.  I should have a screenshot to post pretty soon. Still working on making Joemac’s code my code (ie, figuring out what the hell it’s doing)… 

TR Web Site Getting an Upgrade

The TR Dev team is working on a new home for targetrabaul.com. It’s not up yet, so don’t go looking. Looks like the team has settled on Joomla, which is an open source system with a content management system in the background (as I understand it anyway). This should make it a lot easier for us to add new web content. 

 

 

Grinding On (and On)

May 23, 2008

Today and yesterday, I worked more on the localization code. The actual code that makes a different language appear has been done for a while, I used something very similar to what I use in other programming languages. What I’ve been doing the last 2-3 days is writing some utility code that a mod developer would run whenever they added new strings to their UI or campaign. What it does is go through all your lua files looking for calls to the “localize this text” routine, and extracts anything it finds into XLIFF files, one for each language you want to localize to. Then you send those off to your army of translators, they translate the new strings, and send back the xliffs. Done. Next time you run the program, your UI and campaign will take advantage of the new translations. So one of the nice things about TW2.0 (and your 2.0-compatible mod, if you choose to use this localization lib) is that you can have a totally localized UI, for basically no pain at all. Which, if you’ve ever done software localization before, you’ll know is a rare thing.

Mod Developers and Players Want to Know: What the @#&( is an XLIFF File?

Ah, glad you should ask, brave translator. XLIFF is nothing more than an xml file that contains paired translations for (usually) 2 languages. It is an open standard (I’m using the newest 1.2, but because I’m only using a very little bit of the format, it should load in editors that only support 1.1 as well), which means that any tool that wants to, could understand it. Basically, it is, in my opinion, the best format to use for software translations (no surprise, since that was probably the main driver in the standard’s creation).

Fine, you say, that’s about as interesting as watching mud flow. Well, in practical terms, it will let anyone working on your project translate it with translation memory tools such as Trados, SDLX, Swordfish, etc., without any prep work. And that means better, faster, easier translations. If any enterprising mod team could get a pootle server setup, all the mod teams could share it, and we’d really be cooking with gas then! Pootle is, as I understand it, a server that you can feed xliffs, and have people translate them through a web interface. But it looks like you have to be a *nix ubergeek to set it up, so I haven’t tried. I’m only a fledgling *nix geek.

Do I Need Lots of Money to Translate this XLIFF Thing?

No! Just send whatever spare cash you have to me (break your piggy bank, go check mom and dad’s dresser), and I’ll tell you how you, too, can participate in the wonder of translation memory. Oh, fine, here are a couple ways to do it for little/no money:

  • Sun’s Open Language Tools XLIFF Editor. This is a free tool, open source, released a couple years back by Sun. I believe it supports 1.1. Works on all platforms.
  • LocFactory Editor: This is a Mac OS X tool, free “lite” version, or I think $30 for one that actually does TM. I’ll probably pick up a copy of the full version one of these days, and let everyone know if it’s useful.

Or if you’re really crazy, you can just edit the xliff file with a good text editor. It’s pretty straight forward. Of course, you don’t get the advantages of translation memory, but that probably is ok because you’re stark raving mad.

Show Me the 現金!

This screenshot is a few days old, and it shows off the truly ugly test UI I’m using for TR right now. Oh, and it’s localized for Japanese. Japanese for drooling idiots, because *I* translated it myself, and that is never a good thing!

I Promise I Won\'t Translate the Real UI Myself!

The date in the corner, by the way, is not the RW date, but the date I had the time set to in TR when I took the snap.
What you are looking at is my TR test menu, which has only 2 options: “Start next gen TR campaign test”, and “exit the server”. The other window is a chat window, with a sentence from the server informing me that an unnamed player has logged in. The localization system lets you translate a sentence with placeholders for names and other things you will want to substitute in on the fly. So in this example, the player name is substituted into a string already translated into Japanese. Don’t worry, you’ll thank me for it later. (Or Else)

Holy Crap That’s Ugly

Yeah, well, Yak don’t do no art baby. If will be my pleasure to continue to show you ugly stuff I work on, so please DO complain. If you want to see some real UI examples, check out Raff’s blog from last summer on some ideas he was working on. He’s planning on getting together with Sick a little later this summer in London to get his UI work updated to the latest TW build. And remember, in 2.0, there’s one TW UI, and then once you select a server, you get the UI specified by that server. So if you have a Space War mod, well, your UI could look completely different from a WWI mod’s UI.
On the font: I’m not crazy about the way it shows Japanese, but as far as I can tell, this is the only freely available (and hence distributable) true type font that supports (basically) all of unicode. If anyone knows of a better one (a gothic/serif one would be nice), please let me know.

Terrain Update

Haven’t been able to get online at the same time as AU for the past few days, so no progress on getting tool to run on my Mac. There’s an interesting comment in from GH in the post a couple day’s back, for anyone interested in terrain.

What’s Next?

Unfortunately, I still have more boring localization code to write, but I can see light at the end of the tunnel. Tonight was actually a bit of a breakthrough, so I’m feeling good about my chances to start next week working on something more interesting. Not going to be doing anything over the weekend (unless someone wants to buy me a macbook or macbook pro so I can work on the road? No? Bastiges.).

This and That

May 20, 2008

Tool Progress Update

I was able to build “tool” yesterday, but it was missing some libraries or something, Wade is going to take another look at the xcode set up. I’ll check back in on that as soon as I have a chance to play with it and make some terrain. Here’s the command I’ll be using: 

tool terrain 143.0 0 163.216 13

Being geographically challenged, I’m not sure I got that right, but I’m led to believe it’s about the same territory we use in TR in 0.64. 

Lua Update

I’ve been working on the localization code for the TW UI, and for mod UIs and servers. I’ll put this out as a library anyone can use in their mod. Nothing too sexy to report, because I did all the fun parts already. Right now I’m writing some routines to traverse a file directory, find .lua files, and vacuum up any localizable strings it finds, and add them to an xliff file so you can translate them. I’ll talk more about localization in another post. It’s one of those things you want to design in from the very beginning, because it’s painful to add it in later. I must say I’m looking forward to finishing up that module, and get on to the next thing in my project plan, “have supply targets increase for winning side”. 

Hi All, welcome to my Target Rabaul dev blog. I’m going to use this blog to document my efforts to bring Target Rabaul into the Targetware 2.0 world. I want to warn you up front: This is my first blog, and it could suck.

What This Blog Will Cover

This blog is not an official Targetware/Mark Nine Systems blog. It’s not even a Target Rabaul official blog. It’s just a record of what I’m learning, testing, and trying to get to. I think it’s mainly going to cover:

  • The next-gen Target Rabaul campaign system
  • Learning Lua/Programming in Lua
  • Developing for Targetware 2

I’ll be throwing in screenshots and whatnot as I come across stuff I want to relate.

For anyone stumbling over this blog: I’m not going to try and write up the history of Target Rabaul, or Targetware. Targetware is a community-based online, massively-multiplayer, combat flight sim. Target Rabaul is the oldest community-orginated “mod” for TW. 

Targetware 1 and TR 1

“Targetware 1″… what the heck is that, you ask? That’s what we call Targetware 0.1 – 0.64. “TR 1″ is what I call all TR builds designed for TW1. Targetware 1 development has been frozen for quite some time, as Sick re-writes everything to make TW2. Target Rabaul is actually still in development for TW1, thanks largely to Peril, Baders, and the rest of the TR dev team. 

Targetware 2 and TR 2

What does TW2 mean to TR and other mods? It means better graphics, sure. But to me, I think the most important thing about TW2 is that games are no longer based on scripted scenarios. TW has pulled back from supplying a framework for how games/mods should be designed. In TW2, everything is out there for the mod teams to control: their own UI. Their own everything. All this is controlled through lua scripting. It’s entirely conceivable, probably very likely, that every mod team is going to go off in a different direction from the rest. Some mods may end up being free-for-all, simple “arenas”. Some may be a TW1-esque set of historically-based, individual scenarios with logic and continuance between them. Some may be all-encompassing world war (or space war, given the new physics and terrain features in TW2), a kind of strategy game with a flight sim laid over it. 

On a practical level, to get a mod working in TW2 will require some work. I’m learning this as I go along, but here is a basic outline (in no particular order):

  • Create new terrain – TW 2 employs a totally new terrain engine. It also has a built-in terrain generation functionality, through the “tool.exe”, well, tool. I haven’t gotten mine to build yet on my Mac, so I haven’t tried that out yet. I’ll report back on it. 
  • Re-write plane and target .acm files – TW 2 has a new physics engine, and it also no longer recognizes the old style “config” files. You’ll probably still be using the same basic data, but it will be in a different format. When I know more, I’ll post about it. My plan is to convert a couple TR planes, then post instructions on how to do it. 
  • Write or copy a mod UI – In TW1, there was one UI that controlled everything: selecting a server, game settings, input settings, and in-game menus. In TW2, Targetware (the app) comes with a UI that controls graphics/etc settings, and server selection. Once you choose a server to join, that server’s mod takes control of the UI. So each mod needs a UI. Nothing says we can’t just share them between mods, of course, but first of all, someone has to write one, and then you want to think about either customizing it for your mod, or just hacking it to pieces and making a totally unique one. You may decide that your mod has different requirements, not just visually, but functionally. The UI for an arena-based game may not work for a strat/campaign-based game, for example.
  • Adapt 3D animation (.anm) files – TW2 doesn’t use the .anm files you’re used to from TW1. I’m not sure what the new format will look like, but I’ll post on it when I have a chance to learn how to convert to it. 
  • Decide what kind of game you want – TW1 game play was pretty much defined by the structure provided by the scenario files (for good and bad). TW2 game play is all open… This is probably the most basic decision any mod team needs to make. For TR, initially any way, I’m working on a New Guinea/Solomons campaign that involves concepts from wargaming (Rydog and Sick supplying the brain power there). I’ll describe it more in a different post. 
  • Code your game play decisions in Lua – Once you’ve decided what kind of game you want, you need to write up the rules in lua. Or steal the rules from another mod. I imagine in the beginning, all the mods will share a really similar look, until we get enough people comfortable with lua to start branching out, getting closer to the dev team’s original vision for their mod.