On Stringtables

Yet again, only small cosmetic changes.

Download this week’s alpha of Geas!

New sprite added for Thea Wayman, Kiel’s mother. Also, various under-the-hood changes.


I did some code reorganization this week. Nothing major, but some things flow a bit better.

Also on the coding front, I’ve added StringTable support to Geas. What this means is that (for now, only in the speechboxes, but I plan to expand this out to all gui display functions) I can define a language file that dictates a bunch of string replacements. Whenever I go to display a block of text, it first checks its language redefines and swaps in the other language’s version instead. At some point I will hack Verge up so that it supports larger character sets, and then my dream of being able to translate Geas to other languages will be doable.

Using the StringTable there’s two ways to going about producing a translatable game. First, you can just write the game in your language of choice, then pull all the strings (using some magic that I haven’t yet created or decided on) and just directly translate from that. Secondly, instead you can write all your text to begin with as just IDs of some sort. “kiel_c0001_ln001” or something. Then, have a language file for every language, including your first one.

I haven’t decided which of these approaches I will actually use when I get down to the nitty-gritty of having real conversations and not just placeholder text everywhere. I need to decide it pretty soon though, as I’m getting sick of having a completely pointless and storyless game. That said, I’m also thinking that I probably want to write a conversation system (like the one in Neverwinter Nights, for example) so that I can handle all of this a little more sanely rather than just writing all of the game’s dialogue across hundreds of lua files.

Anyway, aside from Geas, I also started work on my LuaVerge tutorial. Sadly, in writing the first section I have discovered that I’m not sure exactly the direction that I want to take, and that may end up getting delayed. In essence, I am struggling with writing a tutorial for using LuaVerge “right now” – in other words, in a state of mild disrepair and lack of good tools. I’m not sure I want to do that!

What I am considering instead is to write the tutorial in tandem with generalizing stuff I’ve built for Geas into a game-makery system, KISSKISS (mentioned in the LuaVerge doc index) that makes a lot of decisions for the user and does a lot of the hard work. Unfortunately this means that I have to do all that hard work and as anyone who has been reading this site knows I’m kind of bad at getting complex projects finished. Ultimately, though, I think KISSKISS + a tutorial on it use will be more helpful to the absolute beginner than a “here’s how to use Verge ONLY LUA” that has been sort of done before anyway, and it will help differentiate Verge as a useful tool as opposed to another library that handles some of the graphics stuff maybe.

So yeah, I’ll keep thinking on it.