SaphireLattice / tunic-decoder

A dictionary, text recording and glyph decoder/translation tool for TUNIC game's writing
https://lunar.exchange/tunic-decoder/
7 stars 2 forks source link

Requesting a spoiled mode for glyph editor. #6

Open Erquint opened 1 year ago

Erquint commented 1 year ago

First of all, I highly appreciate you developing and publishing this work. I was getting figuratively buried in notebook pages I scribbled alien nonsense onto…

I'm at the point in the game where I don't yet have any good clue to the phonetics of the language¹ and the morphology largely escapes me so far, but I did glean the glyph construction constraints² and finding it rather silly and less-than-productive to be required to click multiple times for a single meaningful bit of information, not to mention the unwanted ability to commit unintended typos.

I would appreciate it if the glyph constructor pane had its own spoiled mode which would set and unset those linked bits together in one click. It would also be neat if I could run an inspection on my inventory of words to find typos with invalid glyph construction among them.

[¹. Spoiler]Other than the obvious parallels with English.
[². Spoiler]It's comprised of sides of a cuboid. And I appreciate that you allow the user the unspoiled naive erroneous assumption of being able to draw only part of a side even though neither 0010 nor 1000 can legally occur separately as can't neither 0020 nor 2000 occur without being bitwise-ORed with 0080 that overlaps with both in projection.

== UNCOVERED SPOILERS PRESENT IN THE FOLLOWING DISCUSSION OF THIS ISSUE ==

SaphireLattice commented 1 year ago

Yeah, I've quickly realized that trying to transcribe every single instance of words and sentences would become unsustainable. So I've spent a bit of time making this tool, and then published it for others to (hopefully) find and use.

And hmm... Definitely can see this kind of thing being useful! Not sure how exactly to make that fit - basic "here's all the glyphs" list would take a lot. Maybe some extra tab or mode or something.

Would need to pretty up the "Spoiler mode" as well, maybe make it pop a modal where you can choose a lesser spoiler mode (what you requested), and the greater spoiler mode ("here's the solution to all of this")

And yeah I've built it on assumption of "I need to be able to record all possible line combinations - even if they might not make sense", so it's making a few somewhat silly assumptions from that. I'm not sure if I want to remove that, or keep it like this. It's fun to realize eventually that yeah these are always there.

I'll admit it took an embarrassingly long time to realize it /is/ a cuboid... Kept seeing it not as an odd hexagon or so.

But yeah I'll ponder a bit on this. But sadly I can't promise it being done soon at all. Apologies on that! And huge thanks for the feedback :D

Erquint commented 1 year ago

as an odd hexagon or so

The game does a bit of a red herring by toying with the fact that the isometric projection fits a hexagon and then inscribing it into decorative hexagonal shapes throughout the manual. I can see how that would create that impression. The thought/cursive script hint on page 21 helped prod me in the opposite direction though.

I myself just kept noticing from the beginning how the presence of the middle vertical overlap bit, that at the time looked like a notch to me, always seemed conditional upon the surrounding context. Then it took much longer to notice that the left vertical strokes are linked as well, even though they're a simpler thing on their own with no projection overlap.

As for how to implement it, I have a clear mockup in my head… perhaps I should illustrate it visually, but lemme try clarifying it in text first.

There is of course an issue of how to spoil-guard things that you can't know in advance whether the user already knows. Tough to know what you don't know, let alone others.

Erquint commented 1 year ago

As an offtopic, the webapp just nuked all my texts. 😢 "texts":[] Consider implementing automatic validated backups in case of internal failures. My manual backup is pretty old and your average user wouldn't even know how to take one.

I retain the words but there's no typing suggestions system, so I'll have to input the whole 17th page manually again stroke by stroke…

SaphireLattice commented 1 year ago

Oh whoa. That's uh, quite an interesting one. Any clue how that might have happened?

And yeah, might be worth having just at least the "previous version" thing...

Glad you got that sorted out somewhat. By the way, input via keyboard is MUCH faster and kinda why I implemented it in first place. Hopefully it's not too confusing.

Erquint commented 1 year ago

Any clue how that might have happened?

I didn't catch the console in the act. Will now be making manual backups much more often and try watching the console when I refresh.

My faintest guess is that it had something to do with a word I added to a text but then edited or deleted. Mayhaps that act of editing or deleting generated malformed JSON in the texts field that wasn't parsed and thus discarded upon a reload. 🤷‍♂️

input via keyboard

[Wrote a bunch of stuff here, then redacted it.]

😔 I wanna use the keyboard but find many problems with the intended workflow of keyboard controls you provide which makes it much more difficult than clicking away with even my faulty mouse.

I should fork your repo and fiddle with it for PRs of optional modes for stuff once I manage to distract myself from other projects…

Erquint commented 1 year ago

Back to the topic.

perhaps I should illustrate it visually

Let's do that just in case: image

I looked at the code. Think I need to alter the Glyph#encoded setter, but can't seem to find its definition.