Code Monkey home page Code Monkey logo

tunic-decoder's Introduction

Tunic Decoder

A tool to help with decoding of the writing system in the game TUNIC. Has a spoiler mode in case you want to skip the process of figuring it out yourself, but otherwise leaves you free to write in and figure out the meaning of each word.

It also renders glyphs fancily!

Keyboard input supported:

  • QWER to toggle lines 1-2-3-4 out of the currently highlit with blue ones. There's no highlight until you first use the keyboard input!
  • F and Shift + F for choosing next and previous 4 lines to input
  • A and Shift + A to delete/pop, and to add a blank/push a glyph respectively. If the glyph is not empty, it will be saved into a temporary secondary buffer (shown to the right of the fully black cursor). This can be useful to copy a word! Note that the buffer is not saved between app reloads
  • C to clear current glyph input
  • Shift + D to push the current word into the list of words, including the text/descriping in the field under the input panel. The secondary buffer is not cleared
  • Esc to hide the highlight and stop keyboard input session. The glyph, word and buffer are not cleared

TODO List

  • Keybinds help in the app itself
  • Punctuation input! And just plain text
  • In spoiler mode - better guide for how to speak it? A link to one?
  • Saving the currently edited word and glyph
  • Saving the buffer, too? Will need to make sure you can reset it though
  • Better text editing tools

Development

This project was set up with the Vue Quick Start guide and should be easy to get up and running for development purposes. Most of the info in here is from the init template's README.md file

Recommended IDE Setup

VSCode + Volar (and disable Vetur) + TypeScript Vue Plugin (Volar) or Volar Take Over Mode (which is suggested to have better performance)

Project Setup

npm install

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

tunic-decoder's People

Contributors

saphirelattice avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

sultan erquint

tunic-decoder's Issues

Autosuggest.

I have a lot of largely-unlabelled words saved at the moment.
Sometimes I need to re-enter one into a new text I'm writing.
Finding it among the hundreds of entries in the wordlist is a fool's errand.

What I'm usually having to do is exploit the bug/feature where if I painstakingly re-enter the whole word again in the glyph constructor and try saving it — I get the toast of the word collision but it gets pushed into the text. And then the caret advances without clearing the word I input which, if unnoticed, results in clumping the next input word with the last…

Here's another thing I can do however:
image
Which allows me to match all words sharing one complete glyph I enter.
The downside of course is that it's very manual and going lower-level than a whole glyph would take mental gymnastics.

I request the autosuggest feature of dynamically filtering the wordlist by the entered strokes in glyph constructor through bitwise-ANDing the entered word with all suitable subsets of existing words.

New Feature: IPA input/output for words

Somewhat related to #1, probably could be done in bulk with it. Also relevant is #3, to be able to assign own custom representations, and show some of the used ones (IPA, mine, and the one used by the audio decoding project)

Fonts

I know you got enough on your platter, so I'm just leaving this suggestion for later.

Implement the cursive font found on manual pages 21 and… I forget the other one… and the isocube font found on pages 6 and 41.

I'm a fan of the latter personally. No edge segmentation or overlaps to worry about…

I saw another webapp (straight up translator I think, haven't used it) implement the cursive one.

Requesting a spoiled mode for glyph editor.

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 ==

UI/UX: Add a popup/help for the keyboard input

Clicking the glyph input can be rather tedious which is why that exists, but there's zero indication that it does exist unless the user sees about it elsewhere. Should add info to be shown when tapping F1 or ?...

Layout: Mobile layout is broken

Probably could use tabs. Bind the switching between to swipe actions too? Do it only after a full swipe-and-release, or have it be progressive (note here: do NOT make it too sensitive... though might need to make it depend on the screen size here)

Tab headers could be used to signal info in other tabs, and maybe gray out / make them red when there's nothing in these tabs.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.