<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Marlon Joseph</title>
    <description>The latest articles on DEV Community by Marlon Joseph (@jona_mike).</description>
    <link>https://dev.to/jona_mike</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3802309%2F9d8ba331-bebb-4b78-9d52-878cfa04f822.jpg</url>
      <title>DEV Community: Marlon Joseph</title>
      <link>https://dev.to/jona_mike</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jona_mike"/>
    <language>en</language>
    <item>
      <title>🚀 Building an AI Solver for a Puzzle Game Was More About UX Than AI</title>
      <dc:creator>Marlon Joseph</dc:creator>
      <pubDate>Thu, 16 Jul 2026 20:16:13 +0000</pubDate>
      <link>https://dev.to/jona_mike/building-an-ai-solver-for-a-puzzle-game-was-more-about-ux-than-ai-5gm7</link>
      <guid>https://dev.to/jona_mike/building-an-ai-solver-for-a-puzzle-game-was-more-about-ux-than-ai-5gm7</guid>
      <description>&lt;p&gt;When people hear AI puzzle solver, they usually imagine the difficult part is finding the correct solution.&lt;br&gt;
After looking into a Magic Sort puzzle solver project recently, I realized something surprising.&lt;br&gt;
The hardest problem wasn't solving the puzzle.&lt;br&gt;
It was understanding what the puzzle actually looked like.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🎮 Modern Puzzle Games Aren't Static Anymore&lt;/strong&gt;&lt;br&gt;
Classic sorting puzzles are predictable.&lt;br&gt;
Modern ones introduce mechanics that completely change the board while you're playing.&lt;br&gt;
Some examples include:&lt;br&gt;
• 🔑 Hidden Keys &lt;br&gt;
• 📦 Locked Box Groups &lt;br&gt;
• 🎭 Curtain-Covered Tubes &lt;br&gt;
• 🏷️ Tag Tubes &lt;br&gt;
• 🧊 Ice Clusters &lt;br&gt;
• 🌫️ Fog Stones &lt;br&gt;
• ❓ Hidden Color Segments &lt;br&gt;
• ♻️ Refill Short Tubes &lt;br&gt;
Every one of these changes the puzzle state.&lt;br&gt;
That means a solver can't simply calculate moves from a screenshot and call it a day.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzgeg0oh06v025vj91gcg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzgeg0oh06v025vj91gcg.jpg" alt=" " width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🤖 Computer Vision Is Only Step One&lt;/strong&gt;&lt;br&gt;
The project uses a custom YOLO model to reconstruct the visible board from a screenshot.&lt;br&gt;
Once the board is detected, a heuristic search explores possible move sequences.&lt;br&gt;
Sounds straightforward...&lt;br&gt;
Until the game reveals something that wasn't visible in the original screenshot.&lt;br&gt;
At that point the solver has to stop, accept new information from the player and continue searching from the updated state.&lt;br&gt;
That hybrid approach felt much more practical than trying to guess hidden information.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;💡 The Biggest Lesson&lt;/strong&gt;&lt;br&gt;
One thing really stood out.&lt;br&gt;
Instead of chasing perfect screenshot detection, the project focuses on making corrections easy.&lt;br&gt;
When AI misses something, the player can quickly update the board and continue solving.&lt;br&gt;
That simple UX decision removes a lot of frustration.&lt;br&gt;
Sometimes the best AI experience isn't perfect automation.&lt;br&gt;
It's designing a workflow that gracefully handles imperfect predictions.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🛠️ Technologies Behind the Idea&lt;/strong&gt;&lt;br&gt;
Nothing here is particularly exotic on its own.&lt;br&gt;
The interesting part is how everything works together.&lt;br&gt;
• 🎯 YOLO for board detection &lt;br&gt;
• 🧠 Heuristic search for move planning &lt;br&gt;
• ⚛️ React / Next.js for the interface &lt;br&gt;
• 🎨 Interactive board editing &lt;br&gt;
• 🔄 State updates as the puzzle evolves &lt;br&gt;
Each component solves a different problem.&lt;br&gt;
Together they create something that feels much smarter than any individual piece.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;📚 Worth Exploring&lt;/strong&gt;&lt;br&gt;
If you're curious about the overall approach without diving into implementation details, these guides provide a good overview.&lt;/p&gt;

&lt;p&gt;🔹 How the AI Solver Works&lt;br&gt;
&lt;a href="https://aimagicsortsolver.com/guides/how-ai-solver-works" rel="noopener noreferrer"&gt;https://aimagicsortsolver.com/guides/how-ai-solver-works&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔹 Special Objects in Modern Puzzle Games&lt;br&gt;
&lt;a href="https://aimagicsortsolver.com/tag-tube-puzzles" rel="noopener noreferrer"&gt;https://aimagicsortsolver.com/tag-tube-puzzles&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;They explain the concepts behind the project while keeping the implementation itself private.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;🎯 Final Thoughts&lt;/strong&gt;&lt;br&gt;
Projects like this remind me that AI is rarely the whole product.&lt;br&gt;
A useful developer tool is usually the combination of:&lt;br&gt;
• ✅ Computer vision &lt;br&gt;
• ✅ Search algorithms &lt;br&gt;
• ✅ Clear game rules &lt;br&gt;
• ✅ Good UX &lt;br&gt;
• ✅ User feedback loops &lt;br&gt;
Remove any one of those pieces and the overall experience quickly starts to break down.&lt;br&gt;
I'd be interested to hear how others approach projects where the AI never has complete information from the start.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Finding the Right Reference Changed Everything for my Project</title>
      <dc:creator>Marlon Joseph</dc:creator>
      <pubDate>Tue, 10 Mar 2026 06:00:27 +0000</pubDate>
      <link>https://dev.to/jona_mike/finding-the-right-reference-changed-everything-for-my-project-3bom</link>
      <guid>https://dev.to/jona_mike/finding-the-right-reference-changed-everything-for-my-project-3bom</guid>
      <description>&lt;p&gt;I got hooked on &lt;strong&gt;Wood Block Puzzle&lt;/strong&gt; and eventually got frustrated enough to build a solver for it. Read the board from a screenshot, figure out where each piece fits best and show the optimal move. Sounded straightforward until I tried to plan the actual architecture.&lt;br&gt;
How do you reliably extract a game board from a phone screenshot? What should the evaluation logic prioritize, clearing lines immediately or keeping the board open for future moves? I had questions but no clear starting point.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discovering a Working Reference&lt;/strong&gt;&lt;br&gt;
I dug through &lt;strong&gt;&lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and dev forums&lt;/strong&gt; looking for grid-based puzzle solvers. Most repos were either abandoned or built for Tetris, which has gravity mechanics that don't apply here. I needed something built for a static placement game that drop pieces on a board, clear rows and columns where no time pressure applies.&lt;br&gt;
After searching through several projects, I found a working &lt;a href="https://github.com/osamamasood001/block-blast-solver" rel="noopener noreferrer"&gt;repo&lt;/a&gt; that was actively maintained. Block Blast shares the same fundamental mechanics as Wood Block Puzzle i.e grid board, shape placement, line clearing. The project even had a fully functional live version as &lt;a href="//aiblockblastsolver.com"&gt;Block Blast Solver&lt;/a&gt; with screenshot-based solving. The full pipeline was proven and running.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4i89qkg35ht00enxtj19.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4i89qkg35ht00enxtj19.jpeg" alt="Figure1. Credit:aiblockblastsolver.com" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three Things That Reshaped My Approach&lt;/strong&gt;&lt;br&gt;
Studying the codebase changed how I thought about the problem:&lt;br&gt;
&lt;strong&gt;Screenshot parsing is the real challenge.&lt;/strong&gt; &lt;br&gt;
The solver logic was surprisingly clean. The heavy lifting was in detecting the board state from screenshots as it has been trained by YOLO across multiple game themes because color variations completely break naive detection.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Smart scoring beats greedy scoring.&lt;/strong&gt; &lt;br&gt;
Instead of just maximizing immediate clears, the evaluation weighted board openness, center availability and multi-move look ahead. I adopted a similar approach for my own scoring function.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Raw detection isn't enough.&lt;/strong&gt; &lt;br&gt;
A validation layer that used grid structure to compensate for missed cell detections. Without this, small pieces get misread constantly. I would have learned this the hard way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Adapting It&lt;/strong&gt;&lt;br&gt;
Having a working reference saved me weeks as the specific game barely matters but the engineering patterns underneath are universal.&lt;br&gt;
Sometimes the smartest move in development is the same as in the game: look at the whole board before you place your first piece.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>computervision</category>
      <category>github</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>Get ready for the launch and feedback - Block Blast Solver</title>
      <dc:creator>Marlon Joseph</dc:creator>
      <pubDate>Sat, 07 Mar 2026 06:55:35 +0000</pubDate>
      <link>https://dev.to/jona_mike/get-ready-for-the-launch-and-feedback-block-blast-solver-h42</link>
      <guid>https://dev.to/jona_mike/get-ready-for-the-launch-and-feedback-block-blast-solver-h42</guid>
      <description>&lt;p&gt;Hey! I just schedule a launch of my Block Blast Solver tool on Product Hunt today March 7th, 2026 12:01 AM PST.&lt;/p&gt;

&lt;p&gt;It’s a tool that analyzes puzzle boards for block blast related games and suggests better placements to avoid dead ends.&lt;/p&gt;

&lt;p&gt;Would appreciate your feedback 🙌&lt;br&gt;
&lt;a href="https://producthunt.com/products/block-blast-solver-9" rel="noopener noreferrer"&gt;Product Hunt Launch&lt;/a&gt;&lt;/p&gt;

</description>
      <category>blockblast</category>
      <category>ai</category>
      <category>boardgame</category>
      <category>puzzles</category>
    </item>
  </channel>
</rss>
