<?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: Traft</title>
    <description>The latest articles on DEV Community by Traft (@traft_dc2e0ce4c23fbe25e07).</description>
    <link>https://dev.to/traft_dc2e0ce4c23fbe25e07</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3695012%2F35e6aabc-a1a7-4c23-a639-9ce39fee61fa.jpg</url>
      <title>DEV Community: Traft</title>
      <link>https://dev.to/traft_dc2e0ce4c23fbe25e07</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/traft_dc2e0ce4c23fbe25e07"/>
    <language>en</language>
    <item>
      <title>I Built a Full Game Studio Inside OpenCode — 48 AI Agents, 100% Free</title>
      <dc:creator>Traft</dc:creator>
      <pubDate>Thu, 26 Mar 2026 20:54:02 +0000</pubDate>
      <link>https://dev.to/traft_dc2e0ce4c23fbe25e07/i-built-a-full-game-studio-inside-opencode-48-ai-agents-100-free-3hck</link>
      <guid>https://dev.to/traft_dc2e0ce4c23fbe25e07/i-built-a-full-game-studio-inside-opencode-48-ai-agents-100-free-3hck</guid>
      <description>&lt;p&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; I made a config pack that turns OpenCode into a structured game development studio with 48 specialized agents and 37 workflow skills — all running on Big Pickle (free). Drop it in your &lt;code&gt;~/.config/opencode/&lt;/code&gt; and your next game gets a full team.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem With AI-Assisted Game Dev
&lt;/h2&gt;

&lt;p&gt;Solo game dev with AI is genuinely powerful. But there's a fundamental issue nobody talks about: &lt;strong&gt;a single AI session has no structure.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nothing stops you from hardcoding magic numbers at 2am. Nobody's checking whether your inventory system actually fits the game's vision. There's no QA pass, no architecture review, no one asking "wait, does this mechanic even make sense?"&lt;/p&gt;

&lt;p&gt;You end up with a chat assistant, not a team.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;OpenCode Game Studios&lt;/strong&gt; is a drop-in configuration for OpenCode that transforms it into a proper studio hierarchy:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Tier 1 — Directors (Strategic)
  creative-director · technical-director · producer

Tier 2 — Department Leads
  game-designer · lead-programmer · art-director
  audio-director · narrative-director · qa-lead · release-manager

Tier 3 — Specialists (22 agents)
  gameplay-programmer · engine-programmer · ai-programmer
  level-designer · systems-designer · sound-designer · writer
  performance-analyst · qa-tester · accessibility-specialist ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Plus dedicated engine specialists for &lt;strong&gt;Godot&lt;/strong&gt;, &lt;strong&gt;Unity&lt;/strong&gt;, and &lt;strong&gt;Unreal&lt;/strong&gt; — 5 agents per engine covering shaders, scripting, DOTS, GAS, blueprints, replication, UI systems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;48 agents total.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;Every agent knows its role in the studio. The &lt;code&gt;creative-director&lt;/code&gt; guards the vision. The &lt;code&gt;lead-programmer&lt;/code&gt; owns architecture decisions. The &lt;code&gt;qa-tester&lt;/code&gt; finds edge cases. You call whoever you need:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;@game-designer &lt;span class="s2"&gt;"Design a combat system for my roguelike"&lt;/span&gt;
@lead-programmer &lt;span class="s2"&gt;"Review this ECS architecture"&lt;/span&gt;
@godot-shader-specialist &lt;span class="s2"&gt;"Write a 2D water shader with refraction"&lt;/span&gt;
@qa-tester &lt;span class="s2"&gt;"What are the edge cases in this save system?"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And there are &lt;strong&gt;37 workflow skills&lt;/strong&gt; via slash commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/start           — Kick off a new game project with proper setup
/sprint-plan     — Plan your week with task breakdown
/code-review     — Full architectural review
/balance-check   — Game economy and difficulty audit
/brainstorm      — Structured creative session
/release-checklist — Pre-launch verification
/patch-notes     — Auto-generate from your git history
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Collaboration Protocol
&lt;/h2&gt;

&lt;p&gt;Every task follows a mandatory flow: &lt;strong&gt;Question → Options → Decision → Draft → Approval&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Agents must ask &lt;em&gt;"May I write this to [filepath]?"&lt;/em&gt; before touching your code. They show drafts before requesting approval. Multi-file changes need explicit sign-off for the entire changeset.&lt;/p&gt;

&lt;p&gt;You make all final decisions. The agents provide expertise, not autonomy. This single constraint has made the difference between sessions that produce focused output and sessions that spin forever.&lt;/p&gt;

&lt;h2&gt;
  
  
  100% Free
&lt;/h2&gt;

&lt;p&gt;Everything runs on OpenCode's &lt;strong&gt;Big Pickle&lt;/strong&gt; model. No API keys, no tokens burning, no credit card. The config defaults every agent to &lt;code&gt;opencode/big-pickle&lt;/code&gt;. You can override specific agents to premium models if you want, but the whole setup works out of the box for free.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install OpenCode&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; opencode

&lt;span class="c"&gt;# Clone the studio config&lt;/span&gt;
git clone https://github.com/TraftG/opencode-game-studio
&lt;span class="nb"&gt;cd &lt;/span&gt;opencode-game-studio

&lt;span class="c"&gt;# Apply globally&lt;/span&gt;
&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; .opencode/&lt;span class="k"&gt;*&lt;/span&gt; ~/.config/opencode/

&lt;span class="c"&gt;# Start your studio&lt;/span&gt;
opencode
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. Open a session, type &lt;code&gt;@creative-director&lt;/code&gt; and describe your game idea. Watch it ask you the right questions instead of just vibing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Made This
&lt;/h2&gt;

&lt;p&gt;I kept running into the same wall: the AI was capable, but sessions had no memory of earlier decisions and no consistent "voice" keeping the project coherent. A creative director who remembers that this is a &lt;em&gt;horror&lt;/em&gt; game, not an action game. A QA lead who always checks for save corruption. A technical director who enforces the performance budget you set on day one.&lt;/p&gt;

&lt;p&gt;Structured agents with clear roles solved this better than any amount of prompt tweaking.&lt;/p&gt;

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

&lt;p&gt;I'm actively using this on my own projects. If you build something with it or have ideas for new agents/skills, PRs are very welcome.&lt;/p&gt;

&lt;p&gt;⭐ &lt;strong&gt;&lt;a href="https://github.com/TraftG/opencode-game-studio" rel="noopener noreferrer"&gt;github.com/TraftG/opencode-game-studio&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Built by &lt;a href="https://t.me/traftret" rel="noopener noreferrer"&gt;@TraftG&lt;/a&gt; — reach out on Telegram if you have questions about the setup.&lt;/em&gt;&lt;/p&gt;




</description>
    </item>
    <item>
      <title>VK Music Bot API: Open Source Backend for VK Music in Telegram</title>
      <dc:creator>Traft</dc:creator>
      <pubDate>Mon, 05 Jan 2026 20:29:50 +0000</pubDate>
      <link>https://dev.to/traft_dc2e0ce4c23fbe25e07/vk-music-bot-api-open-source-backend-for-vk-music-in-telegram-hef</link>
      <guid>https://dev.to/traft_dc2e0ce4c23fbe25e07/vk-music-bot-api-open-source-backend-for-vk-music-in-telegram-hef</guid>
      <description>&lt;p&gt;Hi! I’m Traft, and I want to share my new open-source project — VK Music Bot API.&lt;/p&gt;

&lt;p&gt;The goal of this project is simple: provide a clean backend to access VK music inside Telegram Mini Apps or bots, without mixing UI, bot logic, and VK API calls.&lt;/p&gt;

&lt;p&gt;Repository: &lt;a href="https://github.com/TraftG/vk-music-bot-api" rel="noopener noreferrer"&gt;TraftG/vk-music-bot-api&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Why I Built It&lt;/p&gt;

&lt;p&gt;Many people want to play VK music without opening the app or browser.&lt;br&gt;
Most bots and scripts out there are fragile, hard to maintain, or mix everything in one place.&lt;/p&gt;

&lt;p&gt;I wanted a solution that is:&lt;/p&gt;

&lt;p&gt;scalable&lt;/p&gt;

&lt;p&gt;production-ready&lt;/p&gt;

&lt;p&gt;easy to integrate into Telegram&lt;/p&gt;

&lt;p&gt;clean and maintainable&lt;/p&gt;

&lt;p&gt;Features&lt;/p&gt;

&lt;p&gt;VK Music Bot API currently supports:&lt;/p&gt;

&lt;p&gt;Track search — by title, artist, or album, with metadata and cover images&lt;/p&gt;

&lt;p&gt;MP3 download — direct from VK, supports FFmpeg processing&lt;/p&gt;

&lt;p&gt;History tracking — store listened tracks and build personal recommendations&lt;/p&gt;

&lt;p&gt;Secure auth — via Telegram WebApp InitData, no passwords needed&lt;/p&gt;

&lt;p&gt;Recommendations — basic algorithms based on listening history&lt;/p&gt;

&lt;p&gt;Tech Stack&lt;/p&gt;

&lt;p&gt;Backend: FastAPI, Uvicorn, Pydantic, Motor (MongoDB async driver)&lt;/p&gt;

&lt;p&gt;Integrations: VKPyMusic, Aiogram, yt-dlp, FFmpeg&lt;/p&gt;

&lt;p&gt;Database: MongoDB (NoSQL)&lt;/p&gt;

&lt;p&gt;Async: Entire project uses async/await for high throughput&lt;/p&gt;

&lt;p&gt;Project Structure&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;music-bot/
├── app/
│   ├── core/       # config &amp;amp; DB connection
│   ├── models/     # Pydantic schemas
│   ├── routers/    # API endpoints
│   ├── services/   # business logic
│   └── main.py     # FastAPI entry point
├── .env.example
└── requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Separation of concerns makes the project:&lt;/p&gt;

&lt;p&gt;easier to maintain&lt;/p&gt;

&lt;p&gt;easy to scale&lt;/p&gt;

&lt;p&gt;easier to test&lt;/p&gt;

&lt;p&gt;readable for new contributors&lt;/p&gt;

&lt;p&gt;API Endpoints&lt;/p&gt;

&lt;p&gt;Authentication:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;POST /api/auth/login       # via Telegram InitData
POST /api/auth/history     # add track to history
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Music:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
GET /api/music/search?q=query        # search tracks
GET /api/music/download/{track_id}  # download MP3
GET /api/music/recommendations      # get recommendations
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Swagger: /docs

ReDoc: /redoc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Quick Start&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git clone https://github.com/TraftG/vk-music-bot-api.git
cd vk-music-bot-api
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
docker run -d -p 27017:27017 mongo
uvicorn app.main:app --reload

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;API will be available at &lt;a href="http://localhost:8000" rel="noopener noreferrer"&gt;http://localhost:8000&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Why Async and asynccontextmanager&lt;/p&gt;

&lt;p&gt;The whole project is async using async/await and @asynccontextmanager for lifecycle management:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;@asynccontextmanager
async def lifespan(app: FastAPI):
    await connect_to_mongo()
    yield
    await close_mongo_connection()

app = FastAPI(lifespan=lifespan)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This pattern is clean, modern, and allows:&lt;/p&gt;

&lt;p&gt;safe startup/shutdown of resources&lt;/p&gt;

&lt;p&gt;high throughput&lt;/p&gt;

&lt;p&gt;testable, maintainable code&lt;/p&gt;

&lt;p&gt;Performance&lt;/p&gt;

&lt;p&gt;Track search: &amp;lt; 500 ms&lt;/p&gt;

&lt;p&gt;Recommendations: &amp;lt; 200 ms&lt;/p&gt;

&lt;p&gt;Authorization: &amp;lt; 100 ms&lt;/p&gt;

&lt;p&gt;Scales horizontally with multiple workers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;uvicorn app.main:app --workers 4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Deployment&lt;/p&gt;

&lt;p&gt;Docker-ready:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Runs on:&lt;/p&gt;

&lt;p&gt;VPS, Docker, Kubernetes&lt;/p&gt;

&lt;p&gt;Railway / Render / Heroku&lt;/p&gt;

&lt;p&gt;AWS, GCP&lt;/p&gt;

&lt;p&gt;Open Source Contribution&lt;/p&gt;

&lt;p&gt;MIT-licensed. Feel free to:&lt;/p&gt;

&lt;p&gt;fix bugs&lt;/p&gt;

&lt;p&gt;add new features&lt;/p&gt;

&lt;p&gt;improve documentation&lt;/p&gt;

&lt;p&gt;add tests&lt;/p&gt;

&lt;p&gt;Process: fork → feature branch → PR.&lt;/p&gt;

&lt;p&gt;Conclusion&lt;/p&gt;

&lt;p&gt;VK Music Bot API is a production-ready backend for VK music, easy to integrate into Telegram apps or bots.&lt;/p&gt;

&lt;p&gt;Quick start in 5 minutes&lt;/p&gt;

&lt;p&gt;Clean and async architecture&lt;/p&gt;

&lt;p&gt;Fully Open Source&lt;br&gt;
&lt;a href="https://github.com/TraftG/vk-music-bot-api" rel="noopener noreferrer"&gt;Github Link&lt;/a&gt; ⭐&lt;/p&gt;

</description>
      <category>api</category>
      <category>backend</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
  </channel>
</rss>
