<?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: Devesh Agarwal</title>
    <description>The latest articles on DEV Community by Devesh Agarwal (@deveshhh).</description>
    <link>https://dev.to/deveshhh</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%2F3168827%2Ff329f135-4563-49b4-b95b-7250f509f6bd.jpg</url>
      <title>DEV Community: Devesh Agarwal</title>
      <link>https://dev.to/deveshhh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/deveshhh"/>
    <language>en</language>
    <item>
      <title>Ever revived an old project just to question every life choice? Same.</title>
      <dc:creator>Devesh Agarwal</dc:creator>
      <pubDate>Sat, 17 May 2025 06:54:22 +0000</pubDate>
      <link>https://dev.to/deveshhh/ever-revived-an-old-project-just-to-question-every-life-choice-same-1c30</link>
      <guid>https://dev.to/deveshhh/ever-revived-an-old-project-just-to-question-every-life-choice-same-1c30</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/deveshhh/8-years-later-the-tank-fires-again-j6h" class="crayons-story__hidden-navigation-link"&gt;8 Years Later, The Tank Fires Again&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/deveshhh" class="crayons-avatar  crayons-avatar--l  "&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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3168827%2Ff329f135-4563-49b4-b95b-7250f509f6bd.jpg" alt="deveshhh profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/deveshhh" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Devesh Agarwal
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Devesh Agarwal
                
              
              &lt;div id="story-author-preview-content-2495959" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/deveshhh" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3168827%2Ff329f135-4563-49b4-b95b-7250f509f6bd.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Devesh Agarwal&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/deveshhh/8-years-later-the-tank-fires-again-j6h" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 17 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/deveshhh/8-years-later-the-tank-fires-again-j6h" id="article-link-2495959"&gt;
          8 Years Later, The Tank Fires Again
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cpp"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cpp&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/gamedev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;gamedev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/deveshhh/8-years-later-the-tank-fires-again-j6h#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              &lt;span class="hidden s:inline"&gt;Add Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>cpp</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>8 Years Later, The Tank Fires Again</title>
      <dc:creator>Devesh Agarwal</dc:creator>
      <pubDate>Sat, 17 May 2025 06:45:29 +0000</pubDate>
      <link>https://dev.to/deveshhh/8-years-later-the-tank-fires-again-j6h</link>
      <guid>https://dev.to/deveshhh/8-years-later-the-tank-fires-again-j6h</guid>
      <description>&lt;p&gt;Before I start with the self roasting and full of headache story of this remake, if you haven’t already — I’d recommend you to checkout my previous post which is a nice warm story ( at least it preserves my dignity🙂 ). It’ll give you all the nostalgic context you need.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/deveshhh/a-look-back-at-an-8-year-old-2d-tank-game-3b0c"&gt;A Look Back at an 8-Year-Old 2D Tank Game&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alright, all caught up?&lt;br&gt;&lt;br&gt;
Let’s begin the madness of building &lt;strong&gt;BunkBlaster&lt;/strong&gt; — the remake.&lt;/p&gt;
&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;How do I even start?&lt;br&gt;&lt;br&gt;
That’s the biggest problem I keep facing — and weirdly, it’s only grown with time. When I was a kid, I jumped into things without a second thought. Now? I just sit, overthink, and end up doing… absolutely nothing.&lt;br&gt;&lt;br&gt;
This project was no different. I’ve thought about remaking it for years. SFML? Maybe SDL? Heck, even full-blown engines. But in the end — nada.&lt;br&gt;&lt;br&gt;
Then one random day, I just started.&lt;br&gt;&lt;br&gt;
No grand plan. No fancy architecture. Just opened VS Code and said, “Screw it, let’s make something.”&lt;br&gt;&lt;br&gt;
And that’s how it began… my chaotic dive into rebuilding a childhood classic — now rebranded as &lt;em&gt;BunkBlaster&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;But of course, I wasn’t going to make it easy for myself.&lt;/p&gt;
&lt;h2&gt;
  
  
  The Birth of BunkBlaster
&lt;/h2&gt;

&lt;p&gt;I don’t know why, but I need my projects to be hard and challenging. That’s what fuels me. Easy things? Boring as hell.&lt;br&gt;&lt;br&gt;
One of my main motivations while building is learning. Even if it’s a remake, I want it to push me. So I went with the beast: C++. Yep, you read that right.&lt;br&gt;&lt;br&gt;
But don’t worry — I also picked up Raylib to make my life a little easier. (I’m not a psycho.)&lt;br&gt;&lt;br&gt;
Also got box2d to make the game a physics beast ( It was a mistake ☠️ ).&lt;/p&gt;
&lt;h2&gt;
  
  
  Raylib? Box2D? What’s going on?
&lt;/h2&gt;

&lt;p&gt;You’re probably thinking — "Raylib? Box2D? What the heck is this?"&lt;br&gt;&lt;br&gt;
Well, let me break it down.&lt;br&gt;&lt;br&gt;
Heck, I &lt;em&gt;am&lt;/em&gt; gonna sound like a nerd in this section — bear with me, alright?&lt;/p&gt;

&lt;p&gt;So... Raylib.&lt;br&gt;&lt;br&gt;
It’s a C library that handles most of the heavy lifting — graphics, windowing, input, audio… you name it.&lt;br&gt;&lt;br&gt;
An absolute beast.&lt;br&gt;&lt;br&gt;
Perfect when you want &lt;em&gt;control&lt;/em&gt; without writing 1000 lines of boilerplate.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;"raylib.h"&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;screenWidth&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;800&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;screenHeight&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;450&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;InitWindow&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;screenWidth&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;screenHeight&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"raylib [core] example - basic window"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;SetTargetFPS&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;               &lt;span class="c1"&gt;// Set our game to run at 60 frames-per-second&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="n"&gt;WindowShouldClose&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;    &lt;span class="c1"&gt;// Detect window close button or ESC key&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;BeginDrawing&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="n"&gt;ClearBackground&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RAYWHITE&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;DrawText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Congrats! You created your first window!"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;190&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LIGHTGRAY&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;EndDrawing&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="n"&gt;CloseWindow&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;        &lt;span class="c1"&gt;// Close window and OpenGL context&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Don’t stress if you didn’t catch all of that.&lt;br&gt;&lt;br&gt;
You’re not supposed to. I just wanted to show you how &lt;strong&gt;easy&lt;/strong&gt; Raylib can make your (my 🙂) life.&lt;/p&gt;

&lt;p&gt;And now... Box2D.&lt;br&gt;&lt;br&gt;
This one? Pure physics engine madness. And not just some janky “collision go brr” logic — real, proper physics simulation.&lt;br&gt;&lt;br&gt;
Gravity?&lt;br&gt;&lt;br&gt;
Friction?&lt;br&gt;&lt;br&gt;
Bounce?&lt;br&gt;&lt;br&gt;
Momentum?&lt;br&gt;&lt;br&gt;
Yup. It handles everything. You just describe the world, and let Box2D handle the rest.&lt;/p&gt;

&lt;p&gt;But I’ll be honest…&lt;br&gt;&lt;br&gt;
The API is powerful, but a lot advanced and troublesome if you don’t know what you are doing.&lt;br&gt;&lt;br&gt;
So yeah — &lt;strong&gt;it was a mistake ☠️&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Still, I stuck with it. Because again… I like pain.&lt;br&gt;&lt;br&gt;
Brains off, brushes on — let’s talk about the mess I call game art.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making The Art For the Game ( I am not an artist )
&lt;/h2&gt;

&lt;p&gt;One of the biggest reasons I never made huge games?&lt;br&gt;&lt;br&gt;
Art. Yes… cause I can’t draw.&lt;/p&gt;

&lt;p&gt;In my older projects, I stuck with rectangles. Lines. Circles to get anything that I needed.&lt;br&gt;&lt;br&gt;
But this time… I wanted more. This wasn’t just a remake. It was an upgrade. A level-up.&lt;/p&gt;

&lt;p&gt;I can’t even manage to underline my name with a straight line.&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.amazonaws.com%2Fuploads%2Farticles%2Fjcfz71vm7ir68jsxe4aq.jpeg" 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.amazonaws.com%2Fuploads%2Farticles%2Fjcfz71vm7ir68jsxe4aq.jpeg" alt="Image description" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best drawing that I ever made in my laptop…&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.amazonaws.com%2Fuploads%2Farticles%2Feqt782beg7zu7cqba2mf.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.amazonaws.com%2Fuploads%2Farticles%2Feqt782beg7zu7cqba2mf.png" alt="Image description" width="150" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Okay… enough self roast 🙂…&lt;/p&gt;

&lt;p&gt;Let’s get on with it&lt;br&gt;&lt;br&gt;
so I grabbed my brush (a budget mouse and zero drawing skills)...&lt;br&gt;&lt;br&gt;
Fired up my drawing studio (Pixelorama)...&lt;br&gt;&lt;br&gt;
And dove in...&lt;/p&gt;

&lt;p&gt;What came out was… well see for yourself&lt;/p&gt;

&lt;p&gt;Here’s a sneak peek of some of the first sprites I whipped up 👇&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.amazonaws.com%2Fuploads%2Farticles%2Fzf62q7p2xxwcz4qq4tys.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.amazonaws.com%2Fuploads%2Farticles%2Fzf62q7p2xxwcz4qq4tys.png" alt="Image description" width="750" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See my bullet designs 🫣 (Don’t laugh... &lt;em&gt;🙂&lt;/em&gt;).&lt;br&gt;&lt;br&gt;
You’re probably wondering why the tank’s body and turret are separate — well, &lt;em&gt;that’s&lt;/em&gt; because I’m going for a rotating turret. Yup. A fully functional, directional cannon (yes, really).&lt;/p&gt;

&lt;p&gt;I’ll definitely design more sprites down the road — explosions, pickups, etc.&lt;br&gt;&lt;br&gt;
But for now, these little assets were enough to get things rolling...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Oh, and guess what?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
I even animated the tank 😤&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.amazonaws.com%2Fuploads%2Farticles%2Ffrt9m6miw31v1k3wi5rx.gif" 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.amazonaws.com%2Fuploads%2Farticles%2Ffrt9m6miw31v1k3wi5rx.gif" alt="Image description" width="49" height="157"&gt;&lt;/a&gt;&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.amazonaws.com%2Fuploads%2Farticles%2Fwgme1lfox7961q9c4y9q.gif" 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.amazonaws.com%2Fuploads%2Farticles%2Fwgme1lfox7961q9c4y9q.gif" alt="Image description" width="119" height="161"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See… one’s the shooting animation and the other’s the movement. Once they’re synced and not looping, you’ll really &lt;em&gt;feel&lt;/em&gt; the effect.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;And that’s a wrap for this devlog!&lt;br&gt;&lt;br&gt;
Everything aside — I genuinely enjoyed making these sprites (even if my art skills are, let’s say… a work in progress 😶‍🌫️).&lt;/p&gt;

&lt;p&gt;But this was just the calm before the storm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next up:&lt;/strong&gt; The &lt;em&gt;chaotic&lt;/em&gt; madness Box2D unleashed.&lt;br&gt;&lt;br&gt;
Brace yourself — things are about to get wild, frustrating, and strangely addictive.&lt;/p&gt;

&lt;p&gt;If you enjoyed this peek behind the scenes, consider subscribing and dropping a comment.&lt;br&gt;&lt;br&gt;
Trust me, the rollercoaster is only getting started, and you won’t want to miss it.&lt;/p&gt;

</description>
      <category>cpp</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>A Look Back at an 8-Year-Old 2D Tank Game</title>
      <dc:creator>Devesh Agarwal</dc:creator>
      <pubDate>Fri, 16 May 2025 05:07:18 +0000</pubDate>
      <link>https://dev.to/deveshhh/a-look-back-at-an-8-year-old-2d-tank-game-3b0c</link>
      <guid>https://dev.to/deveshhh/a-look-back-at-an-8-year-old-2d-tank-game-3b0c</guid>
      <description>&lt;h2&gt;
  
  
  A Nostalgic Story
&lt;/h2&gt;

&lt;p&gt;About 8 years ago, when I was just a kid, I began my coding journey with a school book — you know, the classic QBASIC chapter. I learned about variables, conditional statements, and control flow, writing small programs like basic calculators and whatnot.&lt;/p&gt;

&lt;p&gt;But then, there was this one section at the end...&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Draw Shapes in QBASIC Section
&lt;/h2&gt;

&lt;p&gt;That single section changed everything. I learned how to draw rectangles, circles, and all kinds of shapes on the screen.&lt;/p&gt;

&lt;p&gt;And then my brain started buzzing with ideas. You know what’s coming next… my very first game.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting Work On My Tank Game
&lt;/h2&gt;

&lt;p&gt;If you’re a tech person, you’re probably thinking: &lt;em&gt;“Who the hell makes games in QBASIC?”&lt;/em&gt; 😅&lt;br&gt;&lt;br&gt;
Well… an innocent 11-year-old me did.&lt;/p&gt;

&lt;p&gt;I didn’t know how to Google things back then (heck, I barely knew what Google was). But somehow, with a school textbook and sheer curiosity, I stumbled into game development. I figured out how to build a game loop, draw stuff on the screen, and even manage inputs — all on my own.&lt;/p&gt;

&lt;p&gt;Inspired by the tank game I used to play on my GameBoy, I decided to make my own.&lt;br&gt;&lt;br&gt;
Spoiler: I didn’t get even close.&lt;/p&gt;

&lt;h2&gt;
  
  
  Drawing Tanks with Boxes and Lines
&lt;/h2&gt;

&lt;p&gt;I started with a rectangle for the tank’s body and drew a line from its center — my improvised gun barrel. Surprisingly, it looked tank-ish.&lt;/p&gt;

&lt;p&gt;Then came movement. Instead of making the tank rotate smoothly, I went with a simpler solution: constant velocity. The WASD keys didn’t move it directly — they changed its direction, and the tank kept going. Bullets followed next. And then… I added a dummy opponent to shoot at.&lt;/p&gt;

&lt;h2&gt;
  
  
  Collisions? Uh-oh.
&lt;/h2&gt;

&lt;p&gt;If you’ve done any game dev, you know this part: collision detection.&lt;br&gt;&lt;br&gt;
Now, imagine being 11 and trying to wrap your head around it without help.&lt;/p&gt;

&lt;p&gt;Somehow (don’t ask me how), I managed to build a working collision system.&lt;br&gt;&lt;br&gt;
Bullets could hit the dummy tank, and the game would end. I even added bullet despawning — they’d disappear once they moved off-screen.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Computer Bot (kinda)
&lt;/h2&gt;

&lt;p&gt;I didn’t write any AI — I wasn’t a genius.&lt;br&gt;&lt;br&gt;
What I &lt;em&gt;did&lt;/em&gt; do was… randomize everything.&lt;br&gt;&lt;br&gt;
I generated a random number and mapped it to tank actions. If it was a 3, the bot turned right. If it was a 7, it shot. Absolute chaos. But it &lt;em&gt;worked&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Chaos
&lt;/h2&gt;

&lt;p&gt;It all sounds fine and dandy when you read it like this (I don’t have the code now), but hell — if you had seen it back then… It was a minefield of &lt;code&gt;GOTO&lt;/code&gt; statements, jumping from line 50 to 553 to who-knows-where.&lt;/p&gt;

&lt;p&gt;The variables? Oh, don’t get me started — named things like &lt;code&gt;x&lt;/code&gt;, &lt;code&gt;a4&lt;/code&gt;, and &lt;code&gt;b9&lt;/code&gt; (no one told me you could actually write &lt;em&gt;real&lt;/em&gt; names).&lt;br&gt;&lt;br&gt;
Imagine a thousand lines of that. ☠️&lt;br&gt;&lt;br&gt;
Utter. Chaos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This project… It was buggy, messy, and absolutely hilarious in hindsight — but it was mine.&lt;/p&gt;

&lt;p&gt;If you've ever built something as a kid and looked back years later... you know exactly how this feels.&lt;/p&gt;

&lt;p&gt;Let’s rebuild it together (Not in QBASIC🙂) — and this time, we’ll do it right.&lt;/p&gt;

&lt;p&gt;Catch you in the next part.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>programming</category>
      <category>qbasic</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
