<?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: SpicyMozzie</title>
    <description>The latest articles on DEV Community by SpicyMozzie (@zi_wen_cbcc4285613dd3a4cd).</description>
    <link>https://dev.to/zi_wen_cbcc4285613dd3a4cd</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%2F4207633%2F3d280cb8-1a8a-4b1f-9c98-bbc546f50888.jpg</url>
      <title>DEV Community: SpicyMozzie</title>
      <link>https://dev.to/zi_wen_cbcc4285613dd3a4cd</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/zi_wen_cbcc4285613dd3a4cd"/>
    <language>en</language>
    <item>
      <title>From AI Video to Game-Ready Sprites in Minutes — No Drawing Required</title>
      <dc:creator>SpicyMozzie</dc:creator>
      <pubDate>Tue, 27 Oct 2026 13:36:00 +0000</pubDate>
      <link>https://dev.to/zi_wen_cbcc4285613dd3a4cd/from-ai-video-to-game-ready-sprites-in-minutes-no-drawing-required-4o3b</link>
      <guid>https://dev.to/zi_wen_cbcc4285613dd3a4cd/from-ai-video-to-game-ready-sprites-in-minutes-no-drawing-required-4o3b</guid>
      <description>&lt;p&gt;Making an indie game, most things you can figure out eventually: you can learn to code and write your own scripts, and whatever software you can't work out already has a YouTube tutorial somewhere. Art is where that stops working — the wall most people quit at.&lt;/p&gt;

&lt;p&gt;Character animation especially: idle, walk, run, jump, attack — a dozen frames each at minimum, sometimes several dozen. And if you can't draw, there's no obvious way in.&lt;/p&gt;

&lt;p&gt;There's a different route now. Generate the animation as AI video, then run it through a browser tool that turns it into sprite frames your engine can actually read. No drawing tablet, no Photoshop, nothing to install.&lt;/p&gt;

&lt;p&gt;Here's the whole workflow.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 1 — Lock the style, generate your base art
&lt;/h2&gt;

&lt;p&gt;Start by finding an art style you like and using it as reference. Not sure what prompt to write? Skip the guesswork: hand a reference image to an AI assistant, describe the character you want in plain language, and let it hand you a prompt back.&lt;/p&gt;

&lt;p&gt;Two things here save you a lot of pain later:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Use a flat solid background.&lt;/strong&gt; Green, blue or red for opaque assets; black for semi-transparent ones like skill VFX. Keying gets dramatically easier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pull the camera back.&lt;/strong&gt; Ask for the character to occupy less of the frame, so it has room to move once it animates.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 2 — Generate the animation video
&lt;/h2&gt;

&lt;p&gt;Feed that flat-background image in as a reference image and let the AI animate it. Any image-to-video model can handle this, so use whichever one you're already comfortable with.&lt;/p&gt;

&lt;p&gt;One thing worth spelling out in the prompt: &lt;strong&gt;keep the camera locked and the background color unchanged.&lt;/strong&gt; A drifting camera or a shifting backdrop will wreck the keying step.&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%2F7ncfe8ulqhtfkhu1ls1s.png" 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%2F7ncfe8ulqhtfkhu1ls1s.png" alt=" " width="799" height="233"&gt;&lt;/a&gt;&lt;br&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%2Fx2na69rtn0sneltdnpq1.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%2Fx2na69rtn0sneltdnpq1.jpg" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;br&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%2Fj4xo1bl3xwdai7r9jqt5.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%2Fj4xo1bl3xwdai7r9jqt5.jpg" alt=" " width="800" height="399"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ta5z6c7fa1jirh8ul7v.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1ta5z6c7fa1jirh8ul7v.gif" alt=" " width="512" height="512"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point your character moves. What you still need is a transparent-background PNG sequence or a sprite sheet — something a game engine can import. That's where FramePacker comes in.&lt;/p&gt;




&lt;h2&gt;
  
  
  Step 3 — Turn the video into a sprite sheet with FramePacker
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Extract frames
&lt;/h3&gt;

&lt;p&gt;Open FramePacker, load the video, pick the time range you want, set a frame count, hit extract. More frames means smoother motion, and also more images to wrangle. It's a tradeoff, not a free win.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  2. Remove the background (two different approaches)
&lt;/h3&gt;

&lt;p&gt;Open any single frame, click &lt;strong&gt;Color swap&lt;/strong&gt;, then click the background in the image to drop into preview mode. From there, the settings depend on what kind of asset you're dealing with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For fully opaque assets&lt;/strong&gt; — characters, monsters, props:&lt;br&gt;
Work &lt;strong&gt;Tolerance&lt;/strong&gt; and &lt;strong&gt;Edge Cleanup Boost&lt;/strong&gt; until the background is gone. If color spill is still clinging to your character's outline, switch to the &lt;strong&gt;Post-processing&lt;/strong&gt; tab and raise &lt;strong&gt;Despill Strength&lt;/strong&gt; to clean up the fringe.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8pdqpgop9meh6hzr3e64.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8pdqpgop9meh6hzr3e64.gif" alt=" " width="600" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For semi-transparent, glowing, gradient assets&lt;/strong&gt; — VFX, particles, light effects:&lt;br&gt;
Switch &lt;strong&gt;Tolerance off&lt;/strong&gt; first, then remove the background using &lt;strong&gt;Blend Recolor Strength&lt;/strong&gt;. Finish in Post-processing with &lt;strong&gt;Despill Strength&lt;/strong&gt; to strip whatever's left.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fakx8316ktcy88fugmqq1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fakx8316ktcy88fugmqq1.gif" alt=" " width="600" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Apply to every frame in one click
&lt;/h3&gt;

&lt;p&gt;Once a single frame looks right — background gone, watermark cut out with the rectangle tool — hit &lt;strong&gt;Apply All&lt;/strong&gt;. Every frame gets the same treatment. Twenty frames, two hundred frames, it doesn't matter. You're not doing this by hand.&lt;/p&gt;

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

&lt;p&gt;Worth knowing: batch apply works by replaying your edit actions across the frames. That's perfect for background removal, where precision demands are forgiving — but it isn't a pixel-perfect clone of your edit. So once it's done, scroll the frame list and check for stragglers. Got two or three bad frames? Open them individually and nudge them.&lt;/p&gt;

&lt;p&gt;If the transparent edges look a little harsh, add a pass of &lt;strong&gt;Soften&lt;/strong&gt; — again, edit one frame, apply to all — to smooth the seam between opaque and transparent pixels.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Organize tab — decide what actually ships
&lt;/h3&gt;

&lt;p&gt;When editing's done, move to the &lt;strong&gt;Organize&lt;/strong&gt; tab. It has a few automated tools for deciding which frames survive.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Find Duplicates.&lt;/strong&gt; AI-generated animation loves to hold one image across several frames, especially in the beat before or after a movement. This flags them so you can pull them out of the working set in a single click.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduce Frames.&lt;/strong&gt; Too many frames? Thin them out here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find Jump Frames.&lt;/strong&gt; On longer animations — or after a batch pass where you're not fully sure nothing got erased by accident — this pinpoints the transitions between movements, which makes over-cleaned frames easy to spot and fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find Loop Frames.&lt;/strong&gt; Hit the button, pick a loop preference (auto, prefer short, prefer long), and search. It returns several loop candidates, each scored on cycle length, smoothness, and coverage. Preview them in the built-in player; when one looks right, click &lt;strong&gt;Trim to Loop Body&lt;/strong&gt;. Everything outside the loop drops out of the working set, and you're left with a clean looping animation.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fcxpm87bzjshnt8tnpu0t.gif" alt=" " width="720" height="352"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Export the sprite sheet
&lt;/h3&gt;

&lt;p&gt;Head to export and pick &lt;strong&gt;Sprite Sheet&lt;/strong&gt;. You can set output resolution, plus the character's scale and offset within the frame.&lt;/p&gt;

&lt;p&gt;The sprite sheet settings let you define max atlas size, rows and columns, and frame padding. There's also a &lt;strong&gt;Trim Transparency&lt;/strong&gt; option that crops each frame's empty edges before packing — smaller file, tighter atlas. One catch: if you turn that on, you &lt;strong&gt;must&lt;/strong&gt; also pick a data file format.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb9xzax8z2mt0epdni4gb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fb9xzax8z2mt0epdni4gb.gif" alt=" " width="720" height="352"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2zbeycnomnudnl8n1m64.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2zbeycnomnudnl8n1m64.gif" alt=" " width="760" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That data file is what tells the engine where each frame sits on the sheet. Three options:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;JSON&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Unity (+ TexturePacker Importer)&lt;/td&gt;
&lt;td&gt;TexturePacker's generic format. Clean structure, easy to parse with your own script or third-party tooling.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;tpsheet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Godot&lt;/td&gt;
&lt;td&gt;Requires the TexturePacker Importer plugin.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;plist&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Cocos Creator&lt;/td&gt;
&lt;td&gt;The Cocos2d-x atlas standard.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  6. Reference animation overlay — a surprisingly useful feature
&lt;/h3&gt;

&lt;p&gt;Before you export, there's one more tool aimed squarely at game dev: &lt;strong&gt;reference animation comparison&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If you've built several animations for the same character — walk, run, idle — you can nominate one as the reference and overlay it while you work on the others. It answers three questions: is the character the same size and in the same position? Do poses hand off naturally between actions? Does the timing match?&lt;/p&gt;

&lt;p&gt;Overlay your idle animation on your attack animation, for instance, and you can see exactly how far off the character sits between the attack's last frame and the idle's first. Nudge scale and offset until they line up, and your character won't visibly teleport when the engine switches states.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa6ngec6tzbnhbfrmlp5s.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fa6ngec6tzbnhbfrmlp5s.gif" alt=" " width="720" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7. Export formats — pick the one that fits the job
&lt;/h3&gt;

&lt;p&gt;Sprite sheet isn't the only way out. There are seven formats, and they split by what the file has to do next: get into an engine, get shown to a person, or stay editable.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;What you get&lt;/th&gt;
&lt;th&gt;Best for&lt;/th&gt;
&lt;th&gt;Watch out for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Sprite Sheet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;One PNG atlas plus a JSON / tpsheet / plist&lt;/td&gt;
&lt;td&gt;2D engines — Unity, Godot, Cocos. One texture, fewer draw calls&lt;/td&gt;
&lt;td&gt;You &lt;strong&gt;must&lt;/strong&gt; pick a data file when you use &lt;strong&gt;Trim Transparency&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ZIP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Loose PNG frame sequence&lt;/td&gt;
&lt;td&gt;Engines or tools that want individual files; handing frames to an artist; archiving the source&lt;/td&gt;
&lt;td&gt;More files to track, and no atlas batching&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WebM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Video with an alpha channel&lt;/td&gt;
&lt;td&gt;Browser games, transparent overlays in a web UI, Godot and Unity video playback&lt;/td&gt;
&lt;td&gt;Heavier than MP4, and not every editor reads the alpha channel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;MP4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Video, no alpha&lt;/td&gt;
&lt;td&gt;Trailers, YouTube and X uploads, portfolio reels, sending a cut to a composer&lt;/td&gt;
&lt;td&gt;Lossy — don't archive your frames as MP4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;GIF&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Looping animated image&lt;/td&gt;
&lt;td&gt;Reddit, Discord, itch.io devlogs, READMEs, quick progress shares&lt;/td&gt;
&lt;td&gt;256 colors; gradients band badly and files balloon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;APNG&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Looping animated PNG with full alpha&lt;/td&gt;
&lt;td&gt;Clean transparent previews for docs and portfolios; sticker packs&lt;/td&gt;
&lt;td&gt;Bigger than GIF, and some platforms only show the first frame&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SCML&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Spriter project file&lt;/td&gt;
&lt;td&gt;Retiming, adding bones, swapping parts — anything where the animation has to stay editable&lt;/td&gt;
&lt;td&gt;Needs Spriter or a Spriter-compatible runtime&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;All of them let you set resolution, scale, and offset freely. So pick by where the file is going, not by which one sounds most technical.&lt;/p&gt;




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

&lt;p&gt;If you're building an indie game and art has been the thing standing in your way, open a browser tab and give it a try.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>gamedev</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
