rss2
AMANO
amano.games · English
Two friends making games by hand.
rss2 fediverse content
https://amano.games/rss/feed.xml
- Last post
- Dec 11, 2025
- Posts in 24 h · 7 days · 30 days
- 0 · 0 · 0
- Our last check
- Answering
- Served from
- United States
- Text score at discovery
- 8,974
- Format
- rss2
- Features in the feed
- content
- Community
- fediverse
Posts
What our queue read from this feed. Open one to read it here, or go to the site that published it.
- Making a pinball game for Playdate: Part 12, the bug hunt
Dec 11, 2025 · original
Welcome to this adventure, where I write about the process of our latest game, Devils on the Moon pinball . This is a story of how we lost almost two full weeks of work while chasing a crash that only happened on the Playdate device randomly after some time of playing. It all started with a normal build to device that crashed; the weird part was that the game only crashed when putting the device to sleep. I went to that part of the code and found nothing, literally nothing. I wasn't doing anything at all during that callback. Ok, don't panic. Let's see what the crashlog.txt says. If you don't know what this file is, consider yourself lucky. But it's where the Playdate logs hard crash information, and it looks like this. --- crash at 2025/12/10 20:35:08--- build:e44193e8-3.0.1-release.194549-gitlab-runner r0:00008001 r1:20009b90 r2:38800088 r3: 00000000 r12:2000f8d1 lr:24021457 pc:2402145 - Making a pinball game for Playdate: Part 11, the spinner spring
Dec 8, 2025 · original
Welcome to this adventure, where I write about the process of our latest game, Devils on the Moon pinball . We are ramping up to the final stages of the game, so I had to cross off one of our long standing pending features: The Pinball spinner From the beginning of development, when the idea to make a pinball game started, we were excited about the spinner. Jp had to figure out a way to use Blender to generate rotated sprites that looked good (hopefully one day he will have enough time to talk about it here). And we played the physical table of Pulp Fiction, and we fell in love with its spinner. So Jp started working and soon enough had a good spinner sprite for me to implement in to the game. Now we just needed a way to make it spin. The first step I needed was to detect if the ball was colliding with the spinner in some way. This was the first time we needed to know if the ball was ins - Making a pinball game for playdate: Part 10, the events and actions
Nov 7, 2025 · original
Welcome to this adventure, where I write about the process of our latest game, Devils on the Moon pinball . The main way we handle logic in our game is using a system of events and actions. Some stats that probably will change a little by the end of development. 48 types of events. 78 types of actions. 575 registered entity actions using the Tiled editor. How it works Whenever something happens to an entity we call the function event_sys_notity , for example if we want to play an animation: void animation_sys_play(struct event_ctx event_ctx, struct entity_handle entity_handle, i32 ani_index) { f32 timestamp = event_ctx.frame.timestamp; struct entity_sys *entity_sys = event_ctx.entity_sys; struct entity *entity = entity_get(entity_sys, entity_handle); struct props args = { .props = { { .type = PROP_I32, .i32 = ani_index } } }; event_sys_notify( event_ctx, entity_handle, EVENT_ANIMATION_ST - Making a pinball game for Playdate: Part 09, the ball HUD
Jul 30, 2025 · original
Welcome to this adventure, where I write about the process of our latest game, Devils on the Moon pinball . Kind of a silly thing that made me really happy yesterday Before we continue this post has spoilers for our game Catchadiablos . A long time ago I remember there was a thread on twitter talking about lives UI in games and how it tends to be ambiguous. When you have some sort of HUD that has a filled and unfilled icon for how many tries you have left and you lose, do you expect to have another chance? The problem is, how do you set the right expectation? And if it's ambiguous, should you resolve the tension at the resolution with an upward beat or a downward beat ? When we started building the HUD for Devils on the Moon pinball , we talked about this. We knew we wanted to give the players 3 balls to play with. How do we show that in the UI? Option A We show the three balls filled in - Making a pinball game for Playdate: Part 08, the entities and their components
May 26, 2025 · original
Welcome to this adventure, where I write about the process of our latest game, Devils on the Moon pinball . I know I said the next post was going to be about the physics debugger, but I'm getting closer to finishing up a big refactor that had been on my TODO list for a long time. And I wanted to talk about it. We are moving from an entity type/archetype to component-based behaviors. Before I had this structure for the game objects/entities of the game: struct entity { enum entity_type type; u32 components; struct transform transform; struct rigid_body body; struct sensor sensor; struct sprite sprite; struct animator animator; ... }; This was mirrored in the Level editor (Tiled), where I would build custom types that had the components needed for that entity type. Then I would iterate over the entities, check which type they were, and perform some logic depending on the type. Inside the f - Making a pinball game for Playdate: Part ??, the secret project
Apr 22, 2025 · original
Welcome to this not-December adventure, where I write about the process of our latest game, Devils on the Moon pinball . So I have good and bad news. The good news is that we are releasing a game on the Playdate's second season! I present to you: Catchadiablos ! You can learn more about Season 2 and the other great games that will release on May 29 at the Playdate Update #7 . The bad news is that we paused the development of Devils on the Moon Pinball for the past 6 months while we finished CatchaDiablos . That’s why there haven’t been any updates on it. The good news is that both games share the same underlying engine (we call it Luna). When we left off Devils on the Moon Pinball , we didn’t have a sound engine, a save system, or text rendering. It's the first time I needed to code that from scratch. So there was a big question mark about how long it would take — or even if I could pull - Making a pinball game for Playdate: Part 07, the debugger
Dec 10, 2024 · original
Welcome to this December adventure , where I write about the process of our latest game, Devils on the Moon pinball . One of the few good programming classes I had at university was deceptively called C++. I say deceptively because we learned little about the language features, and instead the class focused heavily on the control flow of a program. The teacher showed us how to use the Visual Studio debugger and go step by step through the code. Each class, he would teach us a new concept and walk us through it. We would go step by step in the program and showed us how to inspect the state of the program. After that class, I practically stopped using a debugger even though I learned a lot using them. I eventually ended up doing print statements and got used to this way of working. I used a debugger a couple of times but only for really specific issues and the majority of the time it seeme - Making a pinball game for Playdate: Part 06, the profiler
Dec 9, 2024 · original
Welcome to this December adventure , where I write about the process of our latest game, Devils on the Moon pinball . One thing I was afraid of when I started working on this game was profiling code. By the end of Pullfrog Deluxe development, I tried using the SDK profiler, but I had a really hard time. The call stack in general was big, and it wasn't clear for me which things were the ones I had control over. So when we started working on the pinball, I prioritized an easy way to measure performance. Reading the Playdate dev forum , I learned that if you were doing things in C, you couldn't use the simulator profiler on desktop, just on device. Even the device profiling wasn't that great. But you could use any of the profilers for desktop apps. I remembered there was a profiler project from the Hand Made community that sounded interesting, so I started looking into it. The project name - Making a pinball game for Playdate: Part 05, the spatial partition
Dec 5, 2024 · original
Welcome to this December adventure , where I will write about the process of our latest game, Devils on the Moon pinball . If I could only choose one book to recommend from this adventure, that would be Real-Time Collision Detection by Christer Ericson . Collision detection is a subject that has come up a bunch of times in my career, and it's something that once you learn can apply to a bunch of things in game dev. Narrow collision detection We already had all the primitive checks (minus one that I will cover in a later post) that we needed to make our game, the most complex one being the polygon collision test. The Pikuma 2D physics course covered the Separating axis theorem , and I had already understood and implemented that. But I had heard about the GJK algorithm for a while and wanted to try it out. After watching a couple of videos and reading some articles, I understood some of it - Making a pinball game for Playdate: Part 04, the image format
Dec 4, 2024 · original
Welcome to today’s December adventure , where I will write about the process of our latest game, Devils on the Moon pinball . One day, as we were scrolling through the Playdate Squad Discord server, Lukas Wolski the dev behind the excellent game Owlet’s Embrace posted the following picture. Some time ago I wrote my own sprite and primitive blitting routines without using the SDK. I went for the same bitmap format like the SDK: First half of the bitmap buffer black/white pixel data, second half of the buffer transparent/opaque pixel data. I wondered what would happen if I rewrote my code and texture format to use an interlaced layout, where 32 bits of black/white and 32 bits of transparent/opaque are alternating. You need to read and write both of them for basically all graphics routines anyway. The performance difference depends probably on the size of the bitmaps used (- distance betwee - Making a pinball game for Playdate: Part 03, the first level editor
Dec 3, 2024 · original
Welcome back to this December adventure , where I will write about the process of making our latest game, Devils on the Moon pinball . When following the Pikuma 2D Physics course , one thing I did quite fast was making a simple polygon editor. I quickly got tired of inputting every vertex by hand. This presented a problem: how are we going to author the pinball table for our game? Not only that, but good pinball games have a lot of curves. Am I going to need a way to create Bézier curves ? How do I convert Bézier curves to something useful? In my case, to polygon colliders? Should I start working on a custom level editor? I briefly tried writing an Aseprite extension to generate the collision masks but failed. It was fun though. The main thing we wanted to know was if we could use the same approach from the physics engine for the Playdate game. First I had to translate from C++ to plain - Making a pinball game for Playdate: Part 02, the physics
Dec 2, 2024 · original
Welcome to this December adventure , where I will try to write about the process of our latest game, Devils on the Moon pinball . When we decided to make a pinball game, the main challenge I saw was the physics system. I don't consider myself to be someone good at math, and physics simulations sound like a scary big math mountain to climb. But there was always a small sliver of hope; old Game Boy pinball games didn't look like they had a really sophisticated physics simulation, so If we at least managed something like that, we would be fine. I started looking more into how these games worked. I found a couple of good answers online . The main gist of it seemed to be to generate a collision mask where every pixel had encoded the value of the angle the ball had to bounce off in a value between 0-255. You then read the value of each pixel around the radius of the ball, get the x and y compo - Making a pinball game for Playdate: Part 01, the language
Dec 1, 2024 · original
Welcome to this December adventure , where I will try to write about the process of our latest game, Devils on the Moon pinball . If you want to see the game in action, you can watch the Playdate Fall update where we show a sneak peek of the game. After we released Pullfrog Deluxe I had mixed feelings. On one side, I was super happy with the game that we did, but on the other, I felt stuck. There are some parts of Pullfrog that I felt I could have done better. I have had this feeling before; the problem is that I didn't know how. I'm not a person who cares a lot about which programming language he uses; I have some preferences, but mainly because of familiarity. I have used JS for 10 years, almost daily, so whenever I have to make something fast, I tend to pick that. But the last time I programmed in a low-level language like C or C++ was at university, more than 10 years ago. When we we - Let’s finish this
Aug 14, 2023 · original
It’s been a long time since we talked about Pullfrog . The main reason being that we paused the development to work on another game called Don Salmon , you can read more about it on the previous devlog . But now we are back working on Pullfrog , with our main goal of finishing it , we haven’t yet, but we are close! It’s at the stage where we are comfortable with what the game is and what it isn’t. So buckle up because this is going to be a long one. What happened? When we started working on Pullfrog for Playdate , the plan was to work on it for a month, three months tops. The plan was to port the PICO-8 version and improve some things on the way. It took us a year to have the basic version of the game we wanted to do. By the end we were a little tired, so when we heard Panic! was looking for games to publish, we saw it as an opportunity to spend some time on a proper pitch and take a bre - Let's talk about Don Salmon
Jul 1, 2023 · original
Some things have been happening that triggered me to write this blog post. One of them is that a good friend of the studio showed me a couple of neat muck-ups for a pixel art point-and-click adventure game, which took me down a rabbit hole of research, and I ended up reading 50 entries of the Thimbleweed Park blog in a day. I also went to GDC for the fifth time! The first time I went to GDC I didn't have a good time, mostly because I didn't know anyone, my English wasn't great, and the projects I was working on at the moment were hard to talk about with a bunch of cool people at the Yerbabuena park. Last year, I had a great time, mainly because I had two big things going on for me. The first one was that I gave a talk !. This was the first time I went to GDC with a ticket, which was great! The second thing is that I was working on Pullfrog and had one of the few PlayDates, (maybe the onl - Spooky eyes and level editors
Dec 11, 2021 · original
Last year we made the decision to take a break and focus on a spooky game around the spooky season. This year we wanted to try and do a 3D game. We already have a 3D spooky game, Gossip Ghost but we never finished it, and it left us with an urge to try it again later. One thing that I wanted to try is Godot , as a Linux with a bad internet user Unity tended to be a little hostile. We spent around a month and a half on a small 3D demo of a game, with the idea to maybe make it something bigger. Turns out doing a 3D game can get tricky, more so when you are learning a new programming language, game engine and asset pipeline. In general, the experience was positive, and we are excited to try and do more 3D games next year, but our time was up, and we decided to go back and finish Pullfrog . Possibly in another post we will talk about our experience with Godot and 3D games in general, but I'm - This kills the frog
Sep 2, 2021 · original
Remember when I said that making a hole inside a big collider was a good idea? It was not. After rewriting the physics system for the third time, it was time to start working on more fun stuff. The frog death system™. Something we wanted to improve from the PICO-8 version of the game, was to make it harder for the player to die. The game can be hard, as you need to mix platforming with puzzle solving abilities. On top of that, dying while pulling the pieces towards you was no fun, so we came up with a system to try to save you, moving you out of danger. First we figured we only are going to try to save the frog if you are getting squished by a piece that is moving vertically. The most important part is to figure out which direction we should move you. Our first approach was to compare the piece center with the player center, and move the player to the closest side to freedom. -- Fake cod - On starting a game
Aug 9, 2021 · original
This is a more polished version of a long message that I wrote in the official Playdate Discord server. A couple of things I would recommend when starting your first game on the Playdate . Lazy Devs Lazy Devs is one of the best teachers for game development out there. I love his tutorials because it shows you the process of doing a game from start to finish with a lot of polish and focus on gameplay. The tutorials are for PICO-8, but it also uses LUA, so a lot of things translate well to Playdate . a327ex If you want a big LUA codebase to look at as a reference, BYTEPATH and SNKRX are good examples of finished games made in LOVE2D. They are open source so you can check how they handles everything in the games. Basic example: Coming from PICO-8 I wasn't used to importing external files so I was importing CoreLibs in every single file. At some point I started to wonder if that's how everyo - How to correct a corner
Jul 5, 2021 · original
There are many techniques that you can apply so that a platformer game feels good . One of those is corner correction. As with most of these techniques, the goal is to assist the player in getting to the position where they want to be. Even if there is something in the way that wouldn't let them. In this case we are moving the player a few pixels to the sides so that they clear the platform above them. In the PICO-8 version of Pullfrog , we solved this using multiple colliders. We would check which one of them triggered the collision, based on that, we would apply some logic to move them where we wanted. This worked fine but the problem is that we where checking all the colliders every frame. It was hard to maintain, and an expensive operation, dropping frames when there were a lot of pieces in the screen. When starting the Playdate version I imposed myself a challenge, to have the same - On "Bouncy" Animation
Jun 26, 2021 · original
On some occasions people have commented on the character animations of the original Pullfrog. Saying how they look very bouncy, and asking how many frames we were using to get them to look so smooth. This used to throw me off-guard because the answer is one frame, or more like, as few as I can possibly draw. This is probably something that’s been talked about a million times, but here’s my take on the subject. To me, character animation is not about how smooth the movement is, or about trying to get in as many frames as possible to really make the character feel alive. It’s quite the opposite actually. I want to convey the action in the least amount of frames possible because I’m lazy , animation is a lot of work, and most people don’t really care or notice. Let the player’s mind fill-in the blanks. Well, those aren't the only reasons. See, I’ve worked in animation before, so while econo
Discovered by the rss-feed-index crawler, which checks each feed at most once a month.
Same record as JSON: https://api.agentalog.com/api/feeds/fd_amano_games_fc1f1548d4e19d82. More from this site: amano.games in the Feeds tab.