Farbs

Farbs

@farbs.org

Game! Dev! Same Farbs, More Cat Photos: https://mastodon.social/@Farbs

262 followers236 following200 posts

Pinned

Hi there, internet friends old and new! I've been hiding on Mastodon and repeatedly reinventing my whole gamedev practice these past few years, and I thought it was about time I popped in here to see what everyone else is up to. Hello!

I left Captain Forever IO players alone for a couple of weeks and they started making ridiculous things again. Yikes.

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

That screenshot, from my remake, has five different particle effects, the manta is doing a colour cycle animation, and the player just recovered from a 10 frame colour invert flashbang. What really shows Rob's commitment to SO MUCH STUFF though is this...

Here's the same part of the sequence, in the original. Once the whole thing is put together most of it is barely even visible 🤯 I love it. There's just so. Much. Stuff.

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

So I spent today pondering changes to the Lua lexer, rebuilding my vector maths class, puzzling over garbage collection interception, and writing custom iterators. I think I can see a way out of this mess and back to making games. But first, hopefully, sleep.

The answer was object pools, but with a nice system that lets me just do things like Doodad:spawn() and self.doodads:callunsafe("draw"). One of the things I set out to learn with this is how Rob makes it seem like there's so much going on. I think the answer is: There's a lot going on.

Farbs reposted

I have no idea who Summer Eternal are, but if they're really making a licensed Red Rooster game they should hit me up ASAP to consult on it. (Red Rooster is aggressively bland Australian fast food, and I spent my teenagehood flipping their chickens across three states and territories)

I have no idea who Summer Eternal are, but if they're really making a licensed Red Rooster game they should hit me up ASAP to consult on it. (Red Rooster is aggressively bland Australian fast food, and I spent my teenagehood flipping their chickens across three states and territories)

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

So... what do I do about the 29 (yes, I counted) different depth layers in the game screens? Do I make and manage 29 object pools? Do I accumulate and sort render requests every frame? Do I use MSAA, Alpha To Coverage, and Z-Buffering? (No that would be shit). I think what I'll do is sleep on it 🙂💤

Hypnos, it seemed, had other plans. One utterly shit night of insomnia later, I've discovered the problem of efficiently rearranging hundreds of objects across dozens of overlapping collections as you iterate them is A Bit Difficult Actually.

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

As illustrated above, the very excellent Death Ray Manta has many many many layers of particles and effects and flashing doodads, and when there are that many the order you draw them in becomes rather important. But I like to render immediate rather than retained, so, uh, my tech can't do that. 😶

The title screen wasn't a problem because most of the art is on screen all the time, and drawing it all from back to front in a single function meant the code kinda matched the layout. I mostly didn't use the GameMaker approach of Objects and Sprites 'cos it was easier to blat things out in a loop.

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

Lol. I just spent the morning writing a little system for specifying game object locations via GNU Image Manipulation Program, so I could set the player spawn correctly for each stage. Then I started porting the Player class, which starts with x = room_width / 2; y = room_height / 2;

Oh hey look! I'm learning things again! Usually when I make a 2D game I'll have 3 or 4 categories of things that appear in the world - players, enemies, bullets, particles etc - and I'll create a collection for each and draw them in the order I want them to appear. That... might not work here.

It's kinda amazing that after all these years, we're still making great strides with pixel art upscaling.

I kid, obvs, but also I'm kinda enjoying playing Super Mario Bros like this. Everything is all blobby and weird.

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

Pottering along, I've hit a bit of a conundrum. One of the reasons I'm doing this is to learn where, in this game I adore and admire, the balance lies between polish and just leaving things rough and moving on. However... to do that I'm copying the game as closely as possible. So...

...in my quest to learn where to take shortcuts I'm not taking any shortcuts. So am I learning anything?! Anyway, this toot brought to you by me wondering if the player spawn is off-centre for level 3 on purpose, given it's perfectly centred for literally every other level in the game.

Shmup tracer bullet lengths! If you drew a line between the front of the bullet on one frame, and the front on the next frame, what proportion of that line should the sprite cover? Is it different when the sprite has a gradient?

I kinda love that after decades of failing to automate skills they didn't respect like diary management, education, driving, cooking, cleaning, and customer relations, the only two types of people techbros have made redundant are move fast break everything programmers and overconfident white men.

It blows my mind that the guy who designed Marble Madness went on to be the lead hardware designer for the PlayStation 4, PlayStation Vita, and the PlayStation 5, and now he's the Canadian Prime Minister 🤯

Huh. It turns out Bluesky doesn't support attachments in DMs? I guess that means I'll post stuff publicly then and leave folks to guess at the context :)

Lol at the little sword hiding in some of those shots 'cos I forgot to hide the first person weapon.

Okay peeps, I've got 4 hours of sewing ahead of me. This is one of the few times my brain is still long enough to listen to a podcast or an audiobook. What should I listen to? The bar is random interviews on Eggplant / Spelunky Showlike / Secret Life of Games. Suggestions? Recommendations?

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

I solved it by moving and rotating the camera for each one, but that means every layer of every line of text is a unique batch, which is a bit poo. Oh well. Runs fast enough. Hooray for modern (ten year old) hardware. Now on to the game itself! Except... what's that? Oh. Oh no.

I'm not quite sure what qLw means, but I'm reading it as "Hey Farbs you need to sleep". G'night!

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

So anyway, source! Rob provided it, but it's from a slightly older version and I'm picky so instead I've found a ridiculously comprehensive GameMaker decompiler - delightfully titled UndertaleModTool - and I'm using that to snoop the current Steam build instead.

Today's progress is this! I added the big chunk of text at the bottom, which updates every few seconds to show the next paragraph. The blurry effect around the edges is the result of drawing multiple layers with different rotations, which was a bit of a pain 'cos RayLib doesn't do text rotation.

I struggle with GameDev downturn gloom 'cos the road has always been littered with corpses, as far as the eye can see. I know things are worse now. But the eye can't see very far, so it becomes a large numbers comprehension problem. From the road a thousand corpses looks the same as a million.

Farbs reposted

genuinely forgot i did that lmao, also the reason i had to rewrite the entire game to get it on steam. turns out a self compiling game is indistinguishable from a virus

Farbs@farbs.org

Of course neither of these approaches are as cool as what @queenjazz.gay did with World Pole Stone Dusk: Diadem of the Pole, which not only ships with source but also with a compiler that builds the game every time you run it. Amazing. queenjazz.itch.io/world-pole-s... And also a digression, sorry.

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

Are you back? Welcome back. The other thing I'm using, as very detailed reference, is the Death Ray Manta SE source. Rob supplied the whole Game Maker Studio project file in the install folder, which is a wonderful thing to do. My tech takes a simpler approach and only ever runs from source :)

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

View full thread

Also snapping the pieces into place is satisfying, and it's relaxing to build stuff without designing it first. Anyhow, that's what I'm doing with DRM. It's not for release, but it's interesting and fun, and if I remember I'll add to this thread as it comes together! Meanwhile: Another 3D Zelda.

The tech underpinning this port is the wonderful #RayLib, on top of which I've jammed a custom lua integration and everything I need to run a Meandering Thread of Execution. I love the Meandering Thread model, and if you're curious you can learn about it here: mastodon.social/@Farbs/11267...

mastodon.socialFarbs (@Farbs@mastodon.social)Attached: 1 image Now let's get to the fun stuff! Taleteller is my first project to use what I'm calling a Meandering Thread of Execution. Most games have a single update loop (eg pictured). One or...

Question! What does a good indie gamedev website landing page look like? Are there any cool ones? Mine's out of date and also boring, so it's time for a refresh. Obvs I don't want to spend much time on it though 'cos nobody looks at these anymore...

Farbs reposted

I did some very rough calculations using the latest @gamediscoverco.bsky.social data set. Valve's lifetime revenue, since Steam launch, is roughly $100B. If Valve made $0 from every game that made $100K or less they would "lose" $0.5B, the cost of 1 mega yacht. At $1M that number is about $2B

Scott Anderson@impossible.bsky.social

Someone needs to do a rough analysis of how much it would "cost" Valve to either not take a percentage until a certain revenue threshold is hit, or reduce percentage for lower grossing games in the same tiered fashion they do for high grossing games.

🐱Hey Farbs, whatcha making? 🧔Hi! I'm making this! 😼But Farbs, that's the incredible neon laserfish shmup Death Ray Manta SE. Rob made that already. 🧔That's true, and it's very cheap so I sure hope everyone has already bought a copy. Also, I'm making it again. 😾No! Bad Farbs! I want new games!

🧔I'm making new games. Also, at night, I'm doing this. 🙀Wow! Can you explain why? And can you maintain this conversation shtick? I can do one of those things. Sometimes I like to rebuild other people's games. For me it's a bit like doing a master study, and it's a bit like a jigsaw puzzle.

Previously I've rebuilt chunks of the first Zelda game in various forms of 3D, I've made Pong a whole bunch of times, and I recently had a go at pacman. Oh and of course ROM CHECK FAIL was made from chunks of about a dozen games. Building these helps me pay attention and learn what they're doing.