@JoshJers@mastodon.gamedev.place cover
@JoshJers@mastodon.gamedev.place avatar

JoshJers

@[email protected]

I've been programming for way too long
Also sometimes I write or perform music
Mostly I talk about random bullshit
(he/him)

This profile is from a federated server and may be incomplete. View on remote instance

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random
JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

@TomF scratches "Owlman" off of the list of cool superhero ideas

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

waiting for a healthcare callback sucks because it means I can't just ignore every number I don't recognize

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

Thought I had an off-by-one bug but it's actual off by two, so even my off-by-ones are off by one

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

New rule: you shouldn't be able to post "you can use my code" with a link directly to a source file if your code is GPLed.

JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

This post brought to you by "now I have to find a completely different way to do an obvious thing because now the obvious way is technically tainted"

JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

@TomF There are definitely many people that still see it as a feature

JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

@TomF I have one patent in my name (via a previous employer) and it's so dumb

It's literally just a thing that a game developer would come up with on a random Tuesday

and now it's patented with, embarrassingly, my name on it

JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

@TomF Yeah the ones that I actually wanted to be on because they really were novel and all a part of a big invention (i.e. an audio codec) never got filed before the company shuttered

The good news, though, is I could probably just rebuild it from scratch since, ya know, never got patented. If I could just find the time/energy

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

One thing I love about doing Advent of Code each year is that my personal goal is "how quickly can my solution run, single-threaded without any SIMD fuckery"

Sometimes (like today) I get a solution that's ~150ms, then discover a way to flip the problem inside out and get to ~2.5ms

Satisfying!

@aras@mastodon.gamedev.place avatar aras , to random

Act 1: year 2018, Unity added a whole bunch of texture formats to the scripting API, including integer ones, e.g. GraphicsFormat.R16G16B16A16_UInt (https://docs.unity3d.com/2018.2/Documentation/ScriptReference/Experimental.Rendering.GraphicsFormat.R16G16B16A16_UInt.html).

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@aras Feature request: make a thing work that you supposedly already support

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

Time to work on my personal game project for a bit!

...oh sorry did I say "game project"? what I meant was "oops I've accidentally replaced like half of the C++ standard library and it keeps happening"

JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

@lritter Most recent "oops" was making my own version of Tuple because I needed a specific way to initialize it for objects that cannot be default constructed, copied, or moved, which meant, of course, all the associated helpers that go with it

Before that: Optional<T> because I wanted one that can store references and std::optional cannot (until C++26, at least)

JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

@lritter Yeah the problem with it being a standard and not a language with a single centralized tool system is that you can do stuff like "poke at the internals of the various standard implementations" but you have to do multiple versions of it because MSVC standard library is wildly different from Clang's, etc

Plus, yeah, not super composable. I've tried to write my "replacements" to be easily extendable but, ya know, they're probably not 😅

JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

@lritter one day I will finally get around to making the language I've designed and it naturally will have absolutely no problems and be perfect in every way

JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

@lritter alas, that's now how my brain works, and I already have this totally perfect design 🙃

JoshJers OP ,
@JoshJers@mastodon.gamedev.place avatar

@lritter haha to be clear I am being quite sarcastic about the perfection level 😁

@aeva@mastodon.gamedev.place avatar aeva , to random

anyone here know how to use "linux"

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@TomF @rygorous @aeva mine is so old it's not even using the full 7-bit range of keys

@aeva@mastodon.gamedev.place avatar aeva , to random

huh, neat. Scientists figured out a way to test for epigenetic changes to DNA folding to detect ME/CFS and believe they can use the same technique to develop a test for long covid as well https://www.sciencedaily.com/releases/2025/11/251102205021.htm

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@aeva Yeppppp

My cousin has it and good god I would not wish it on anyone

...and it legitimately took years (a decade)? before he was able to even find a doctor that believed it was a thing

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

It's funny how cloud computing promised "your code will run anywhere and everywhere" and instead what we got was "we put every program running on earth in a single room on the east coast of the US"

@mcc@mastodon.social avatar mcc , to random

Current gender: Purple

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@mcc dammit, here I am stuck with Apple Green

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

Wow, this person was like "fuck graphics APIs I'm going to render a triangle on-screen using only memory mapped GPU registers"

https://r500.idk.st/

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

Last night my expert typing skills led me to implement two new SIMD wrapper functions: SubAdd and AssDub

@aeva@mastodon.gamedev.place avatar aeva , to random

I got a cintiq today :D

ALT
JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@aeva Very Yes

@aeva@mastodon.gamedev.place avatar aeva , to random

i think it's cute how "supply chain attack" essentially boils down to "popular software gets installed on many machines" as both a "vulnerability" and the entire purpose of software distribution systems.

i am forever grateful that as a game developer my job mostly involves problems that are at least theoretically solvable lol

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@demofox @aeva there probably isn't a true correct solution here given the wrapping but depending on what fits the problem I'd try:

  • modulo the points to be within a standard range (around the origin?) and average those
  • find the centroid of the unwrapped points and use that as the effective origin to modulo around
@aeva@mastodon.gamedev.place avatar aeva , to random

i miss screen savers

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@aeva I was just thinking this the other day

I want some cool 4k-on-multiple-monitors capable screensavers of like space or underwater or something

@aeva@mastodon.gamedev.place avatar aeva , to random

ok dk bananaza is really good

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@aeva @lritter wait you can DO that? Huh

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@lritter @aeva speak for yourself I only have enough brain for half a contour at best*

*I definitely don't remember any of what I did to generate one of the Procyon level backgrounds but it was marching-cubes-adjacent, done in compute shader

@lritter@mastodon.gamedev.place avatar lritter , to random

control flow must die

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@lritter only forward programs never backwards

loops were a mistake

they have played us all for fools

@lisyarus@mastodon.gamedev.place avatar lisyarus , to random

Looks like 3blue1brown got hacked on the bird site and allegedly launched some tokens or whatever, and literally all the replies are "it's a scam it's a scam it's a scam", really showing the overall attitude towards crypto

+5 faith in humanity today

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@lisyarus saw the start of the post before reading your context and was like "oh no, Grant, don't" so glad to hear it's ... a very specific hack?

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@lisyarus right? It's so plausible - especially given all the LLM-related videos on the channel

@Ronflaix@mastodon.gamedev.place avatar Ronflaix , to random

Mmh, oh, this time when I compile C++ modules with MSVC and SIMD intrinsics the compiler actually works.

I gotta take some time to test that again then

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@Ronflaix I think they fixed some bugs in that a couple revs ago, I haven't had any issues on the latest version

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@Ronflaix yeah I had the same problem with asserts!

My solution is to effectively have a single header (which may include others) which has only the macros in it, and then use a (non-standard) compiler option for "always include this header at the start of every file" (there is an option for this in all 3 major compilers)

That way I get the macros and I don't have to remember to include them literally everywhere

@Ronflaix@mastodon.gamedev.place avatar Ronflaix , to random

I'd like to have the powers to amend xkcd's Compiling (303) to say instead "my overly expensive workstation might have more cores than all my family's computer reunited but the whole thing slows down to Windows 95-era computers if I dare compiling anything".

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@Ronflaix At my last job, I had to legit limit MSVC in how many projects it was allowed to compile at a time and how many compilers were allowed to run at a time (god forbid setting just the "don't run more than NumCores-2 compilers at once" setting worked system-wide and not per project like it actually does)

@futurebird@sauropods.win avatar futurebird , to random

How do I teach myself to care more about writing efficient code? Coming from math I am happy if it simply always works and if you can read it and know why. But I would like to set a better example for my students. Unlike the math profs who taught me.

Dead simple but more theoretical things like search optimization might be a place to start?

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@mcc @futurebird this is a fantastic bit of advice, and I want to add an additional flavor of efficiency: Efficiency of code readability.

Sometimes you don't need the performance of a tightly coded loop, your memory usage is fine, and it runs fast enough, but you do want to be able to understand the code in a month when you come back after forgetting all of it

@RYStorm@mastodon.gamedev.place avatar RYStorm , to random

NOOOOOOOOOOOOOOOO

UNREAL WILL BECOME Y UP

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@aeva @RYStorm now every compass has tank controls

@aeva@mastodon.gamedev.place avatar aeva , to random

what if I made a little visual programming language for my synthesizer 🤔

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@aeva yes and also let me know what cool shit you make because I also want to do this 😎

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@aeva this is literally the dream

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

Just realized with my gray hair and hatred of LLMs, I'm literally "old man yells at cloud"

@grumpygamer@mastodon.gamedev.place avatar grumpygamer , to random

I really like Python, I hate the Python ternary operator. It's like they came up with something goofy just to be different.

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@grumpygamer the one that absolutely explodes my brain every time I see it (thankfully, rarely) is the python "for/else" loop

@aeva@mastodon.gamedev.place avatar aeva , to random

I think it's neat that you can make sounds by making numbers wiggle

JoshJers ,
@JoshJers@mastodon.gamedev.place avatar

@aeva having worked in audio software, it's amazing the wide variety of accidental sounds you can make by using slightly wrong numbers

one time I managed to add a bug that caused effectively a sawtooth wave that slowly increased in volume until it was terribly loud

good times

@JoshJers@mastodon.gamedev.place avatar JoshJers , to random

Redoing my on the new server

I'm Josh Jersild, I do a lot of coding (audio and games stuff) and music work (original music and some cover videos on YouTube).

I've made a couple games (Mop of Destiny, available for free at http://mopofdestiny.com/) and Procyon (link in bio).

I've also built an NTSC/CRT emulation (https://cathoderetro.com/), and am currently working on a new game project or so whenever I have the chance.

Screenshot of a giant boss flying over a city from my game Procyon
Close-up of fire Mario from the original Super Mario Bros run through Cathode Retro, showing the detail at high resolutions
Screenshot of a beam-breathing serpent boss from Mop of Destiny

ALT