Sign in

mtthgn

@mtthgn.bsky.social
93 followers 442 following 164 posts

Maker of half-finished things. Software engineer by trade.

PostsRepliesMedia
mtthgn @mtthgn.bsky.social · 18/03/2026
Players can sense the common sizes that appear on the screen, so meta sprites can make things feel a lot more natural + less boxy. They can also lead to more efficient OBJ VRAM usage. This sprite could technically be a 64x64 sprite, but it'd take over 2x the VRAM! #gamedev #retrodev #pixelart
082
mtthgn @mtthgn.bsky.social · 18/03/2026
The GBA has fixed sprite sizes, essentially combinations of 8, 16, 32, and 64 for width and height. In order to have sprites free of these constraints, you can make "meta sprites" out of multiple sprites. This brings other challenges, like proper horizontal flipping 😅 #retrodev #gamedev #pixelart
2143
mtthgn @mtthgn.bsky.social · 17/02/2026
At a code level, I've tried to keep the interface for meta-sprites and regular sprite the same. We'll see how long this can hold true. I suspect performance bottlenecks will make me have to reason about them differently.
A screen shot showing some programming text. Two "Sprite" objects are initialized when a scene is shown. When the scene is updated, both sprites update animations. Finally, when the scene is drawn to the screen, both sprites specify where they should be drawn.

One sprite will end up taking up multiple slots in OAM, while the other takes up only one. None of this is the concern of the owner of the Sprite object.
100
mtthgn @mtthgn.bsky.social · 17/02/2026
My build process now allows me to specify whether an Aseprite file should be parsed as a regular sprite or a meta-sprite. When it's a meta-sprite, each layer is treated as a separate graphic that needs it's own spot in OAM (Object Attribute Memory). Below is how frame 2 looks in Aseprite and in OAM.
A screenshot of mGBA's "sprites" game state viewer. The Mega Man Zero "meta" sprite is taking up 5 slots in Object Attribute Memory, while the other "regular" sprite only takes up one.A screen shot of the pixel art application Aseprite, showing a Zero from "Mega Man Zero" on the canvas, and an animation timeline with many layers. Frame "2" is highlighted, and 5 visible layers have content on the frame.
140
mtthgn @mtthgn.bsky.social · 17/02/2026
Lately I've been working on being able to properly support meta-sprites in my GBA games. The term meta-sprite is a colloquial way of saying you're combining multiple sprites to represent a single entity. In the video, the mega man zero is a meta-sprite the pink blob is a regular sprite. #gamedev
193
mtthgn @mtthgn.bsky.social · 08/11/2025
It's been a while since I got to work on my game, but today I got to knock out a rough implementation of vertical scrolling! Here you can see platform snapping to an offset and different focus points for when you're in the air versus on the ground. #ScreenshotSaturday #indiedev #gamedev
1114
mtthgn @mtthgn.bsky.social · 21/09/2025
It's #ScreenShotSaturday, and I no longer use pngs for sprites! I now get all pixel information directly from aseprite files, saving me export time and less manual definitions all around :) #indiegamedev #gamedev #aseprite #pixelart #indiedev #retrodev #gbadev
0133
mtthgn @mtthgn.bsky.social · 23/08/2025
This #ScreenShotSaturday includes more than just my game running! This week, the moving platforms now move along a fixed path! I thought it'd be fun to see a bit more of the dev process, so here you can see the platform being placed via Tiled, my map editor of choice. #gamedev #indiedev #retrodev
1144
mtthgn @mtthgn.bsky.social · 16/08/2025
Today's the first #ScreenshotSaturday that I'm on time for! This week I implemented moving platforms. Thanks to @maddymakesgames.com for her amazing "Celeste & TowerFall Physics" article! The logic in my GBA game is inspired by the Solids and Actors approach. maddymakesgames.com/articles/cel...
071
mtthgn @mtthgn.bsky.social · 13/07/2025
Today I FINALLY got level switching on the GBA game implemented! Now I can conceivably make a series of levels that begin to feel like a game, rather than a sandbox. #ScreenshotSaturday #retrodev #gamedev #gba #gbadev #devlog
1317
mtthgn @mtthgn.bsky.social · 08/07/2025
Once again I continue my tradition of being late to #ScreenshotSaturday. This weekend I got multiple backgrounds working in my GBA game. I got some extra inspiration by buying some of @nauris.bsky.social's pixel art assets in their summer sale! Much better than my dev art! #GameDev
0143
mtthgn @mtthgn.bsky.social · 04/05/2025
Playing around with the GBA's affine transformations on sprites #gamedev #retrodev #screenshotsaturday
193
mtthgn @mtthgn.bsky.social · 07/04/2025
Colors for GBA games are hard. All these photos are showing the same scene rendered. The colors that emulators and FPGA devices display by default are dramatically more luminance, even when filters are applied to make it look more like the original device. #gbadev #indiedev #gamedev #solodev
A photo of a green Anologue Pocket, using the default “Analogue GBA” filter. The backround is bright and visibly purple, and the sprites colors are very crisp. A photo of a green Anologue Pocket using the “Original GBA LCD” filter. The background is dark, but details are visible. The sprite remains fully discernable, but the colors are more muted.   A photo of a pink AGB-001, showing the natu example game. The backround appears effectively black, and the sprite is hadder to make out as well.
2163
mtthgn @mtthgn.bsky.social · 07/04/2025
It's no longer #screenshotsaturday, but better late than never, right? I Spent the weekend learning Natu's new "Scenes" and "Systems" concepts. Here you can see a new version of one of Natu's examples leveraging the functionality. Two scenes instead of the original one! #gamedev #indiedev #gbadev
092
mtthgn @mtthgn.bsky.social · 22/02/2025
I've been (very) slowly working on a GBA platformer. Today, I implemented animation states, starting with just an idle state and a walking state. A small change, but it's really cool how much more "alive" it makes it feel. Animation as "the illusion of life” indeed! #screenshotsaturday #indiedev
171
mtthgn @mtthgn.bsky.social · 11/02/2025
I still think about this UI on a regular basis. #gamedev #retrogaming #ui
A screen shot of “Secret of Mana”, showcasing the game’s Ring Menu. A screen shot of “Secret of Evermore”, showcasing the game’s Ring Menu.
160
mtthgn @mtthgn.bsky.social · 09/02/2025
Red Lobster hero or we riot! #fabtcg #highseas
A Flesh and Blood card named “Nip at the Heels”, depicting a red, lobster-esque humanoid clawing a human man’s heel.
030
mtthgn @mtthgn.bsky.social · 26/01/2025
I went 5-0 at my local #FaBHunted prerelease! Here was my list. I played against a bit of everything, 1 Cendra, 1 Arakni, and then 3 Fangs to close out the event. Hunted limited was great! I can't wait to play more.
A photo of a deck of Flesh and Blood cards, showing:

- Fang
- 2x Obsidian Fire Vein
- Red Alert Visor
- Red Alert Vest
- Hand of Vengeance
- Starting Point
- Scalding Iron
- 2x Imperial Intent
- Affirm Loyalty
- Sisters of Fire
- Sizzling Steel
- Brothers of Flame
- Fire and Brimstone
- To the Point (Red)
- Pursue to the Edge of Oblivion
- 2x Pursue to the Pits of Despair
- For the Dracai
- 2x Blaze Headlong
- Compounding Anger
- Sworn Vengeance (Red)
- Cut Deep (Red)
- Hunt a Killer (Red)
- 2x Den of the Spider
- Hunt a Killer (Blue)
- Twist and Turn (Blue)
- Nip at the Heels
- Knife Through Butter (Blue)
- Trot Along
- Point of Engagement (Blue)
- Incision (Blue)
- Power Stance
- Cut Deep (Blue)
000
mtthgn @mtthgn.bsky.social · 15/12/2024
Riptide has now received his 7th expansion slot card. We’re now at 17 cards if you run playsets, meaning we’ll have LSS’ comeplete vision for the hero in only 21 set releases. I don’t know about you, but I’m real excited for the 2031 Riptide meta! #FabTCG
A card titled “Chain Reaction” from the TCG Flesh and Blood. 

It’s a yellow, zero-cost ranger trap that blocks for 3 and reads: “When this defends an attack with go again, you may turn a non/attack action card in your arsenal face-up. If you do, you may play it this turn as though it were an instant.”
040
mtthgn @mtthgn.bsky.social · 30/11/2024
I won my Skirmish today! I went undefeated with this sealed deck. If anyone tells you it’s impossible to win with Lightning heroes, double check your sealed pool just incase that’s what is best! #fabtcg
A photo of my sealed deck for Flesh and Blood’s Skirmish season 10. It’s an Aurora deck containing:

- Flash of Brilliance
- Bruised Leather
- Twinkle Toes

- Meat and Greet R
- 2x Runerager Swarm R
- 2x Lightning Surge R
- 2x Second Strike R
- Flittering Charge R
- Snuff Out
- Heaven’s Claws R
- Consuming Volition R
- Hit the High Notes R
- Hocus Pocus R
- Blast to Oblivion Y
- Arcane Cussing Y
- Consuming Volition Y
- Heaven’s Claws Y
- Hit the High Notes B
- Meat and Greet B
- Flittering Charge B
- Sigil of Deadwood B
- Sigil of Lightning
- 3x Electrostatic Discharge R
- Malefic Incantation R
- Malefic Incantation Y
- Deadwood Dirge R
- 2x Deadwood Dirge Y
120
mtthgn @mtthgn.bsky.social · 24/11/2024
I’m at my mom’s place today, and I’m trying not to think too hard about how collectible whatever I made these pogs out of was. Most likely an old Nintendo Power magazine? I’ll have to look it up.
A photo of two pogs, made from some pages of most likely a nintendo power magazine.
000