• Register
Post news RSS Writing And Holidays

In which a holiday is announced; a map is made; a new note is added; an informative page is written; a translation puzzle is implemented; new translation word-roots are set; certain scrolls may no longer be viewed up close; a lore-entry is added, text and images both; a security issue in the localisation system is (I hope) fixed; and a holiday wish is given.

Posted by on

Greetings and salutations!

Before I continue, let me announce that as of today, I'm taking my annual Christmas holiday. ^_^

This is intended to continue through the full of this week, and thus there will be no blog-post next week. I'm also considering extending my holiday for an additional week this year--I'm feeling particularly tired and drained, I fear--and so there may not be a blog-post in the week after, either.

However, blog-posts will likely resume after that second week at the least!

Moving on to the usual matters, this week's screenshot shows a table bearing a map and a compass (of the drawing sort), along with an illegible page:

Screenshot from 2020 12 19 12 19

The week just past was heavily given to text-related work, of a few different kinds, although some other things were dealt with too:

Within the third room of level six, on the curved table that partially-rings the walls, one can find a small map; a bare start to the charting of some nearby caves. Previously this was represented by only a blank stand-in; in the week just past then, I draw the map itself and included it into the level--and indeed, it can be seen in the screenshot above!

Furthermore, I added a new note that may be found in this area; while the player doesn't get to read it directly, on examination the protagonist will give a brief summary of its contents.

Perhaps more salient than either, however, is the page that can be found near the door. This has text that can be read by the player, and provides an important tidbit of information. However, it's not given freely--it requires translation first.

As with the map, this page previously had only stand-in content. In the week just past, then, I wrote its text and prepared its translation puzzle.

Further, this particular puzzle includes new word-roots. These word-roots are provided by a lexicon-book that was added in a previous week, but in the week just past I set the roots themselves. (Along with adding one new grammatical particle.)

I won't show the whole puzzle, so as not to spoil too much, but here's an excerpt showing both a word and a new word-root:

translation


Elsewhere in the room, there is a small shelf holding some scrolls, scrolls which alas are in a language that the protagonist cannot read at all.

Previously, I had planned that the player would be able to examine up close one of these scrolls, to see this unknown text. However, in the week just past I decided to drop that idea, as alas it proved too problematic. To explain:

  • Should the text look legible, players might attempt to decipher it.
    • If it were decipherable, I would have to provide some actual text for it.
      • If this were actual in-universe writing, then it would mean creating a chunk of lore that I imagine that most players would never see, never even think to access.
      • If this text were just some silly Easter egg, then it would be in conflict with the rest of the game, which thus far has nothing of that sort.
    • If it were indecipherable, then it would likely prove anticlimactic and disappointing.
  • And should the text look illegible, then it likely wouldn't seem worth examining up close.

However, these scrolls do still serve a purpose: having the protagonist look at them now provides a new lore-entry, written and given icon and page-image in the week just past!

Once again, let me skirt around spoiling by showing just a bit:

loreExcerpt


Moving away from level six specifically, but remaining with text, in the week just past I addressed a security issue in the localisation system of the game.

You see, as I previously had it implemented, the localisation system had its strings stored in Python files, each string being held in a variable (or a container like a list). These Python files were then imported dynamically in order to access those strings.

However, this incurs a security vulnerability: someone could, theoretically, insert code into one of these Python string-files, which would then be executed on import I believe!

So, in the week just past I set about reworking the system somewhat, such that it no longer involves importing arbitrary Python files.

Having been pointed to TOML as a potential replacement markup language, I turned to that.

I have my points of dissatisfaction with TOML--it seems to lack variables, or integer keys for dictionaries, the former of which incurs some repetition of lines.

However, I'm overall actually very pleased with it--and especially with the fact that its syntax resulted in very few changes to my string-files!

Indeed, I believe that I have the conversion done, with strings being again loaded properly, and security now hopefully improved! ^_^

And along the way I made a number of other changes, fixes, and additions that don't seem worth detailing here!

Before I sign off, let me say: Should you observe or celebrate anything at this time of year (or should you have just done so) then I hope that it proves to be (or was) a very happy one for you. And should you take a holiday, I hope that it proves restful and restorative for you--not to mention fun. ^_^

That then is all for this week--stay well, and thank you for reading! ^_^

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.

Related Games
Related Engines
Panda3d
Panda3d BSD