<?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: Muhammad Faseeh</title>
    <description>The latest articles on DEV Community by Muhammad Faseeh (@muhammad_faseeh_1717).</description>
    <link>https://dev.to/muhammad_faseeh_1717</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%2F1732747%2Fbe61cab8-0e58-4d5e-b18f-ad7f605bc2ef.png</url>
      <title>DEV Community: Muhammad Faseeh</title>
      <link>https://dev.to/muhammad_faseeh_1717</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muhammad_faseeh_1717"/>
    <language>en</language>
    <item>
      <title>The Journey Continues...(GMTK)</title>
      <dc:creator>Muhammad Faseeh</dc:creator>
      <pubDate>Thu, 29 Aug 2024 16:47:38 +0000</pubDate>
      <link>https://dev.to/muhammad_faseeh_1717/the-journey-continuesgmtk-311f</link>
      <guid>https://dev.to/muhammad_faseeh_1717/the-journey-continuesgmtk-311f</guid>
      <description>&lt;p&gt;Introduction:&lt;br&gt;
In the mid of August, I had to participate in my first ever GMTK Game Jam(biggest gaming event on itch.io). I had planned to use GODOT engine due to lack of time but some of the issues with the editor insisted me to develop my game from scratch. So, I decided to build my game in pygame one of my earliest and favourite 2D gaming frameworks.&lt;/p&gt;

&lt;p&gt;Problem Begins:&lt;br&gt;
I had already lost 40 hours out of 96 while thinking what to build and how to build, luckily I had a pre-existing proto-type developed in the recent month which I chosed to interpret with the theme.&lt;/p&gt;

&lt;p&gt;Theme Interpretion:&lt;br&gt;
As the game was a platformer so I forcefully had to interpret it this way. The theme for the game jam was "BUILT-TO-SCALE" which was quite a unique set of words for me, but ignoring this I decided to scale down the player as the time passes out until player reaches the last door.&lt;/p&gt;

&lt;p&gt;Last Moments:&lt;br&gt;
I had only 2 hours left to submit the game, it was almost complete. I added the remaining mechanics, removed most of the errors and added a winning and losing condition.&lt;/p&gt;

&lt;p&gt;There it is!:&lt;br&gt;
Finally, I was able to launch my game at itch.io 30 minutes before the deadline. Despite it was not a web build still I got 52 ratings and 56 downloads which was quite encouraging because I knew what it takes to make a game from scratch.&lt;/p&gt;

&lt;p&gt;Results:&lt;br&gt;
After one week of voting and three days of inspection the result were finally out, it wasn't quite encouraging because I hadn't tested my game properly and there were still many failures in the mechanics and logic. But I still consider this a win because of knowing that almost 3500 games made from a game engine were below me(Ha Ha).&lt;/p&gt;

&lt;p&gt;Thanks for reading,&lt;br&gt;
React if you liked it.&lt;/p&gt;

</description>
      <category>python</category>
      <category>gamedev</category>
      <category>pygame</category>
      <category>coding</category>
    </item>
    <item>
      <title>Elixir Of Life</title>
      <dc:creator>Muhammad Faseeh</dc:creator>
      <pubDate>Mon, 05 Aug 2024 03:47:04 +0000</pubDate>
      <link>https://dev.to/muhammad_faseeh_1717/elixir-of-life-27fo</link>
      <guid>https://dev.to/muhammad_faseeh_1717/elixir-of-life-27fo</guid>
      <description>&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;The game was usually made for a game jam but after that the development is continued.&lt;/p&gt;

&lt;h2&gt;
  
  
  About:
&lt;/h2&gt;

&lt;p&gt;The game presents a 2D pixel cave scene where the player has to travel from his revealing point to destination resulting in a variety of traps, enemies, hit boxes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Main Aim:
&lt;/h2&gt;

&lt;p&gt;The main aim of the player is to get the elixir of life that will make him immortal. The potion is selected from a real life myth about “Elixir of life” about which many people say that whoever drinks it never dies.&lt;/p&gt;

&lt;h2&gt;
  
  
  Devlog: Elixir Of Life
&lt;/h2&gt;

&lt;p&gt;Date: August 5, 2024&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction:
&lt;/h2&gt;

&lt;p&gt;Welcome to the first devlog for “Elixir Of Life” a 2D adventure platformer made entirely from scratch using Python and Pygame. This game combines exploration, puzzle-solving, and platforming mechanics to create an engaging and challenging experience. I’m excited to share the development process, the challenges faced, and the milestones achieved in this journey.&lt;/p&gt;

&lt;h2&gt;
  
  
  Concept and Inspiration:
&lt;/h2&gt;

&lt;p&gt;The idea for “Elixir Of Life” came from my love for classic platformers like “Super Mario Bros.” and modern Metroidvania games like “Hollow Knight.” I wanted to create a game that captures the essence of exploration and discovery, with a unique storyline that immerses players in a mystical world filled with ancient artifacts and hidden secrets.&lt;/p&gt;

&lt;h2&gt;
  
  
  Game Mechanics:
&lt;/h2&gt;

&lt;p&gt;Platforming: The core mechanic involves running, jumping, and climbing through various levels filled with obstacles and enemies.&lt;br&gt;
Combat: &lt;br&gt;
Players can engage in combat with enemies using simple yet satisfying mechanics.&lt;/p&gt;

&lt;h2&gt;
  
  
  Development Tools:
&lt;/h2&gt;

&lt;p&gt;Python: The primary programming language used for the game.&lt;br&gt;
Pygame: The library used for handling graphics, sound, and input.&lt;br&gt;
Tiled: A level editor used to design and layout the game levels.&lt;/p&gt;

&lt;h2&gt;
  
  
  . Challenges and Solutions
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Smooth Platforming Physics:&lt;br&gt;
Challenge: Ensuring the player movement feels responsive and smooth.&lt;br&gt;
Solution: Implementing a custom physics engine to handle acceleration, deceleration, and collision detection accurately. Fine-tuning the jump mechanics to give a natural and enjoyable feel.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Level Design:&lt;br&gt;
Challenge: Creating engaging and challenging levels that encourage exploration.&lt;br&gt;
Solution: Using Tiled to design levels and testing them extensively. Iterating on feedback to improve level layouts and flow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Performance Optimization:&lt;br&gt;
Challenge: Ensuring the game runs smoothly on various hardware configurations.&lt;br&gt;
Solution: Optimizing rendering loops, using efficient data structures, and minimizing unnecessary computations.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Current Progress:
&lt;/h2&gt;

&lt;p&gt;Basic player movement and physics.&lt;br&gt;
Initial level design and layout.&lt;br&gt;
Basic enemy AI and combat mechanics.&lt;br&gt;
Placeholder art and animations.&lt;/p&gt;

&lt;h2&gt;
  
  
  In Progress:
&lt;/h2&gt;

&lt;p&gt;Implementing puzzles and interactive elements.&lt;br&gt;
Refining level designs based on playtesting feedback.&lt;br&gt;
Adding sound effects and background music.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps:
&lt;/h2&gt;

&lt;p&gt;Polish and refine the core mechanics and level design.&lt;br&gt;
Implement a save/load system.&lt;br&gt;
Add more enemy types and improve AI.&lt;br&gt;
Create a cohesive storyline and dialogue system.&lt;br&gt;
Conduct extensive playtesting to identify and fix bugs.&lt;/p&gt;

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

&lt;p&gt;“Elixir Of Life” is shaping up to be an exciting and challenging adventure platformer. I’m thrilled with the progress so far and look forward to sharing more updates in future devlogs. Stay tuned for more insights into the development process and new features as they are added.&lt;/p&gt;

&lt;p&gt;Thank you for joining me on this journey!&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow My Progress:
&lt;/h2&gt;

&lt;p&gt;Instagram: &lt;a href="https://www.instagram.com/fun_o_vative.studios/" rel="noopener noreferrer"&gt;@fun_o_vative.studios&lt;/a&gt;&lt;br&gt;
Medium: &lt;a href="https://medium.com/@mfaseeh1369" rel="noopener noreferrer"&gt;Medium profile&lt;/a&gt;&lt;br&gt;
Feel free to leave any comments or feedback. Your support and suggestions are invaluable as I continue to develop this game.&lt;/p&gt;

&lt;p&gt;I hope you find this devlog format helpful!&lt;/p&gt;

</description>
      <category>pygame</category>
      <category>python</category>
      <category>gamedev</category>
      <category>coding</category>
    </item>
    <item>
      <title>Animating Sprites In 2D games</title>
      <dc:creator>Muhammad Faseeh</dc:creator>
      <pubDate>Sat, 27 Jul 2024 17:22:36 +0000</pubDate>
      <link>https://dev.to/muhammad_faseeh_1717/animating-sprites-in-2d-games-10g5</link>
      <guid>https://dev.to/muhammad_faseeh_1717/animating-sprites-in-2d-games-10g5</guid>
      <description>&lt;h2&gt;
  
  
  Basics of Animating Sprites in Game Dev:
&lt;/h2&gt;

&lt;p&gt;**Animating sprites while making a 2D game is a really important part of that game.&lt;/p&gt;

&lt;p&gt;The method I am going to tell will work literally for every game framework:&lt;br&gt;
                 &amp;gt; The Logic Matters, syntax does'nt.&lt;/p&gt;

&lt;p&gt;Here are some steps to implement the animation:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Grab a spritesheet and it is better to split it into frames, but if yo dont wanna waster time you can use the spritesheet as well but that's the case for another blog.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Load the each frames using a list or list comprehension i.e&lt;br&gt;
e.g #python spritesheet = [pygame.image.load(f"Assets/{i}.png") for i in range(1, total_frames)] in this case 4&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;2.After that you have implemented a basic setup in your code, now you can create a method named ## func/def/void animate_sprites()&lt;br&gt;
or as you wanna name it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Now create some variables such as the animation_boolean(that tells when to load the animation) and animation_index(that holds the count for each frame).&lt;br&gt;
Note if you want an endles  animation you can skip the animation_boolean or set that to true forever.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now inside the animation_boolean() method, whenver the anim_bool is true i.e:&lt;br&gt;
if (animation_bool):&lt;br&gt;
   animation_index += 1&lt;/p&gt;

&lt;p&gt;if (animation_index &amp;gt;= 40):&lt;br&gt;
       animation_index = 0     # higher number means &lt;br&gt;
smoother and slower animation and then reset it to zero, make sure that your stop limit should be divisible by the number of frames&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now, finally whichever framework you are using display the sprites using the built-in draw method for any library in such a way that the indexing of the list is according to the no. of frames i.e&lt;/p&gt;
&lt;h1&gt;
  
  
  python    WIN.blit(spritesheet[animation_index // 10], (0,0))
&lt;/h1&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Call the render method and here you go, you've learned how to animate sprites literally in any framework.&lt;br&gt;
**&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Make sure to like and comment if you found it helpful
&lt;/h2&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>learning</category>
      <category>pygame</category>
    </item>
    <item>
      <title>Game Jam Experience();</title>
      <dc:creator>Muhammad Faseeh</dc:creator>
      <pubDate>Sun, 07 Jul 2024 15:31:33 +0000</pubDate>
      <link>https://dev.to/muhammad_faseeh_1717/game-jam-experience-1m6o</link>
      <guid>https://dev.to/muhammad_faseeh_1717/game-jam-experience-1m6o</guid>
      <description>&lt;p&gt;A few days before I participated in a jam to showcase my skills and see what other people are building, it was hosted on itch.io a famous place for hosting games and game jams.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience:
&lt;/h2&gt;

&lt;p&gt;The game jam hosts had given a time period of 10 days to finish a game by either using an engine or a framework.&lt;br&gt;
   Like always I decided to make a game with pygame and choosing a difficult path for myself which gives more pleasure when completed. I only had last five days due to a work load in the previous days.&lt;/p&gt;

&lt;p&gt;After thinking a lot I decided to remake the famous ASTERODIS game from scratch. I had some pre-written code that I used for the game.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Game:
&lt;/h2&gt;

&lt;p&gt;The game was finally made and submitted 19 minutes before the deadline. It was a very tiring weekend but somehow I managed to complete the task. Here's a view of the game:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Ftyenofessb71lo14u8bq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Ftyenofessb71lo14u8bq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2Fqtjbo1eyf0exgs4glidb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2Fqtjbo1eyf0exgs4glidb.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;After 5 days of voting the result came out and my game stood 34th out of 91 games, which was not a bad result as I completely overlooked the theme resulting in no theme integeration. But I learned a lot from the jam and these five days taught me how to handle the enormity of tasks.&lt;/p&gt;

&lt;p&gt;I will request you people(the readers) to leave a feedback so I can make more blogs like this and teach things related to game dev.&lt;a href="https://fun-o-vativestudios.itch.io" rel="noopener noreferrer"&gt;A link to my all published games on itch.io&lt;/a&gt;&lt;br&gt;
Regards,&lt;br&gt;
Faseeh.&lt;/p&gt;

</description>
      <category>python</category>
      <category>pygame</category>
      <category>gamedev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Devlog (Platformer Game)</title>
      <dc:creator>Muhammad Faseeh</dc:creator>
      <pubDate>Fri, 05 Jul 2024 13:57:46 +0000</pubDate>
      <link>https://dev.to/muhammad_faseeh_1717/devlog-platformer-game-5611</link>
      <guid>https://dev.to/muhammad_faseeh_1717/devlog-platformer-game-5611</guid>
      <description>&lt;p&gt;Recently, I have started working on a platformer game in pygame.&lt;br&gt;
All the physics and mechanics are being designed from scratch.&lt;/p&gt;

&lt;p&gt;Here are some basic features of the game:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;{&lt;br&gt;
 "The game is being completely desgined in pygame"&lt;br&gt;
}&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;{&lt;br&gt;
  "The game includes a level that is built with a list that contains the level data."&lt;br&gt;
}&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;{&lt;br&gt;
  "Morever it includes a basic player that can interact with the platforms, jump from one platform to another platform and basic x-axis movement".&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most Important characteristic of the player is the dash.&lt;br&gt;
This is how I made the player dash:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Initialize three variables namely, DASH, DASH_TIMER, DASH_COOLDOWN.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After that I set a key for dashing. i.e SPACE BAR&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whenever the player presses the space bar according to his direction he either dashes to left or right with a speed 4X the original speed.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the next blog I will be sharing my experience while creating  a player  with real art and add some graphics to my game.&lt;/p&gt;

</description>
      <category>python</category>
      <category>pygame</category>
      <category>gamedev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Devlog (Platformer Game)</title>
      <dc:creator>Muhammad Faseeh</dc:creator>
      <pubDate>Fri, 05 Jul 2024 13:57:45 +0000</pubDate>
      <link>https://dev.to/muhammad_faseeh_1717/devlog-platformer-game-4dd7</link>
      <guid>https://dev.to/muhammad_faseeh_1717/devlog-platformer-game-4dd7</guid>
      <description>&lt;p&gt;Recently, I have started working on a platformer game in pygame.&lt;br&gt;
All the physics and mechanics are being designed from scratch.&lt;/p&gt;

&lt;p&gt;Here are some basic features of the game:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;{&lt;br&gt;
 "The game is being completely desgined in pygame"&lt;br&gt;
}&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;{&lt;br&gt;
  "The game includes a level that is built with a list that contains the level data."&lt;br&gt;
}&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;{&lt;br&gt;
  "Morever it includes a basic player that can interact with the platforms, jump from one platform to another platform and basic x-axis movement".&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Most Important characteristic of the player is the dash.&lt;br&gt;
This is how I made the player dash:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Initialize three variables namely, DASH, DASH_TIMER, DASH_COOLDOWN.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After that I set a key for dashing. i.e SPACE BAR&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Whenever the player presses the space bar according to his direction he either dashes to left or right with a speed 4X the original speed.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;In the next blog I will be sharing my experience while creating  a player  with real art and add some graphics to my game.&lt;/p&gt;

</description>
      <category>python</category>
      <category>pygame</category>
      <category>gamedev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
