More boring programming stuff!

So I’ve been working on savegames. And let me tell you, what a wonderful experience it has been! I just have to talk about the technicalities and conundrums of the intricacies of the colloquial format gibberish-

 

…what was that?

Who? Daiky? What are you doing here?

No, you can’t take me away! I must tell them all about the boring programming stuff! NO! NOOOOOOOOOOOOOOOOOO-

 

 

New library to be added to dependencies

For all the contributors out there, a new library will be added to OpenXcom’s dependencies soon (yes I know how much you love those!). yaml-cpp will be supporting all data externalization (yes I know how much you love XML!), so you’ll have to figure out how to get it installed on your respective platform.

For Windows users, the folder structure is also changing: Dependencies will now be split in deps\include\SDL, deps\include\yaml-cpp and deps\lib folders. Check the updated Compiling instructions for more info.

Slow development blues

You might’ve noticed there hasn’t been a lot of actual development news from me lately. Sorry about that, I’ve been busy with university junk so I haven’t been able to devote as much time as I wanted to this. Specially since 0.2 isn’t very gameplay-oriented so I wanted to get it over with quickly. But it just wasn’t meant to be!

Let’s talk about translations!

One of the advantages of X-Com is that it’s extraordinarily localizable. Aside from the limited font, every language is stored in an external file, so to change languages you just have to change files and you can easily replace one string with another, since every single text string is contained in those files. Well, all except…

Hardcoded font

You might’ve noticed how the Geoscape buttons are slightly different from every other button. How the button text looks different from the default font. This is not a coincidence. In fact, the Geoscape button text is hardcoded into the sidebar graphic, so different languages have to change that graphic outright. Of course I have control over the game now, so changing the buttons to use the default font would look something like this:

Default font

So what do any prospective translators think? Would you rather keep the original Geoscape look and be forced to edit the graphic yourself to translate into your language? Or would you be fine with the default font so you’d just have to edit text strings as you’re supposed to?

It’s a game, not a program!

One of my goals for 0.2 was to take some time to clean up and improve the codebase, get rid of all that sloppy mess that I’ve been leaving behind. Refactoring, optimizing, getting rid of copy-pasting, etc. You know, the kind of things boring nerdy programmers care about.

Which is all good, but as I’ve realized, it’s also a very dangerous trap. It requires a lot of restraint, because once you start cleaning up code, you never stop. There’s always something that can be improved. Something that could be done slightly better. You’ll get stuck in an endless loop always trying to think up of better ways to do everything, because it’s never perfect. Who knows how many more precious frames you could gain! Then it becomes contagious and all the other programmer contributors start chiming in on all the wonderful new ways you could be doing things. Before you know it you’re ignoring gameplay bugs for programming issues, completely lose track of your goal and only put out a new version years later with no visible changes. And guess what?

Nobody gives a shit!

This is a game! The whole point is to give people things to play! I shouldn’t forget that! So starting now I’m gonna stop wasting time and losing sleep over clean code and going back to implementing actual features. The reason I’m posting this publicly is not only to remind myself of this fact, but to everyone else involved in the project or other similar projects that tend to fall into this trap without noticing. Hope you find it helpful.