<?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: Muhsin</title>
    <description>The latest articles on DEV Community by Muhsin (@muhsin7majeed).</description>
    <link>https://dev.to/muhsin7majeed</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%2F259736%2F60ebe2fc-82b4-49c2-b93b-04ab147cf40d.jpg</url>
      <title>DEV Community: Muhsin</title>
      <link>https://dev.to/muhsin7majeed</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muhsin7majeed"/>
    <language>en</language>
    <item>
      <title>I Made My First 2D Game as a React Developer - "World's on Fire"</title>
      <dc:creator>Muhsin</dc:creator>
      <pubDate>Thu, 26 Jun 2025 11:08:04 +0000</pubDate>
      <link>https://dev.to/muhsin7majeed/i-made-my-first-2d-game-as-a-react-developer-worlds-on-fire-23m1</link>
      <guid>https://dev.to/muhsin7majeed/i-made-my-first-2d-game-as-a-react-developer-worlds-on-fire-23m1</guid>
      <description>&lt;p&gt;Hey everyone!&lt;/p&gt;

&lt;p&gt;I'm a React developer by day, and recently, a game dev wannabe by night. Out of curiosity, I dove into the world of 2D game development. The result? "World’s on Fire" - a simple browser-based 2D shooter I built using React + PixiJS.&lt;/p&gt;

&lt;p&gt;You can play it here 👉 &lt;a href="//wof.muhsi.in"&gt;World's on Fire&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ The Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;React (because it’s home)&lt;/li&gt;
&lt;li&gt;PixiJS (because ChatGPT suggested it :p)&lt;/li&gt;
&lt;li&gt;Jotai for simpler state management&lt;/li&gt;
&lt;li&gt;Assets from &lt;a href="https://kenney.nl/assets" rel="noopener noreferrer"&gt;kenney.nl&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cursor and ChatGPT was extremely helpful while making this!&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 The Gameplay
&lt;/h2&gt;

&lt;p&gt;You’re a jet. The world is on fire (metaphorically..). You shoot… a lot.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The player jet auto-shoots and moves upward.&lt;/li&gt;
&lt;li&gt;Enemies spawn from the top and come down.&lt;/li&gt;
&lt;li&gt;After killing 10 enemies, a tougher kind starts appearing (and they shoot back).&lt;/li&gt;
&lt;li&gt;Kill 20, and you'll meet the real troublemakers.&lt;/li&gt;
&lt;li&gt;Power-ups randomly drop - either faster fire rate or more damage and health packs if your health is under 100.&lt;/li&gt;
&lt;li&gt;The game ends when you're dead, and your score is saved locally.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No login, no ads, no microtransactions — just pure arcade chaos in your browser.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 The Learning Curve (a.k.a. The Struggle Was Real)
&lt;/h2&gt;

&lt;p&gt;This started as a hobby project to dip my toes into game dev… and boy did I dip head-first.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Math? Yep, had to deal with a bit of that. Did I understand it? Not really. I shamelessly copy-pasted formulas from StackOverflow and ChatGPT, and they mostly worked. All I had to do was tweak the fancy numbers 🤷‍♂️&lt;/li&gt;
&lt;li&gt;Game loops, sprites, collisions, audio triggers, and power-up systems - all alien territory coming from React land. But I learned a lot.&lt;/li&gt;
&lt;li&gt;Balancing difficulty was surprisingly tricky. I had no idea how to design proper levels or structure progression. At first, I thought I’d create distinct levels, but that felt like too much overhead. So I went the lazy-but-effective route: infinite enemy waves. I tossed different enemy types into an array and picked one based on the player’s score. The third-wave enemies just reused the second-wave’s shooting logic. Efficient? Maybe. Elegant? Absolutely not. But hey, it works.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🧪 Why I Did It
&lt;/h2&gt;

&lt;p&gt;Honestly? To break the monotony of form inputs and dropdowns, and to push myself to learn something different. Game dev forces you to think in a totally different way, especially with rendering, performance, and player feedback.&lt;/p&gt;

&lt;p&gt;And hey, it’s fun to build something new!&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 What’s Next?
&lt;/h2&gt;

&lt;p&gt;Not sure - maybe more games? Maybe rewrite this one once I figure out what &lt;code&gt;deltaTime&lt;/code&gt; actually means?&lt;/p&gt;

&lt;p&gt;But for now, I'm happy with how it turned out. I hit my goal: make a working game. No frills. Just fun.&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Check it out and let me know what you think!
&lt;/h2&gt;

&lt;p&gt;&lt;a href="//wof.muhsi.in"&gt;World's on Fire&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're a React dev curious about game development, I’d totally encourage you to give it a try. You don't need Unity or Unreal to start messing around with fun ideas - a browser and some caffeine will do.&lt;/p&gt;

&lt;p&gt;ps: It works better on mobile view!&lt;/p&gt;

&lt;p&gt;Thanks for reading! 🚀&lt;/p&gt;

</description>
      <category>typescript</category>
      <category>pixijs</category>
      <category>react</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
