Jump to content

"Invenies Verba" (latin: "find the words")


Recommended Posts

A few months ago I became aware of a game (by a small company that a friend & past co-worker of mine works for now) for iPhone and Android called "LEX". It's a fast-action word puzzle that's a lot of fun to play. So... I've cloned it for the Atari 8-bit, of course! :)


You can learn more about it, and download it from http://newbreedsoftware.com/iverba/ (or see attachment).




The objective is to get as high a score as you can, by entering words. You get a stack of random letters, and create words by using some of those letters (they'll get replaced by more random letters). Similar to games like Scrabble, each letter is given a point value -- common letters have low scores, uncommon letters have high scores.


The catch is, you need to use letters before they run out of time -- in LEX, the letter's color changes (as though it's filling up) from bottom to top; in Invenis Verba, I draw a little vertical line next to each letter -- if any letter "fills up", the game ends! Different letters' meters fill up at different rates -- common letters fill up fast, uncommon letters fill up more slowly.


The current release of the game (1.0, my first beta release) contains two dictionaries: English (4800 3- to 8-letter words), and German (2000 3- to 8-letter words). Others can be made, which I'll get into a little below. (It's late, so in the end, I'll probably wait for people to ask for help before I try to explain everything in too much detail.)


Due to how I've constructed the dictionaries, only 15 ASCII characters (A-Z) from each language's alphabet are used. (I pick the most frequently-used letters, then grab all of the 3- to N-letter words that contain just those letters. In English, based on the /usr/share/dict/american-english file on my Ubuntu laptop, it uses A, C, D, E, G, I, L, M, N, O, P, R, S, T, and U.) I've also had success generating French, Italian and Spanish dictionaries.


I've been developing this game on my Linux laptop, entering TurboBASIC XL code as plain ASCII into a text editor, and then using a tool I made during the NOMAM 2014 contest to convert that to ATASCII, and fire up Atari800 emulator to actually load and run the code. I made another simple tool (in PHP of all things; it's because I use it all day at my day job!) to come up with, and store/pack the dictionary files.


I use a binary search to find words in the dictionary -- you can't just enter random junk and get points, it has to be a word -- and it's playable but kind of slow in straight TubroBASIC XL. Therefore, the ATR disk image I released (at the site above, or also attached to this post) contains the compiled TBXL, which runs much faster. (Note: I'll be tweaking the meter speed, since now that goes a little too fast.)


I've also posted the source code & tools & instructions I use to build the game, so if you have a Linux box handy, you should be able to play with the code. (Maybe I need to post it to github? :) )


Anyway, tell me what you think! And be sure to check out LEX, which is a lot of fun to play. (Oh, and they recently open-sourced their code!)



Edited by billkendrick
  • Like 6
Link to comment
Share on other sites

Just a general remark: "invenies" is future tense second person singular, so the title actually means "you will find the words" or (as there are no definite/indefinite articles in Latin) "you will find words".

Why was I immediately reminded of this?



Shame I've forgotten all of my Latin lessons, I took three years in high school.

  • Like 1
Link to comment
Share on other sites

Just a general remark: "invenies" is future tense second person singular, so the title actually means "you will find the words" or (as there are no definite/indefinite articles in Latin) "you will find words".


Hah, I knew I should've checked with someone who actually knew Latin. (I don't, obviously)



This is a really nice game, just needs to have longer timers and a some more words adding, what no SUD!

My best score 335.

Perhaps an easy mode with longer timers and the normal game with challenging timers would be nice. 3 lives perhaps.


:thumbsup: :thumbsup:


Yeah, under compiled TurboBASIC XL it runs quite a bit faster (which is good, since that makes the complicated stuff like scoring and dictionary look-up run at a reasonable rate). I need to adjust to account for that. :)


Also, "sud" isn't a word (I checked Google). Did you mean "suds"? (Each letter would only appear once, BTW, so that's not actually possible in this game.)



Yeah, it seems that the language selection (A/B) doesn't work :/


Oops,. it's suppose to ask the first time you boot, but I left the file on there after I chose English. From the title screen, press [Option].


Thanks for trying it out, everyone! At the _least_, it shows the potential for what a real game could do. Maybe I'll inspire some awesome coder in these parts.

Link to comment
Share on other sites

Hah, I knew I should've checked with someone who actually knew Latin.


Although it was a mistake, it is not that bad. For the classical Latin it is pretty bad, but in the Late Empire, say in 4th or 5th century AD, the future simple active indicative second person singular was quite often used instead of the second person's imperative. And if the polite form was intended, i.e. the present active subjunctive "invenias" (= please find), then these two forms (fut. and subj.) are notoriously confused in medieval manuscripts.


So even if this is a form of a corrupt Latin, in either case there are well established historical precedents for it. ;)

  • Like 3
Link to comment
Share on other sites

  • 6 years later...

A new version is in the works!  (Wow, how has it been seven years!? ?)


I've ported it (literally, line-by-line from TurboBASIC XL) to C.  If anyone wants to give it a whirl, please do so & let me know what you think so far!  On my site: http://newbreedsoftware.com/iverba/


Or here, as an attachment...


Here's a quick video (sans sound)


iverba-2.0-pre2.tar.gz iverba2-pre2.atr

  • Like 2
Link to comment
Share on other sites

I started playing the 2014 game, not realising it was an old game and enjoyed it.


Then I scrolled down and found the new version (good improvement in speed by the way) and then I enjoyed that too.


Two lots of fun in one go! Thank you Bill! 230 is my best score (version 2).


Edit: 344

Edited by snicklin
Link to comment
Share on other sites

@mozzwald noted that it wasn't working for him, and I've tried it on my real Atari (for the first time in a while, apparently -- I stay up way too late at night poking at this stuff!) and confirmed the issue.

For some reason, when trying to open files (high score record file, and the dictionary itself), it's timing out, making it unplayable!  It works fine for m under Atari800 emulator, which I'm guessing folks out here have been using.


I've been poking at it all evening (replace stdio fopen/fread/etc. with fcntl/unistd open/read/etc., and then with direct CIO calls).


Finally, as I'm writing this message, I just realized it's my display list interrupt!  So time to poke at that.  I guess timing for a virtual drive in an emulator is not affected as much as a real SIO device (even SIO2SD or FujiNet). :-D


Link to comment
Share on other sites

On 7/16/2021 at 1:49 AM, Heaven/TQA said:

nice one Bill. sometimes no fancy "multidigital 8 channel DLI heavy scanline inline changes with PM underlays to get 8 colors PAL blending etc" is needed ;)


Well, now it has a VBI (for smoother sound playback, and avoiding input lag while you play). ;)


You can also hit [D] from the title screen to toggle dark mode.  And a small help screen has been added (press [Help] or [H] from the title screen), which gives very brief gameplay instructions, and is home to some of the version/etc. info that was cluttering the title screen.


iverba2-pre4.atr iverba-2.0-pre4.tar.gz

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

My teenage son tried it out and suggested a practice mode, which I was able to crank out pretty easily. Press [P] from the title screen to start. The letter meters fill up, but the game doesn't end automatically (hit [Esc] to abort back to the title screen). Naturally, your score is not eligible to be recorded as a high score. ;)


(I also made my font's "3" easier to look at, and did overhauld the documentation -- found in the .tar.gz source code snapshot -- a little.)


I've still got to tweak the timing of the letter meters; I can't get much further than level 8 or 10, and I think it ramps up too quickly.  I need to make the math more clever. :)  FEEDBACK WELCOME!


The MAJOR overhaul the game will get, expanding it quite a bit beyond what the original TurboBASIC XL version from 2014 could do, will be improving the cleverness of how the dictionary is compressed and stored. Right now I'm limited to 15 letters (out of 26) in the alphabet, and a lot of space is wasted by words shorter than 8 letters long.  Each word takes exactly 4 bytes (half a byte per letter).  One of the "letters" is a space, for padding.


These hokey limitations were in exchange for the game being reasonable playable (under compiled-TBXL, at least).



iverba-2.0-pre5.tar.gz iverba2-pre5.atr

  • Like 3
Link to comment
Share on other sites

I really like the game. I've been playing the pre5 version. I thought I was better with words than I actually am. My high score is only 124 so far <sigh>. Is there any way to make the flame red when it's very hot and a few seconds (maybe 10) from ending your game? The change in color would be a nice way for me to know I really need to find a word with that letter ASAP.


Anyway, it's a nice game. I look forward to trying it on my XEGS. I've been playing it on Atari800MacX right now. I use it to determine if I like a game well enough to put it on the SD card to be used by the XEGS.


Bob C

Edited by darwinmac
  • Like 1
Link to comment
Share on other sites

Okay, pre-release 6 for anyone who wants to test it.  This re-introduces the dictionary choice feature found in the original, though it doesn't currently save your choice, nor offer a way to change it other than rebooting the game.


I've included, in some cases somewhat limited (in terms of max. word length) dictionaries for:

  • German
  • Polish
  • Spanish
  • Italian
  • French
  • American English (what it had before)
  • British English (so it'll accept, e.g., "COLOUR")

Words that would have diacritics are included in the game dictionaries, but are stored WITHOUT the diacritics, and no letters containing diacritics will be dealt. You'll only get something from some subset of ABCDEFGHIJKLMNOPQRSTUVWXYZ.  In other words, if you can spell "ADIOS" with the words dealt, it'll be accepted -- despite "adios" not being a word in Spanish; it understands you to be spelling "adiós".


To fit all these, I've bumped the ATR disk image from single density to double. I was going to go for enhanced / medium density -- what a stock Atari 1050 (like I have) supports -- but apparently Franny, the tool I'm currently using in my build process to construct the ATR file, can only write to single & double disk images. :sad:


I've been trying to sort out supporting the German eszett (letter ß), but due to lack of planning and general flailing around as I code this in my spare moments today, it's not working.  That said, with the current limitation of max. 15 letters being POSSIBLE (due to how the dictionary is currently packed... the same way I did it in the original TurboBASIC XL version), it's not like it was going to find enough words containing "ß" to actually use it.


Note: I personally only speak/read/write English, so my ability to test how this game works in other languages is extremely limited. Please don't be offended by my naivety. ;) The code is on GitHub, and I'll happily accept improvements!


Anyway, enjoy!



Edited by billkendrick
  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...