@glairedaggers@peoplemaking.games avatar

glairedaggers

@glairedaggers@peoplemaking.games

Hi, I'm Hazel (or Glaire lol)
Tech & VFX artist @ SpryFox
Trans girlflux, bi, autistic, just generally gay & nerdy as hell

This profile is from a federated server and may be incomplete. Browse more on the original instance.

glairedaggers, to random
@glairedaggers@peoplemaking.games avatar

Adventures in manually parsing and loading ELF executables into a VM.... 😅

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko yeah I had to do some extra funkiness because I'm dealing with a virtual MMU here with like... Read/write/exec permissions, page alignment requirements, etc but otherwise wasn't actually that hard?

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko And tbh the MMU even simplified things because I can just map chunks of memory in to the exact virtual addresses that the elf says they should be at, and everything Just Works.

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko I'm using Unicorn Emulator for this, which has an MMU (and kind of forces me into using it lol)

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko yeah by comparison all I had to do for this elf was set the right target architecture. No ldscript shenanigans, thankfully

glairedaggers, to random
@glairedaggers@peoplemaking.games avatar

Sometimes feels like my insistence on period-accurate hardware for Halberd's "specs" is making everything harder lol

glairedaggers,
@glairedaggers@peoplemaking.games avatar

idk I guess I struggle a bit w/ trying to justify that when in reality the machine I'm describing just can't be built. Those parts don't exist, the programming manuals are gone or incomplete... "this machine can only ever exist as some layer of emulation, so why am I worrying so much about anachronism?" is a thought that keeps occurring to me.

eniko, to food
@eniko@peoplemaking.games avatar

so apparently the big secret to tasty fries is ... peanut oil. you cook em in peanut oil. or toss them in it and airfry em. that's literally all you need

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko Hm, what kind of texture do you get out of that w/ a single fry?

Frankly I've been getting really good results, texture-wise, w/ just canola oil and a triple cook method

(first a boil in water+salt+vinegar, dunked in an ice water bath to cool down, dried off thoroughly, then double fried and immediately tossed in seasoning)

glairedaggers, to gamedev
@glairedaggers@peoplemaking.games avatar

Got my OpenGLide test app running on target hardware!
Turns out I was able to revert several texture-related things because the VC4 driver supports way more GL extensions than I thought it did... 😅

#gamedev #fantasyconsole #raspberrypi #3dfx

witch_warren, to gamedev
@witch_warren@mastodon.gamedev.place avatar

-really- trying to get this done for tonight's update.

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@witch_warren looks beautiful!!

eniko, (edited ) to random
@eniko@peoplemaking.games avatar

youtube recommendations be like "would you like to watch these videos from your sub box? no? would you like to watch these videos you've already watched in the past week? no? what about these 8 year old videos you've already watched? no? well then i got nothing"

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko And then every once in a while "None of that do anything for ya? Well how about some fucking Asmongold then"

eniko, to gamedev
@eniko@peoplemaking.games avatar
glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko This may or may not have influenced me to add a similar thing to my game at a particular point, for the purpose of giving players who are aware of this trivia a 2/3 chance of seeing some alternate dialogue 😅

glairedaggers, to fanfiction
@glairedaggers@peoplemaking.games avatar

Wanted to draw more stuff in my new watercolor-esque style, so I drew a take on Lemurfeature's girl Tails! ("Mila Minute" perhaps? 😅)

eniko, to random
@eniko@peoplemaking.games avatar

Encountered a shader compiler that complained that it can't do a multiply between float and const int and like... come on! How bad does your compiler have to be that it can't handle that?

Anyway. After adding ".0" to every integer in Kitsune Tails' shaders the problem is now solved, but jesus christ

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko I love forgetting this and doing like vec3(0, 0, 0) and shader compiler goes WAIT WHERE'S THE DECIMAL WHAT DO I DO WITH THIS

eniko, to random
@eniko@peoplemaking.games avatar

you look at NES games and you're like "that doesn't look too hard, that scope looks achievable to a small modern indie team with modern gamedev tools"

and then you try to execute on it and it takes literal years because making games is actually literally impossible

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko I start working on a game, make lots of progress, think "yeah this is doable", and then just frog boil myself into making changes to the project that are more and more complicated until I suddenly realize what I've done and have to violently rescope the entire fuckin thing all at once.

glairedaggers, to gamedev
@glairedaggers@peoplemaking.games avatar

Working on text input widget. Happy with the state of it, still need to implement some stuff (like password input, clipboard, deciding if I want to support multi-line later, etc) but works pretty alright for now!

video/mp4

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@khalidabuhakmeh It's alright. Definitely need to configure some of the warnings & suggestions I get, it pesters me about a lot more than VSCode did 😅​
I mostly started using it b/c there's not a whole lot in the way of memory profiling on Linux, which I really needed to ensure that everything is GC-friendly, though started using it a little more after step & continue mysteriously stopped working in VSCode...

glairedaggers, to gamedev
@glairedaggers@peoplemaking.games avatar

Got GPU skinning & skeletal animation up and running in Praxis :)

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko I'm currently loading binary GLTF models.

The gist is that I have a hierarchy of "nodes", each of which may or may not correspond to an entry in the final bone matrix array.

To calculate the matrix that actually gets written to that array, you multiply the inverse of the node's bind pose by the current transform of the node (both relative to the skeleton root).

For a set of vertices weighted to that node, you can think of that as first un-transforming the vertices (placing those vertices at origin), then applying the bone's transform (moving them back to where the bone currently is)

For animating, I store a set of "animation channels", which stores what node the channel applies to and a set of animation curves for position, rotation, and scale (relative to the node's immediate parent). These curves are imported from the GLTF's animations.

Then each frame I just traverse the skeleton and sample each node's animation curves to determine its new local transform.

glairedaggers, to DigitalArt
@glairedaggers@peoplemaking.games avatar

Another quick n' rough bg study. Today: a city!

eniko, to random
@eniko@peoplemaking.games avatar

even though this VM for RPG world interactions i'm developing is turning out really good i still have niggling doubts that i could've done all of this way more easily in normal code without the VM parts 😞​

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko The difference between fibers and coroutines is... admittedly kind of hazy imho, it seems like the most widely accepted definition I've seen is that fibers involve an external scheduler they yield back to, whereas coroutines don't necessarily have a scheduler. But ofc in that definition you can totally just use coroutines to implement fibers by having a scheduler manage them so... eh? 🤷‍♀️

I think green threads is kinda similar to fibers but instead of cooperatively yielding back to a scheduler, they're more like code executed in a VM that an external scheduler can interrupt at any time, more like a traditional thread?

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@eniko FWIW I've seen scripting languages refer to "fibers" in situations where no scheduler is involved, so they're just basically coroutines, so some people seem to use those terms interchangeably as well.

glairedaggers, to random
@glairedaggers@peoplemaking.games avatar

Nice! It works!

Script disables input, plays song 0 in map's song array, waits for two seconds, then re-enables input.

Not easy to show it, but music playback is now decided by map scripts & in this case the same map script also disables input, waits for a second, & then re-enables input.

Screenshot of logs shown in PCSX-Redux emulator. The bottom line is "Set input enabled: 1", which was printed from the SET_INPUT_ENABLED extcall from the script.

glairedaggers, to random
@glairedaggers@peoplemaking.games avatar

Well I started out trying to put together a new bytecode-based cutscene VM and then I decided to see if I could extend it to other cases like AI scripts & now I'm writing a LISP-style parser & compiler for my VM. So uh. Hows y'alls nights going 😅

glairedaggers,
@glairedaggers@peoplemaking.games avatar

@0x0961h Honestly I was going to make it ASM like, but then I decided that a LISP-style syntax was nearly as easy to parse and a bit user friendlier!

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