foone,
@foone@digipres.club avatar

what?

Return of the Obra Dinn saves your game as .txt files
containing XML
which contain a date and a <data> element that's a base64 encoded string.

foone,
@foone@digipres.club avatar

that sounds like binary with extra steps

SnoopJ,
@SnoopJ@hachyderm.io avatar

@foone evergreen computing post

ankitpati,
@ankitpati@mastodon.social avatar

@foone It’s binary, you see.

Every data format out there is either binary (increasingly rare), or binary with (increasingly) extra steps.

None of these extra steps would exist if our ancestors just agreed on an endianness.

foone,
@foone@digipres.club avatar

I'm trying to Death Generator this game but Lucas Pope is known for two things:

  1. really neat games
  2. caching all his rendered text
foone,
@foone@digipres.club avatar

this means that if a game has a message box that says "Hello World!" and you memory edit it to read "Cat Sauce" and re-trigger the message box, you still see "Hello World!" because it's still caching the rendered text

foone,
@foone@digipres.club avatar

oh
I was worried this game had dynamic justification
but no, it's just that I can't spell.
there's only two Rs in "terrible"

foone,
@foone@digipres.club avatar

the good news is that I can quit to the menu and re-load the save and it empties the cache
the bad news is that automating this is not going to be easy. this game has its own mouse controls, meaning I can't use absolution positioning

foone,
@foone@digipres.club avatar

absolute positioning, I mean.

foone,
@foone@digipres.club avatar

ahh, there's keyboard controls. so this is doable.
There's still a nasty memory-search in there, but I'll manage

foone,
@foone@digipres.club avatar

okay got it doing a full reset.
the best part is that if I set it up slightly too slow, it accidentally clicks quit instead of begin, and the game closes, and I have to set up the IDs and pointers again

foone,
@foone@digipres.club avatar

I'm not sure I've ever gotten memory searching to work

foone,
@foone@digipres.club avatar

got it. the problem was, as always, memory protection

foone,
@foone@digipres.club avatar

well, that didn't last long. I was trying to skip some steps and figure out what unicode regions are supported by this font, and instead it just hung my extractor

foone,
@foone@digipres.club avatar

I'll just extract all of unicode!
at 11 seconds a character, that'll take about... 19 days?

foone,
@foone@digipres.club avatar

there's apparently a timing bug in my script which means that sometimes instead of quitting, it tries to turn down the volume.

this is less than useful

foone,
@foone@digipres.club avatar

it turned out to be because minecraft was crashing slowly in a multithreaded manner

foone,
@foone@digipres.club avatar

this is one of the worst ideas for a game to extract to put in the death generator
it has, like, 7 different character sets in it?

foone,
@foone@digipres.club avatar

english (plus extra characters because there's some danish and german in there), hindi, traditional chinese, russian, and probably several more I'm forgetting

foone,
@foone@digipres.club avatar

frankly I'm lucky this game didn't just invent its own conlang and stick the alphabet up in the private use area somewher

foone,
@foone@digipres.club avatar

also every time it renders text it looks different.

literally every time.
there are randomly missing pixels. this is intentional and part of the game's aesthetic

foone,
@foone@digipres.club avatar

I have now crashed two asset extractors

KasTasMykolas,
@KasTasMykolas@river.group.lt avatar

@foone that's.... abuse!

foone,
@foone@digipres.club avatar

interesting discovery: although the game is monochrome, the textures aren't. They seem to be mostly red/pink, with some green used.
The monochrome stuff seems to be done in a shader, but I'm wondering if the colors in the textures are being used for some in-game use?

kawa,
@kawa@mas.to avatar

@foone I forget what for, but they are in fact used for different purposes.

hy,

@foone if i had to guess, the red channel is used for the lightness of the monochrome textures and the green channel is used for emission. blue channel is just a copy of the red channel.

foone,
@foone@digipres.club avatar

oh neat, an undithered version of the two sketches

foone,
@foone@digipres.club avatar

oh my god
the carpenter, first mate, and 7th top man have IDENTICAL arm muscles!

LITERALLY UNPLAYABLE

foone,
@foone@digipres.club avatar

it keeps the list of fate-moments in a CSV file. Interesting.
the column headings are:
"id, r, die,pull, music, clear, keep, fog, loc,corpse, skel,shadows,prune,unlock"

foone,
@foone@digipres.club avatar

same for the crew manifest:
"id,,gender,name_unused,shortname_unused,job,birthplace,fate,clue,difficulty,hint,sketch,tally,pay,insurance,category,pic"

foone,
@foone@digipres.club avatar

{
"key": "fate_parts_fell-rigging",
"val": "Fell/Rigging | $subject | fell from the rigging to <M>his<><F>her<> death."
},

The game has an interesting implementation of gendered-text, one which I'm not a fan of as an enby

foone,
@foone@digipres.club avatar

I need to write a game engine with a comprehensive pronoun engine one of these days, just to Show How It's Done

a13cui,

@foone steal it from PHP then

foone,
@foone@digipres.club avatar

OMG! it actually DOES have more than the gender binary! just the final gender is "beast":

{
"key": "fate_parts_eaten-killer",
"val": "Eaten | $subject | was <m>cannibalized<><f>cannibalized<><b>devoured<> | by $killer."
},

Zotmeister,
@Zotmeister@mastodon.online avatar

@foone I'm reminded of how in Disgaea, there's basically three types of being: humanoid, monster, and Prinny. Prinnies in-universe are somewhere in-between (as souls of former humans in penguin suits) and the game mechanics match this by having some traits of each of the other two. Also, they're basically walking hand grenades.

MishaVanMollusq,
@MishaVanMollusq@sfba.social avatar
foone,
@foone@digipres.club avatar

I'm Foone B. Turing, and my pronouns are were/wolf

foone,
@foone@digipres.club avatar

BTW my favorite little detail is at the end, your housekeeper says "Tea’s in the kitchen if you need more." in the good ending, and "Tea’s all gone so you might think about going to bed as well." in the bad ending.

BAD ENDING: NO TEA

ronane,

@foone British game ?

foone,
@foone@digipres.club avatar

@ronane set in Britain, yeah, but it's made by an American

foone,
@foone@digipres.club avatar

okay so I dumped the whole game script and then sorted every character used into their unicode blocks and then counted how many characters are in each of those blocks and I come up with a total of...

twenty two thousand and forty eight characters.

foone,
@foone@digipres.club avatar

with my current system that'll be extracted in approximately three days

foone,
@foone@digipres.club avatar

so I think I'm going to have to stick to extracting Basic Latin, Latin-1 Supplement, and General Punctuation.
that's only 368 characters.

foone,
@foone@digipres.club avatar

It's not just laziness and "not wanting my main PC to be unusable until sunday".
The way the Death Generator handles fonts is inelegant for big fonts, so having huge characters sets in it makes it load slowly

indigoparadox,
@indigoparadox@mastodon.social avatar

@foone I think it's fun that the ANSI bot just tooted this: https://agyilag.zokni.xyz/@ansi/statuses/01H7G6TE3GGZPW261XNW88YXPF

chfour,
@chfour@wetdry.world avatar

@foone suggestion. a vm or secondary dedicated machine

foone,
@foone@digipres.club avatar

@chfour it's annoyingly hard to set up a VM that has graphical acceleration abilities, sadly

chfour,
@chfour@wetdry.world avatar

@foone oh right lol that makes sense

foone,
@foone@digipres.club avatar

oh, arse.
it turns out it doesn't use one font for the death messages, it uses... at least two?
it dynamically scales it because some death messages are too long

foone,
@foone@digipres.club avatar

COMPUTERS ARE, WERE, AND WILL CONTINUE TO BE A MISTAKE

milkman76,

@foone the entire internet, as well. It's entirely possible electricity was a mistake.

apgarcia,
@apgarcia@fosstodon.org avatar

@foone Kurtz was thinking about computers when he said "The horror. The horror."

foone,
@foone@digipres.club avatar

but I've made a lot of progress!

luvcraft,

@foone SPOILERS!!!

😆

scruss,
@scruss@xoxo.zone avatar

@foone what a way to go ... and in the rigging, too

SonnyBonds,
@SonnyBonds@mastodon.gamedev.place avatar

@foone I don't remember exactly who, but isn't there one that kind of died of poop disaster?

foone,
@foone@digipres.club avatar

@SonnyBonds Yep. The first guy killed by the kraken is killed while shitting.

Tau,
@Tau@im-in.space avatar

@foone No, that was the artist

foone,
@foone@digipres.club avatar

The is one of the first generators were just the overlay selections is going to be a massive spoiler

pencilears,
@pencilears@eternalaugust.com avatar

@foone there's really no way to make it not be, like can't even call people by bunk numbers or professions.

foone,
@foone@digipres.club avatar

@pencilears if I had support for it, I could make it pick from the faces. That'd be... less spoilery

foone,
@foone@digipres.club avatar

whoops I have apparently exploded the obra dinn

tankgrrl,
@tankgrrl@hachyderm.io avatar

@foone Oh no!

foone,
@foone@digipres.club avatar

apparently he's named
Captain
Robert Witterel
Captain
Robert Witterel
Captain
Robert Witterel

foone,
@foone@digipres.club avatar

I checked the crew manifest. It has remapped all the deaths, and not in a good way

thepi,
@thepi@urusai.social avatar

@foone The crew of the Obra Dinn met a terrible fate at the hands of the most judgemental insurance agent of all time.

foone,
@foone@digipres.club avatar

@thepi <insurance agent> NO ONE SHOULD GET ON A BOAT, IF YOU DIE AT SEA IT'S YOUR OWN DAMN FAULT

foone,
@foone@digipres.club avatar

okay ugh. this game is definitely doing some dynamic justification and font sizing.

and I'm not sure exactly how to trigger it or emulate it

nyah,
@nyah@hachyderm.io avatar

@foone some Major Major Major Major energy

Ongion,
@Ongion@mendeddrum.org avatar

@foone "Captain did it"

drazraeltod,
@drazraeltod@chaos.social avatar

@foone
Revolver Ocelot?

Revolverer,

@foone I’ve been looking forward to playing this for ages!

jonhendry,
@jonhendry@iosdev.space avatar

@foone

I bet it was nothing like a madeline.

foone,
@foone@digipres.club avatar

@jonhendry I'm not sure what you mean.

jonhendry,
@jonhendry@iosdev.space avatar

@foone

" Swann’s Way, the first of seven volumes of Proust’s most famous work, In Search Of Lost Time ("À la recherche du temps perdu"). Proust’s narrator involuntarily recalls an episode from his childhood after tasting a madeleine dipped in tea."

foone,
@foone@digipres.club avatar

@jonhendry ahh, I had forgotten about that!
I've never read it, but I know the reference, but it just wasn't coming to mind.

jonhendry,
@jonhendry@iosdev.space avatar

@foone

I also have never read it, but second-hand exposure through media have led me to associate Proust with madelines and vice-versa.

n1vux,
@n1vux@mastodon.radio avatar

@foone ^ DUNE's BUTLERIAN JIHAD WAS PROPHECY ! ^

MaJ1,

deleted_by_author

  • Loading...
  • foone,
    @foone@digipres.club avatar

    @MaJ1 @wolke look who doesn't have an analog hand-cranked mastodon machine

    MishaVanMollusq,
    @MishaVanMollusq@sfba.social avatar

    @foone
    Where/wolf
    There/wolf
    Playing poker
    Harley Quinn smiles at you
    Was/wolf
    When/wolf
    See how they swim
    Like things beyond the rim

    halotroop2288,
    @halotroop2288@meow.social avatar

    @foone OK, so your pronouns were wolf, but what are your pronouns now though.

    foone,
    @foone@digipres.club avatar

    @halotroop2288 I've been on cervidHRT for nearly two years now, so I'm some kind of deer.

    simonbp,

    @foone @halotroop2288 Hopefully not off the Nara variety

    cab404,
    @cab404@mastodon.xyz avatar

    @foone <b>Foone Turing<>

    dascandy42,
    @dascandy42@mastodon.social avatar

    @foone "Going beast mode" as an alias for enby? I kinda like it.

    technohippie,

    @foone A truly comprehensive pronoun engine would be extremely interesting, since pronouns can affect other grammar in arbitrary ways. Consider "They are/He is". And one could construct even more advanced pronouns that change disconnected parts of the sentence. You'd either need to have a very sophisticated language understander, or have entirely separate text for every gender.

    selfisekai,
    @selfisekai@hackerspace.pl avatar

    @foone omg yes we need a pronouns/localization library that can insert any pronouns from pronouns.page

    SvenGeier,
    @SvenGeier@mathstodon.xyz avatar

    @foone [nods] a comprehensive gender engine should be no harder than a comprehensive time zone engine. How hard could it possibly be...

    TJSomething,

    @foone I've been curious how Chrono Cross did it to handle different formality levels, first person pronouns, and speech quirks.

    Jhynjhiruu,

    @foone I think engines that have comprehensive localisation support would be a good start, since those usually have to deal with things far more bullshit than pronouns (insert "if you think pronouns are confusing, wait until you find out about verbs" meme here)

    foone,
    @foone@digipres.club avatar

    @Jhynjhiruu this engine is fully localized, actually! This is after the localization step: it has to have dynamic pronoun support because user input influences the text.

    sarahokeefe,

    @foone That would also be a PITA to localize.

    foone,
    @foone@digipres.club avatar

    @sarahokeefe this actually is the localized text. There's a separate file for all the other languages

    a13cui,

    @foone I'm already following this saga with great interest since this is some wild shit

    ellie,
    @ellie@ellieayla.net avatar

    @foone like, for compression?

    foone,
    @foone@digipres.club avatar

    @ellie No, just texture-reuse. It's not even stored in the same file, so it's not compression at all

    ellie,
    @ellie@ellieayla.net avatar

    @foone wtf; what year is this

    nicolas_noble,

    @foone reflection data for the shader?

    bgolus,
    @bgolus@mastodon.gamedev.place avatar

    @foone yep. Lots of tricks being done to obtain the final 1 bit look of the game.

    I believe red channel = the base texture, green = painted in lighting to ensure important parts are visible even if they're fully in shadow.

    video/mp4

    foone,
    @foone@digipres.club avatar

    @bgolus ooh, nice! I had done some searching to see if anyone had figured out what the game looks like without the 1bit/dither shaders, but couldn't find anything

    bgolus,
    @bgolus@mastodon.gamedev.place avatar

    @foone Pope did a dev blog on tigforums in which he detailed how most of it works.

    saphire,
    catonator,

    @foone Based on some info in the debug menu and the dev diaries, the different colours are used to create visible seams for the edge detection shader on the surfaces without the need for modeling those details

    kawa,
    @kawa@mas.to avatar

    @foone As someone who did exactly that, where else would you put the damn things?

    foone,
    @foone@digipres.club avatar

    @kawa my own codepage, of course. Fuck unicode

    kawa,
    @kawa@mas.to avatar

    @foone been there, done that too.

    foone,
    @foone@digipres.club avatar

    @kawa I don't see the Felinese

    kawa,
    @kawa@mas.to avatar

    @foone That's the codepage, not the Felinese conlang.

    This is the conlang. 👇

    foone,
    @foone@digipres.club avatar

    @kawa oh I see. Why isn't your conlang in your codepage though?

    kawa,
    @kawa@mas.to avatar

    @foone Not enough space and, despite the system's mascot being a felin, it is not itself part of the so...

    saphire,

    @foone ... To-do: do that

    oblomov,
    @oblomov@sociale.network avatar

    @foone wait, what does Minecraft have to do with this?

    foone,
    @foone@digipres.club avatar

    @oblomov nothing! It was just running at the same time, and it crashed in a way that ate all my cpu

    rakslice,
    @rakslice@mastodon.social avatar

    @foone pouring gasoline on the fire meme, but it's foone pouring timing rubber bands into the automator

    grumpasaurus,
    @grumpasaurus@fosstodon.org avatar

    @foone maybe it's just trying to find some passive aggressive middle ground, ok.

    Ongion,
    @Ongion@mendeddrum.org avatar

    @foone is it cheating to just ask Lucas Pope?

    foone,
    @foone@digipres.club avatar

    @Ongion yeah.

    aran,
    @aran@localization.cafe avatar

    @foone @Ongion

    Fun fact: Lucas had a testing tool that would generate every single text screen of the game and dump them as screenshots in a folder for the purpose of localization testing.

    In a way, Obra Dinn had its own Death Generator even before being launched.

    (Source: I ran the Italian localization team)

    static,
    @static@aus.social avatar

    @foone Now I want to come up with what "absolution positioning" would look like. :-D

    neko,
    @neko@mastodon.cloud avatar

    @foone You are Forgiven.

    Blastodon,

    @foone that depends how pirate-y ye arrrrre today

    biggestsonicfan,
    @biggestsonicfan@digipres.club avatar

    @foone Did you ever Death generator the GameCom Castlevania proto? It released shortly before you exited the bird app.

    foone,
    @foone@digipres.club avatar

    @biggestsonicfan nah, I never did. I'll have to look into that

    glyph,
    @glyph@mastodon.social avatar

    @foone have you ever looked at a mapeditor.org map

    foone,
    @foone@digipres.club avatar

    @glyph YEP!

    hanlsp,

    @foone no shit, there was a serialization pipeline that turned out base64-encoded binary embedded as a stream of xml <char>0</char><char>A</char>…etc

    whatabouttheken,

    @foone much simpler to just serialize your game state object as a lump than trying to parse something, xml is a quick way to add a date tag i guess

    mike_edwards,
    @mike_edwards@mas.to avatar

    @foone Oooh! Maybe that's the game's final mystery!

    yetzt,
    @yetzt@vis.social avatar

    @foone i expected the base64 element to be a pdf containing the sourcecode of an obfuscated c program that produces a zip file containing an excel spreadsheet with the data tbh

    lorddimwit,
    @lorddimwit@mastodon.social avatar

    @foone

    Microsoft publishing an “open” file format circa 2006.

    sundew,
    @sundew@mstdn.social avatar

    @foone I wonder if the base64 encoded data is itself another xml string...

    foone,
    @foone@digipres.club avatar

    @sundew nope! actual binary.

    teamonkey,
    @teamonkey@mastodon.social avatar

    @foone If you think about what Obra Dinn is then the encoded string makes sense. Most of the entries in the log will be represented as bitflags, and when not they’re low-value integers. Pack em together and encode.

    crobbler,
    @crobbler@mastodon.social avatar
    Kiloku,
    @Kiloku@burnthis.town avatar

    @foone anticompression

    shoofle,

    @foone no....

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • DreamBathrooms
  • magazineikmin
  • InstantRegret
  • thenastyranch
  • cubers
  • Youngstown
  • ethstaker
  • slotface
  • mdbf
  • rosin
  • Durango
  • kavyap
  • GTA5RPClips
  • khanakhh
  • JUstTest
  • tacticalgear
  • ngwrru68w68
  • cisconetworking
  • modclub
  • everett
  • osvaldo12
  • tester
  • anitta
  • Leos
  • normalnudes
  • megavids
  • provamag3
  • lostlight
  • All magazines