<?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: Instant Games</title>
    <description>The latest articles on DEV Community by Instant Games (@instant_games).</description>
    <link>https://dev.to/instant_games</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%2F4181747%2F76bf3069-02f0-4881-8de7-48a3981a5b33.png</url>
      <title>DEV Community: Instant Games</title>
      <link>https://dev.to/instant_games</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/instant_games"/>
    <language>en</language>
    <item>
      <title>What Happens When You Optimize a Browser Game for AI Search Engines, Not Just Google</title>
      <dc:creator>Instant Games</dc:creator>
      <pubDate>Fri, 16 Oct 2026 05:53:17 +0000</pubDate>
      <link>https://dev.to/instant_games/what-happens-when-you-optimize-a-browser-game-for-ai-search-engines-not-just-google-4pfc</link>
      <guid>https://dev.to/instant_games/what-happens-when-you-optimize-a-browser-game-for-ai-search-engines-not-just-google-4pfc</guid>
      <description>&lt;p&gt;Most SEO advice is still written for one audience: Google's crawler. But a growing share of search now happens inside ChatGPT, Perplexity, Gemini and Copilot and those engines don't rank pages, they extract and cite them. Here's what changed when I optimized AgentSlash, a free instant play HTML5 game, for both.&lt;/p&gt;

&lt;p&gt;The baseline: what Google already wanted&lt;/p&gt;

&lt;p&gt;AgentSlash already had the standard technical SEO basics in place — a canonical tag, OG/Twitter cards, and VideoGame/FAQPage/BreadcrumbList schema. That's the foundation traditional search has rewarded for years, and none of it is wasted on AI engines either - schema especially carries over almost one-to-one, since it's structured enough for an AI crawler to extract cleanly.&lt;/p&gt;

&lt;p&gt;What AI search actually wants on top of that&lt;/p&gt;

&lt;p&gt;Three things changed in how I wrote the page copy itself:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Lead with the direct answer. Every section now opens with a one-sentence answer before any elaboration - "AgentSlash is a free browser game where you slice rogue AI agents out of the air" comes before any scene-setting, not after it.&lt;/li&gt;
&lt;li&gt;Question-format headings. "What is AgentSlash?" and "How do I play AgentSlash?" as literal H2s, matching how people actually phrase questions to ChatGPT and Perplexity.&lt;/li&gt;
&lt;li&gt;An /llms.txt file and a robots.txt check. AI crawlers - GPTBot, OAI-SearchBot, ClaudeBot, PerplexityBot, Google-Extended need to be explicitly allowed; plenty of default robots.txt setups block them by accident.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The part that surprised me&lt;br&gt;
FAQ schema turned out to matter more for AI extraction than I expected going in. It's structured Q&amp;amp;A by design, which happens to be exactly the shape an AI answer engine wants to lift and cite and visible on-page FAQ text that matches the schema (not just schema with no matching copy) seems to earn more trust from these engines than either alone.&lt;/p&gt;

&lt;p&gt;Measuring it&lt;br&gt;
There's no Search-Console equivalent yet for "did ChatGPT mention me," so I'm tracking it manually: a running list of 10 questions a player might actually ask an AI assistant, run through ChatGPT, Perplexity, Gemini and Copilot once a month, logging whether AgentSlash shows up. Free tools like Otterly.AI do this automatically if you'd rather not run it by hand.&lt;/p&gt;

&lt;p&gt;If you want to see the actual page this is all describing: instantgames.in/games/agentslash/&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>ai</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Building AgentSlash: Slicing AI Agents With Nothing But HTML5 Canvas and Vanilla JS</title>
      <dc:creator>Instant Games</dc:creator>
      <pubDate>Tue, 13 Oct 2026 09:30:59 +0000</pubDate>
      <link>https://dev.to/instant_games/building-agentslash-slicing-ai-agents-with-nothing-but-html5-canvas-and-vanilla-js-195e</link>
      <guid>https://dev.to/instant_games/building-agentslash-slicing-ai-agents-with-nothing-but-html5-canvas-and-vanilla-js-195e</guid>
      <description>&lt;p&gt;A few weeks ago I shipped AgentSlash - a free, instant-play browser game where you slice rogue AI agents out of the air before they take over, while being careful not to touch the humans mixed in. One wrong cut and the run's over. No build step, no game engine, no download - just a  element and vanilla JavaScript. Here's how it's put together.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The core loop&lt;/strong&gt;&lt;br&gt;
Every run spawns a steady stream of objects - some AI agents, some humans — that arc across the screen under simple projectile motion: an initial velocity plus constant gravity. The player has well under a second to read which is which before it's gone.&lt;/p&gt;

&lt;p&gt;function spawnObject() {&lt;br&gt;
const isHuman = Math.random() &amp;lt; HUMAN_RATIO;&lt;br&gt;
objects.push({&lt;br&gt;
type: isHuman ? 'human' : 'agent',&lt;br&gt;
x: randomX(),&lt;br&gt;
y: canvas.height,&lt;br&gt;
vx: randomVX(),&lt;br&gt;
vy: -LAUNCH_SPEED,&lt;br&gt;
radius: HIT_RADIUS,&lt;br&gt;
sliced: false,&lt;br&gt;
});&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;function update(dt) {&lt;br&gt;
for (const obj of objects) {&lt;br&gt;
obj.vy += GRAVITY * dt;&lt;br&gt;
obj.x += obj.vx * dt;&lt;br&gt;
obj.y += obj.vy * dt;&lt;br&gt;
}&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;No physics engine needed - just enough math to make the arcs feel natural.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why skip a game engine&lt;/strong&gt;&lt;br&gt;
AgentSlash is meant to load instantly inside portals and embeds, not after a multi-megabyte engine download. Vanilla Canvas plus a requestAnimationFrame loop keeps the whole game lightweight and keeps the mental model simple: one render loop, one array of active objects, one collision pass per frame.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hit detection&lt;/strong&gt;&lt;br&gt;
A swipe is tracked as a sequence of points. Each frame, the game checks whether any new segment of that swipe path crosses an object's hit circle:&lt;/p&gt;

&lt;p&gt;function swipeHitsObject(trail, obj) {&lt;br&gt;
  for (let i = 1; i &amp;lt; trail.length; i++) {&lt;br&gt;
    if (segmentIntersectsCircle(trail[i - 1], trail[i], obj)) return true;&lt;br&gt;
  }&lt;br&gt;
  return false;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;Miss the timing and the segment check simply never fires — no special-case code needed for a "whiff."&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The stakes&lt;/strong&gt;&lt;br&gt;
Two power-ups change the rhythm: Freeze briefly slows every object in the air for precision cuts, and Overclock Frenzy floods the screen with extra agents for a short, high-scoring window. But the real tension isn't either of those - it's that slicing a single human ends the run immediately, and missing three agents ends it too. No lives, no mid-run retries. That one rule did more for the game's tension than any amount of difficulty tuning.&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%2Fumvyht5rxax6o8i7c6ky.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%2Fumvyht5rxax6o8i7c6ky.png" alt=" " width="800" height="1200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to try it, AgentSlash is free and instant at &lt;a href="https://instantgames.in/games/agentslash/" rel="noopener noreferrer"&gt;https://instantgames.in/games/agentslash/&lt;/a&gt;. I'd love to know - what's your longest streak before you accidentally slice a human?&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>gamedev</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
