🐿️Ben Gamble🦯

7.6K posts

🐿️Ben Gamble🦯 banner
🐿️Ben Gamble🦯

🐿️Ben Gamble🦯

@BenGamble7

Field CTO @ververicadata Tech sommelier & AI Whisperer Always a GameDev 🎮 @ ❤️ Mostly blind🦯, He/Him, All opinions my own

England, United Kingdom Katılım Haziran 2013
3.5K Takip Edilen1.5K Takipçiler
🐿️Ben Gamble🦯 retweetledi
Serious Engine Aesthetics
Serious Engine Aesthetics@serious_engine·
Happy 25th anniversary to Serious Sam: The First Encounter! 💣 Released on March 21, 2001, this legend blew up the gaming world. Still the most serious fun ever. Happy birthday, Sam, and congrats to all the devs & fans around the world!🎉💥 #SeriousSam
Serious Engine Aesthetics tweet media
English
6
109
394
5.9K
Chaos
Chaos@Chaosxsilencer·
Name a game with better menu music
English
105
171
1.1K
143.7K
🐿️Ben Gamble🦯 retweetledi
David Whitney
David Whitney@david_whitney·
I did it, I finally found a way to make two entire communities hate me. Never JavasScript .NET people 🤝 People that Hate Microsoft And it's beautiful.
David Whitney tweet media
English
2
3
9
575
🐿️Ben Gamble🦯 retweetledi
Chaos
Chaos@Chaosxsilencer·
Stay as long as you like, it's a safe space.
English
98
1.2K
6.4K
244.9K
🐿️Ben Gamble🦯
🐿️Ben Gamble🦯@BenGamble7·
There's a prevailing opinion that AI code is wrote once, and read never. We've come full circle to Perl scripts.
English
1
0
3
66
🐿️Ben Gamble🦯
🐿️Ben Gamble🦯@BenGamble7·
These are the tweets i like to read about! Someone porting a game from one ancient console to another because they can!
Falco Girgis@falco_girgis

Okay goddamnit, we just ran into one of the most obscure and elusive bugs I've ever encountered working on our Ocarina of Time port for the Sega Dreamcast. It reared its ugly head while we were balls deep in the inline SH4 assembly, optimizing the game for DC... and I seriously CANNOT explain why the offending code caused an issue, even if we found a way to work around it... Are there any inline assembly or GCC compiler experts in the house? I know how obscure this shit is, but... hopefully there's someone I'm connected with who is well-versed in the dark arts... if so, have a seat and let me weave you a tale... What's the deal? Well, we're using my SH4 vector and math library, SH4ZAM, to accelerate a bunch of the math and hot routines in this port, going from N64 to DC, to improve performance, as we always do. What we have here is two slightly different versions of the exact same hand-optimized memcpy() variant routine, with the bare minimum code present for the routine to work and to reproduce the issue. It copies exactly 16 4-byte words from a source address to a destination address. We use this version ONLY to copy unaligned 4x4 matrices around in memory (cuz we can do much better with higher aligned matrices). ANYWAY. The one on the left? The working version of the code. Does its thing. Life is good. The one on the right? The original implementation... NOT A DAMN THING WRONG... except... owait, where's the minimap icons!? TOAST. The only difference between the two? The types of the pointers which we are using as input and output constraints to the same block of inline assembly. Since the two argument pointers are void*, we must cast them to something to give them a size as memory constraints for the inline ASM block. On the left, they are casted to 64-element byte array, which is legally allowed to alias any memory based on C/C++'s "strict aliasing" rules. On the right? We're using a pointer to a special typedef'd uint32_t which tells GCC that we're allowed to alias memory and break GCC's strict aliasing rules by referencing memory from such a pointer. So the constraints on the right take pointers to an array of 16 32-bit words which are allowed to be aliased as uint32_ts... I have searched everywhere I possibly could and cannot see any reason these two should not behave identically. Yeah, I'm breaking strict aliasing rules on the right, but so? That GCC aliasing attribute does properly get GCC to fuck off and allow me to carry on violating those rules perfectly fine from C and C++ code... so what's the problem here? Only thing I can even think of is that GCC's extended inline assembly blocks are not honoring the "may_alias" attribute on the typedef that we're using to refer to our source and destination memory addresses, and the whole block of inline ASM is getting optimized away for breaking strict aliasing rules when we pass a 4x4 float matrix to it? Anyone know if this is the case? Is that even documented anywhere? Anyway, this is the latest and greatest GCC version 15.2.1 toolchain, cross-compiling for the Sega Dreamcast's "SuperH4" CPU architecture. Yes, we are rocking -O3, -flto, -fipa-pta, and pretty much every optimization under the sun which is interacting with these blocks of inline ASM, further adding to the shitstorm... THOUGHTS? 😂

Cambridge, England 🇬🇧 English
0
0
2
67
🐿️Ben Gamble🦯 retweetledi
Daniel Lemire
Daniel Lemire@lemire·
Which programming language should you choose for teaching? Though many schools use Java, C#, C or C++, many others have adopted Python. The upside of Python is that it is somewhat easier to get going (helps motivation). The downside is that Python makes it harder to think about low-level issues such as data structures since everything is abstracted away. My own view on the matter, is that students should become polyglots. It is a strategic mistake to focus on a single programming language. But what about learning outcomes? Hott tells us that it does not matter. « there was no statistically significant difference in overall outcomes or struggle between students who complete their programming assignments solely in Python, solely in Java, or a combination thereof. Additionally, there was no statistically significant difference in overall scores on programming assignments, written problem sets, or quizzes from the course based on the language students chose when implementing their solutions. From these results, we conclude that providing students with a choice of programming language, including allowing students to program in a language they are more familiar with, does not appear to dramatically improve student outcomes. Additionally, the use of Python over Java (or consequently Java over Python) in an upper-level algorithms course does not improve performance overall, even though it may provide some benefit in isolated assignments. Therefore, educators need not worry about how the programming language chosen for their courses may impact student outcomes. » Hott, J. R. (2025, August). Student Outcomes When Provided Programming Language Choice in an Algorithms Course. In Proceedings of the 2025 ACM Conference on International Computing Education Research V. 2 (pp. 26-26). Hott has interesting research... engineering.virginia.edu/faculty/john-r… Coming back to what kids should learn, I largely agree with @lzsthw and his essay « AI Didn't Kill Programming, You Did ». Instead of worrying about which programming language we should use, we should turn things around and tell kids how to start a business, how to become independent from tech trends, and so forth. The very idea that you should standardize on one programming language should be a red flag. You can learn programming with anything. Start with Logo, Ada... Do it all! Heck!!! Invent your own programming language. learncodethehardway.com/blog/39-ai-did…
Daniel Lemire tweet media
English
78
47
464
75.6K
🐿️Ben Gamble🦯
🐿️Ben Gamble🦯@BenGamble7·
@sebify It's definitely the big question. I'd say that it's faster at anything that requires more than a few hundred lines of extra code to instrument, or when I can't remember the CLI commands😅 But its definitely slower at all graphics work.
Melbourn, England 🇬🇧 English
0
0
1
16
Sebastiano Mandalà
Sebastiano Mandalà@sebify·
@BenGamble7 how many times would you have been faster doing yourself though? I am carefully pondering this each time before entering any prompt
English
1
0
1
40
🐿️Ben Gamble🦯
🐿️Ben Gamble🦯@BenGamble7·
With coding agents, i spent about 2/3s of my time just telling them to debug things that not passing non functional requirements. I think most of my claude skills are just different ways to build, test &. Profile the different projects.
English
1
0
0
107
🐿️Ben Gamble🦯 retweetledi
Adam Benko
Adam Benko@benko_adam·
After 7 years of development with a friend, our space fleet strategy game Space Reign is finally out on Steam. 🚀🪐 Inspired by Homeworld and The Expanse. Command fleets or take direct control of individual ships in massive 3D space battles. #indiegame #gamedev
English
121
386
3.5K
185.7K
🐿️Ben Gamble🦯 retweetledi
Tim Sweeney
Tim Sweeney@TimSweeneyEpic·
@MathMatize Pardon but are you aware your Z buffer is full of Y?
English
15
4
175
16.3K
🐿️Ben Gamble🦯
🐿️Ben Gamble🦯@BenGamble7·
Literally every train today has had the wrong announcements on it... The idea of the Cambridge to London train talking about places on the coast turned into a fun bit of trivia when it came to trying to find the train it thought we were on. But on the underground, it's a bit more concerning.
English
0
0
1
34