I was too lazy to add a set of screenshots, but the trailer felt like a nice challenge. 🫠
Smaxx
Creator of
Recent community posts
I’d suggest just drawing the letters pixel by pixel yourself. Personally I only used a ad-hoc font that’s 3x3 pixels and with some fantasy it was rather simple to get some text on the poster (note I didn’t have to come up with more complex letters like B
, so it might be harder for some languages).
The files in the fonts
directory are only those used for the game to display text, but not the image assets. In fact, the fnt files only include the meta information necessary for the engine to know where in the associated PNG file the individual glyphs are stored (you can open the fnt files with any text editor of your choice).
Edit: I’ve found TTF versions of the font here (note I haven’t tested the downloads so can’t vouch for them):
In engine\dialogue.moon (and the Lua equivalent), change line 37 from
table.insert(env._choices, {:text, :f, text_sub: text\gsub("\n", "")})
to
table.insert(env._choices, {:text, :f, text_sub: text\gsub("-?\n", "")})
This ensures hyphenation (if used) is removed, too. For example, splitting a word over two lines in German you’d do something like Zeitreparatur-\ngerät
, which as a one-liner has to become Zeitreparaturgerät
, but previously became Zeitreparatur-gerät
.
Just try them. For a quick test, I’d suggest using them in the “New Game” button so you can see them right away. I haven’t tried any other quotes, but the font definitely supports German typographic quotation marks, so I’m pretty confident others are in there, too. Note you don’t need the leading \
, that’s really only for the simple ANSI ones (\"
).
Updated the original post. The old regular expression didn’t work since the editor ate a \
at the start and \[t]
means something different than [t]
.
You can do this replacement in two steps without regular expressions:
- Replace all
= "
with=<tab>"
. - Replace all
" --"
with"<tab>--"
.
Then remove the lines at the start just like I mentioned above and it should work. (Does so for me in Excel.)
If you’re using my suggestion above, the game will run right from your local directory and show in your browser. Python creates a small locally running web server for you.
Changes will be visible right away (after reloading) the website. You can always zip up the game and upload it to itch, obviously, but that requires a few more steps after all.
Yes, you can!
For simplicity, you’ll need a working installation of Python. If you’re on Windows, you can find the latest version on the Microsoft Store.
Then simply execute/run the following line (e.g. using Windows’ “Run” dialog through Win+R):
python -m http.server 8000 -d "C:\Path\to\unpacked\locjam6\folder"
Once done, you’ll get a console window that stays on screen.
Now visit http://localhost:8000/ in your favorite web browser and it should run out of the box. Note you might have to do a hard-reload (Ctrl+F5 or Ctrl+R) if you’ve updated files, or clear your browser cache and then reload.
To stop the server, hit Ctrl+C inside the console window or close it.
And since I forgot adding it above, posting this standalone for visibility for those wanting to set up their filters manually:
Regex pattern before translatable text (i.e. start):
^t\[\d+] = "
Regex pattern after translatable text (i.e. end; mind the number of whitespaces!):
" --
Regex pattern for translatable text (might be needed, e.g. in memoQ):
.+
Alternative for those with just Office and similar programs:
- In a text editor like VS Code or Notepad++, that supports Search & Replace with regular expressions, look for the pattern
^(t\[\d+]\s+=)\s+(".*")\s+(--)
and replace it with$1\t$2\t$3
. - Delete all lines at the start of the file that start with
--
(i.e. all the comment lines). - Open/import the file in your favorite spreadsheet editor (like Excel) and use Tab Separated Values (TSV) or TSV File as the file format.
- You should see the translation in the second column.
- No need to convert anything back, the file should run just fine.
Note this might screw with quotes in your text, so you should double-check them in a regular text editor once you’re done.
The instructions above were a good hint/start, but didn’t work instantly. After fiddling a bit around I had it set up rather quickly in memoQ.
You can download the exported filter rule for memoQ from our server. Just unzip the file and import it in the Resource Manager thingy. (If you don’t trust random files from strangers, just open it with a text editor, it’s really just a text file.)
This setup will also keep the comments out of your translation as they felt a bit too generic to really help IMO.
Note this isn’t a filter chain, so you’ll still have to escape both linebreaks as \n
and ANSI double quotes as \"
to avoid script errors.
Very interesting concept, but to be fair, I enabled the tutorial and then kind of closed it and tried to figure out the game. It's not that hard, but the tutorial shouldn't be a wall of text (but I guess that's really just due to the time constraints of a jam). This could definitely be fun with some more animations and a "learn as you play" kind of tutorial.
Yeah, I kind of agree, the smaller increments of a maximum of +6 per dice make it way too easy at times. I added scaling, so the drop rate increases, but I guess it simply doesn't scale fast enough for the first rounds to be noticeable. And yes, definitely something to expand upon, I enjoyed just knocking them around way too much while testing (which might have contributed to the relatively simple "goal" and a lack of time…😅).
I'll definitely expand on the physics game mechanic (not just a tiny island), because I'm a sucker for golf games.
Yep, I agree. I normalized the sounds, but guess that one could indeed have used a -20dB cap instead of the -10dB one. Dice not counting (they can sometimes land on he edges and even stay there) is intentional, but I also see how it could be confusing. Originally you'd flip them with a playing piece, but couldn't get the controls right, so you would have toppled most of them automatically.
This depends how you load it. Godot has a built in way to load something in background, too.
If you use load(), the program will halt/stall until loading is finished. If you use preload(), whatever you try to load will be preprocessed when building and then loaded together with the parent scene/node preloading, and you can use interactive loading provided by Godot's own ResourceLoader class. The latter just requires you to add a bit more code around it.
You could always just use your own thread, too. Depending on what you load, doing it with my node might still cause your program to stall for a moment, because some operations can only be performed on an application's main thread (especially OpenGL stuff).
Overall this whole node is mostly a convenience thing. This doesn't involve anything you couldn't build on your own or do in a slightly different way.
I like the generic idea, but right now it feels a bit too tiring, waiting for that specific solution to happen, etc. It could definitely work as some kind of "one trick pony" with multiple screens, each having its own unique mechanic or approach. One more thing (graphical) design wise: I would consider it better for pixel sizes to be uniform. Go with the classic 70's look. But don't mix in higher resolution text. I could even imagine this with more simple 8-bit style sound effects (although this might be tricky to get it right).
Yeah, thinking about it, it feels a bit too "one-sided", always just the same. So more mechanics would indeed be nice. I thought about her calling you from a distance at first, but it felt too easy (therefore she'll "pong" you, if you "ping" her). And as a fun fact, I originally wanted to do just a blocky maze (think typical GameBoy RPG), then experimented with polygons and finally thought "Why not use a bitmap, it's way more easy and flexible?".