<?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: Oh My Dog Team</title>
    <description>The latest articles on DEV Community by Oh My Dog Team (@ohmydog_tg).</description>
    <link>https://dev.to/ohmydog_tg</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%2F4200375%2F1edec1f9-228c-490e-829c-594ed21f31b1.png</url>
      <title>DEV Community: Oh My Dog Team</title>
      <link>https://dev.to/ohmydog_tg</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ohmydog_tg"/>
    <language>en</language>
    <item>
      <title>Designing offline progress and auto-battles for a messenger game</title>
      <dc:creator>Oh My Dog Team</dc:creator>
      <pubDate>Fri, 23 Oct 2026 02:40:34 +0000</pubDate>
      <link>https://dev.to/ohmydog_tg/designing-offline-progress-and-auto-battles-for-a-messenger-game-k3c</link>
      <guid>https://dev.to/ohmydog_tg/designing-offline-progress-and-auto-battles-for-a-messenger-game-k3c</guid>
      <description>&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%2Fg4rrdjquz0l7xn6fn1t4.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%2Fg4rrdjquz0l7xn6fn1t4.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;We make Oh My Dog!, a free idle card RPG that lives inside Telegram (&lt;a href="https://t.me/OhMyDogMobileBot" rel="noopener noreferrer"&gt;https://t.me/OhMyDogMobileBot&lt;/a&gt;, site: &lt;a href="https://ohmydog.gg" rel="noopener noreferrer"&gt;https://ohmydog.gg&lt;/a&gt;). This is a short design note on two decisions that shaped it: auto-battles and offline progress. No benchmarks or code here, only what we actually decided.&lt;/p&gt;

&lt;h2&gt;
  
  
  The constraint: sessions in a messenger are short
&lt;/h2&gt;

&lt;p&gt;People open Telegram for a moment and go back to their day. So the game should respect that: open it, collect rewards, make a couple of decisions, leave. We deliberately don't require sitting for hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-battles move skill to preparation
&lt;/h2&gt;

&lt;p&gt;Fights run automatically. That means the player's decisions happen before the fight: which heroes share a team, what gear to equip, which pets to assign. Heroes differ by role (tanks absorb damage, damage dealers hit, support keeps the team alive), so the question isn't who has the biggest number but how roles cover each other. Long boss fights need survivability; the PvP arena rewards tempo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Offline progress closes the loop
&lt;/h2&gt;

&lt;p&gt;Progress keeps accumulating while the player is away. Returning means collecting what the squad earned, then reinvesting it in levels, equipment and pets. Power comes from exactly those three sources.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not a tapper
&lt;/h2&gt;

&lt;p&gt;We ported a real RPG with progression, a story and PvP, not a tap-for-a-token clicker. Auto-battles plus offline progress let it be played in short bursts without becoming one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Content for longer sessions
&lt;/h2&gt;

&lt;p&gt;Dungeons, bosses, PvP arena, alliances and guild battles give auto-battles something to be tested against.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frictionless entry
&lt;/h2&gt;

&lt;p&gt;No download or sign-up form: press Play and the account is created and linked to Telegram automatically.&lt;/p&gt;

&lt;p&gt;Feedback from fellow developers is very welcome.&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%2Fiuvvo1y1w7g05r1dxwvj.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%2Fiuvvo1y1w7g05r1dxwvj.jpg" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>telegram</category>
      <category>gamedesign</category>
      <category>indiegame</category>
    </item>
    <item>
      <title>What we learned moving a mobile RPG from Google Play to a Telegram mini app</title>
      <dc:creator>Oh My Dog Team</dc:creator>
      <pubDate>Thu, 22 Oct 2026 11:34:22 +0000</pubDate>
      <link>https://dev.to/ohmydog_tg/what-we-learned-moving-a-mobile-rpg-from-google-play-to-a-telegram-mini-app-1i70</link>
      <guid>https://dev.to/ohmydog_tg/what-we-learned-moving-a-mobile-rpg-from-google-play-to-a-telegram-mini-app-1i70</guid>
      <description>&lt;p&gt;If you build mobile games, at some point you probably wonder what your game would look like without the store in the middle. We are a small team behind &lt;strong&gt;Oh My Dog!&lt;/strong&gt;, an idle card RPG about dog superheroes. It started life as a regular Google Play app, and today it lives inside Telegram as a mini app. This post is a developer-flavored retrospective on that move: what changed for the player, what changed for us, and where it was hard. It is not a tutorial with code. I'll stick to what we actually experienced and won't pretend to have benchmarks we don't have.&lt;/p&gt;

&lt;p&gt;Play it here: &lt;a href="https://t.me/OhMyDogMobileBot" rel="noopener noreferrer"&gt;https://t.me/OhMyDogMobileBot&lt;/a&gt; (site: &lt;a href="https://ohmydog.gg" rel="noopener noreferrer"&gt;https://ohmydog.gg&lt;/a&gt;). It is free.&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%2Fm057q2vlp681mac7z3f9.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%2Fm057q2vlp681mac7z3f9.jpg" alt="Oh My Dog! screenshot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where we started
&lt;/h2&gt;

&lt;p&gt;Oh My Dog! first shipped the classic way: a store page, an install, a registration, the usual funnel. At some point we decided we wanted a different path to the player, one without a store in the middle. Telegram is no longer just a messenger. Games live there, so we decided to try moving the project over.&lt;/p&gt;

&lt;p&gt;One constraint shaped everything: we did not want to build a "tap for a token" clicker. We were porting a real RPG, with progression, a story and PvP, and we wanted it to stay a game rather than turn into one more tapper.&lt;/p&gt;

&lt;h2&gt;
  
  
  The game, briefly, so the port makes sense
&lt;/h2&gt;

&lt;p&gt;The setting is office satire. You are a worn-out office worker who is sick of bullies at work. A talking Dog God appears and summons somewhere between 50 and 100 dog warriors to fight back. Among the heroes are Dog Father and Husky Lee, and the names are exactly the joke you think they are.&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%2F3uvkaya6l2c946tgitrf.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%2F3uvkaya6l2c946tgitrf.jpg" alt="Oh My Dog! screenshot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The core loop is idle plus card RPG:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;you collect heroes and build a squad;&lt;/li&gt;
&lt;li&gt;battles run automatically;&lt;/li&gt;
&lt;li&gt;progress keeps accumulating while you are offline;&lt;/li&gt;
&lt;li&gt;your decisions happen before the fight: who goes on the team, what equipment each hero gets, which pets are assigned.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On top of that sit a PvP arena, bosses, dungeons, alliances and guild battles.&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%2F2n9uz1egvymnvcvo7wjs.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%2F2n9uz1egvymnvcvo7wjs.jpg" alt="Oh My Dog! screenshot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Change #1: the front door
&lt;/h2&gt;

&lt;p&gt;The most visible difference for a player is the entry. On Google Play the path was: store page, download, registration. In Telegram it is: open the bot, press "Play". The account is created automatically and bound to the player's Telegram. No password, no email.&lt;/p&gt;

&lt;p&gt;From a developer's point of view this is the part I would underline. A whole category of things players used to have to do before seeing the game simply disappeared from the first minute. The game also runs wherever Telegram runs, so the same game works on a phone and on a desktop computer, and the progress is the same everywhere. When someone changes phones, the progress stays with them because it belongs to the Telegram account.&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%2Fj4yesjbuxzdx2hzh7si3.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%2Fj4yesjbuxzdx2hzh7si3.jpg" alt="Oh My Dog! screenshot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Change #2: social features feel natural in a messenger
&lt;/h2&gt;

&lt;p&gt;Alliances and guild battles existed as game features before, but inside a messenger they feel more natural. Your friends are already there. You don't have to drag them to another platform; you can just drop a link into a chat. For a game where guilds and alliances matter, that is a real structural advantage of the platform.&lt;/p&gt;

&lt;h2&gt;
  
  
  Change #3: session shape
&lt;/h2&gt;

&lt;p&gt;The idle mechanic turned out to fit Telegram very well. A typical visit looks like this: open the chat, collect what the squad earned while you were away, change the lineup or put on new equipment, level a favorite hero, feed a pet, start the next battle, and go back to what you were doing. Five minutes between calls is enough.&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%2Fdte39xmzf4kdidyxlo67.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%2Fdte39xmzf4kdidyxlo67.jpg" alt="Oh My Dog! screenshot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it was actually hard
&lt;/h2&gt;

&lt;p&gt;A port is not "press a button". Here is what we had to rethink, honestly:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;The interface for a messenger window.&lt;/strong&gt; The game had to be reconsidered for the space a messenger gives it, rather than a full-screen native app.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The first minutes of play.&lt;/strong&gt; Without a store page, screenshots and reviews doing the persuading, the first minutes of the game have to do the explaining.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Positioning.&lt;/strong&gt; Many people hear "Telegram game" and think "hamster clicker". We had to find ways to show that this is a full RPG with a squad, roles, progression, bosses and competition. That is ongoing work for us and we won't claim it is solved.&lt;/li&gt;
&lt;/ol&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%2Frjsz18tk6roaoykvs5if.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%2Frjsz18tk6roaoykvs5if.jpg" alt="Oh My Dog! screenshot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Things we deliberately kept
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Real RPG progression through levels, equipment and pets, rather than a tap counter.&lt;/li&gt;
&lt;li&gt;The humor and the story.&lt;/li&gt;
&lt;li&gt;Depth for people who stay longer: PvP arena rankings, dungeons, bosses, alliances.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Practical notes if you are considering the same move
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Decide first whether you are porting a game or wrapping a farm. We chose the game.&lt;/li&gt;
&lt;li&gt;Treat the "Play" button as your whole onboarding and think about what a player sees right after pressing it.&lt;/li&gt;
&lt;li&gt;Use the messenger's social graph: guilds and alliances are a natural fit.&lt;/li&gt;
&lt;li&gt;Think in short sessions. If a visit is meaningful in a few minutes, the platform works for you.&lt;/li&gt;
&lt;li&gt;Expect to keep iterating on the UI and the explanation of what your game is.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's next
&lt;/h2&gt;

&lt;p&gt;The game is free, and new players currently get 1000 free summons. We would love feedback from developers: what looks off, what is unclear, what would you do differently with a port like this? Questions about moving a mobile game into Telegram are very welcome in the comments, and so is criticism.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bot: &lt;a href="https://t.me/OhMyDogMobileBot" rel="noopener noreferrer"&gt;https://t.me/OhMyDogMobileBot&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Site: &lt;a href="https://ohmydog.gg" rel="noopener noreferrer"&gt;https://ohmydog.gg&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&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%2Fc95ypidp0bcbkhphx5qf.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%2Fc95ypidp0bcbkhphx5qf.jpg" alt="Oh My Dog! screenshot" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>telegram</category>
      <category>indiegame</category>
    </item>
  </channel>
</rss>
