Posts
1157
Following
123
Followers
142
of the @kitsunecafe@tech.lgbt notoriety

"what a fascinating yet quietly terrifying being neofox_pleading" @kirakira@furry.engineer

eli, vampire kitsune

Edited 7 months ago

@vivi aaa this seems perfect neofox_melt_sob_heart i’m not sure if you’re familiar much at all with C#, but it gives me the impression that methods are implemented kinda analogously to C#’s extension methods? where they’re actually static methods which are implicitly given the target object as the first parameter when called with dot notation? (the target is identified by the this Moss self part in my example below)

public static bool IsMoss(this Moss self) {
  return true;
}

var vivi = new Moss();
if (vivi.isMoss()) {
  vivi.hold(duration = PositiveInfinity);
}
1
0
1

@rowan yeah this is kinda what Kotlin value classes do. for instance like the example in the documentation i linked, you can create a wrapper value class Password(val backing: String) which wraps over a String, and you can define functions as members of the Password class like fun printObscured(withChar: Char = '•') = times(backing.length) { print(withChar) }.. in compiled code, except for cases where the value class is required dynamically (like in in-position of a function i.e. fun foo(takes: Password), Password does not technically exist at all and that printObscured function actually ends up just being compiled down to something like (non-member function) fun printObscured(string: String, withChar: Char = '•') = times(string.length) { print(withChar) } by the compiler, and calls to it (nor general constructor calls like val myPassword: Password = Password("password1234") do not literally create an instance of the Password class when instantiated, just the backing instance i.e. val myPassword: String = "password1234". "boxing" and "unboxing" so to speak, happen opaquely and without additional verbose burden on the programmer,,
Anyways it's really cool sorry for kotlin infodumping neofox_floof_happy

1
1
1

angy about furi again neofox_angry

0
0
2

the most egregious example of this fumbling was the ending of the game when Make This Right is featured. i cannot tell you the fucking noises i made when i heard this song start playing in the game. unhinged is putting it lightly

but the problem is that the song cuts in and out three separate times as the game transitions from gameplay to cutscene, awkwardly stopping and starting the song. it completely kills all of the tension and build up that the song has. by the time the fighting actually happens, i was already completely frustrated with how often they’d staggered the pacing and interrupted the music. they could have literally cut 95% of the talking and all of the cutscenes in favor of something less intrusive and it would have been so much more emotional and impactful

1
0
1

eli, vampire kitsune

Edited 7 months ago

like dont get me wrong, the game is fine. it’s fun, the aesthetic is cool, but there were just so many times when the music was backseated and fumbled in awkward ways for the sake of highlighting the story or some cutscene and it’s fucking tragic. i feel like if the game had handled the music with more care, that game could have gone from awkward but pretty fun to goty / fav of all time for me. all they had to do was really pay attention how strong the soundtrack was and use that to their advantage as much as they possibly could – even if that meant cutting cutscenes and dialogue

1
0
1

Furi’s development studio (The Game Bakers) struck gold with that OST and gold leafed a hotdog with it neofox_melt_sob

1
1
3

seriously? the toxic avenger, carpenter brut, lorn, and danger on the same fucking project???? neofox_melt_sob_heart neofox_melt_sob_heart neofox_melt_sob_heart neofox_melt_sob_heart neofox_melt_sob_heart

1
0
0

i am also once again remembering the incredibly conflicted and ambivalent feelings i have for that game that well up each time i hear how incredible this soundtrack is

1
0
1

eli, vampire kitsune

i am once again remembering how good the Furi (2016) OST is

1
0
1

@vivi i could do this with proxies in javascript but in my specific example they’ll be used in the hot path (renderer system) so the performance implications make them unusable

0
0
0

You're fluffy, pettable and living in the forest? You may be a moss sparkles_green

0
2
0
random no-context anime opinions
Show content

I absolutely loved the twisty convoluted battle-of-wits logic in Death Note (even though of course it would be very impractical in a real life battle of wits) and in theory I feel like Kaguya-sama’s comedy spin on it is actually really clever because it’s just as entertaining and it’s funny and it’s good satire. but omg as a former Gifted Kid™, it is way too real for me lol. I can’t watch it at all - it hurts

also I tried Code Geass because I had heard that it had similar battle of wits stuff as in Death Note, but the problem is that they handwave all of the clever stuff instead of showing how the characters are being clever. it’s just like “suddenly, Guy Protagonist has an army of mechs because he’s smart or something. don’t think about it”

strangely enough, I felt like No Game No Life (sexualized loli warning for that show btw) did a better job of giving me that same feeling of watching clever plots unfold, where I need to pause the video and think about things to be able to even follow it lol. I feel like the people who write NGNL are really nerdy about mathematically breaking down games using stuff like game theory and it shows and I’ve learned (and then probably forgotten) lots of cool stuff from that show

2
1
3

eli, vampire kitsune

Edited 7 months ago

@vivi i find myself wanting to reach for classes in Javascript as thin wrappers, but it’s really hard to unwrap them. valueOf() works implicitly when doing an operation with another primitive, but that’s often not enough. rust can kinda do this with stuff like the newtype pattern with impl AsRef and From/Into. that generally does what i want

as a specific use case that i have right now, i’d love to wrap WebGL/WebGPU stuff in helper classes for myself and be able to pass them around as if they were their inner values, but also give myself a way to deal with them in fewer than 716 calls to do a single useful thing

2
0
1

@vivi i haven’t read all of this documentation yet (and i’m also not super familiar with kotlin) but this actually seems perfect! the idea of a lightweight wrapper class to provide domain specific context / methods / computed values (and maybe even share the same identity as the inner value, or be easily coercible) is ideal

1
0
0

eli, vampire kitsune

i think the idea of a wrapper class should have more first class support in languages

inheritance: hey, i-

no

1
1
4

@vivi moss will continue

1
1
2

@vv0ltz me playing tokyo xtreme racer (2025) neofox_melt_sob_heart

1
0
1

oh to love racing games and being anti car at the same time…

2
1
1

i wish graceful failure was a more common software philosophy

0
2
5
Show older