<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Godot - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Godot - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Fri, 15 May 2026 22:30:12 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/godot/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Learn Game Development by Building Your First Platformer with Godot ]]>
                </title>
                <description>
                    <![CDATA[ Ever wanted to build your own video game but felt overwhelmed by where to start? We just published a course on the freeCodeCamp.org YouTube channel that will guide you step-by-step from a blank screen to a complete, playable game using the powerful a... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learn-game-development-by-building-your-first-platformer-with-godot/</link>
                <guid isPermaLink="false">68c1848b89889b1c80036d24</guid>
                
                    <category>
                        <![CDATA[ Godot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ youtube ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beau Carnes ]]>
                </dc:creator>
                <pubDate>Wed, 10 Sep 2025 14:00:43 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1757366007955/01b7fca7-e8f1-49b6-9b4b-c44bc22204e7.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Ever wanted to build your own video game but felt overwhelmed by where to start?</p>
<p>We just published a course on the <a target="_blank" href="http://freeCodeCamp.org">freeCodeCamp.org</a> YouTube channel that will guide you step-by-step from a blank screen to a complete, playable game using the powerful and free Godot Engine.</p>
<p>This comprehensive tutorial is designed specifically for beginners, introducing every concept in a simple and approachable way.</p>
<p>Throughout the course, you will learn how to:</p>
<ul>
<li><p>Set up the Godot Engine and get comfortable with the editor.</p>
</li>
<li><p>Design and build levels using your own custom tile sets.</p>
</li>
<li><p>Create a player character with animations for running and idle states.</p>
</li>
<li><p>Implement essential game mechanics like checkpoints, a death system, and a scoring system.</p>
</li>
<li><p>Add challenges with moving platforms and enemies that chase the player.</p>
</li>
<li><p>Incorporate collectibles that increase the player's score.</p>
</li>
<li><p>Structure a larger game with multiple, switchable levels.</p>
</li>
<li><p>Export your finished project so it can be played in a web browser.</p>
</li>
</ul>
<p>Another unique thing about this course is the creators, Sarah and Reem. They are 16 and 17-year-old high school students and members of Hack Club, a global nonprofit that empowers young people to build with technology. They’ve built an incredible, beginner-friendly resource to help anyone who has wanted to make a game but didn't know how to start.</p>
<p>Watch the full course <a target="_blank" href="https://youtu.be/MiPkcTaRbfQ">on the freeCodeCamp.org YouTube channel</a> (1-hour watch).</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/MiPkcTaRbfQ" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Learn Godot – Course for Beginners in Spanish ]]>
                </title>
                <description>
                    <![CDATA[ Godot is an open-source, lightweight, and powerful game engine. This course will teach you how to use it to bring your game ideas to life. We just published a course on the freeCodeCamp.org Spanish YouTube channel that will guide you step by step thr... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learn-godot-course-for-beginners-in-spanish/</link>
                <guid isPermaLink="false">68402e7af9ce257b34574bed</guid>
                
                    <category>
                        <![CDATA[ Godot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Game Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Estefania Cassingena Navone ]]>
                </dc:creator>
                <pubDate>Wed, 04 Jun 2025 11:31:06 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1748954260255/3d544e9f-2191-409a-b52e-bcf24ceab5a6.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Godot is an open-source, lightweight, and powerful game engine. This course will teach you how to use it to bring your game ideas to life.</p>
<p>We just published a course on the <a target="_blank" href="https://www.youtube.com/freecodecampespanol">freeCodeCamp.org Spanish YouTube channel</a> that will guide you step by step through the fundamentals of Godot. You’ll learn the core concepts that you need to get started.</p>
<p>If you have Spanish-speaking friends, you are welcome to share the <a target="_blank" href="https://www.freecodecamp.org/espanol/news/aprende-godot-curso-desde-cero"><strong>Spanish version of this article</strong></a> with them.</p>
<p>Luis Canary created this course. He is the Principal Gameplay Programmer at Pendulo Studios, a Madrid-based video game development company. He has taught courses at universities, schools, and companies and loves to share his passion for game development on his YouTube channel.</p>
<p>Before we dive into the course content, let's see what Godot is, and why you should learn it.</p>
<h2 id="heading-what-is-godot">What is Godot?</h2>
<p>Godot is an open-source game engine that you can use to build 2D and 3D games.</p>
<p>It has become very popular in the last few years, with robust features that make it a great tool in the game development world, without the heavy resource demands of some other game engines. This makes it a practical choice for creators looking for efficiency and high performance.</p>
<p>Its open-source license is great for independent developers and small teams, as it doesn’t come with any licensing fees. You’ll retain full ownership and control over the games and projects that you create with Godot.</p>
<p>This flexibility makes game development more approachable for everyone.</p>
<p>Godot also has its own user-friendly scripting language and node-based system. Its scripting language, called GDScript, is similar to Python and is easy to learn for beginners. Its intuitive node-based system simplifies the process of creating both 2D and 3D games.</p>
<p>By learning Godot, you’ll be taking your first steps into a career in game development.</p>
<p>💡 <strong>Tip:</strong> This course is perfect for anyone who wants to start developing video games. It covers core concepts in GDScript.</p>
<h2 id="heading-godot-course-in-spanish">Godot Course in Spanish</h2>
<p>Great. Now that you know more about Godot, let's see what you’ll learn during the course:</p>
<ul>
<li><p>Introduction</p>
</li>
<li><p>What is Godot?</p>
</li>
<li><p>Download and install Godot</p>
</li>
<li><p>Lighting</p>
</li>
<li><p>Materials and physics</p>
</li>
<li><p>UI</p>
</li>
<li><p>Movement</p>
</li>
<li><p>Player</p>
</li>
<li><p>First script</p>
</li>
<li><p>Update project</p>
</li>
<li><p>Change inputs for a 3D project</p>
</li>
<li><p>3D platforms and respawn player</p>
</li>
<li><p>Collect coins</p>
</li>
<li><p>3D camera rotation</p>
</li>
<li><p>Character model and animations</p>
</li>
<li><p>Music and sounds</p>
</li>
<li><p>Export video game .exe</p>
</li>
</ul>
<p><img src="https://www.freecodecamp.org/espanol/news/content/images/2025/06/image.png" alt="Godot Fundamentals. Movement and Rotation." width="1920" height="1080" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/espanol/news/content/images/2025/06/image-1.png" alt="Practical project." width="1920" height="1080" loading="lazy"></p>
<p><img src="https://www.freecodecamp.org/espanol/news/content/images/2025/06/image-2.png" alt="Adding a character." width="1920" height="1080" loading="lazy"></p>
<p>By the end of the course, you’ll be familiar with the fundamentals of Godot and you’ll be ready to start developing video games.</p>
<p>If you’re ready to start learning Godot, check out the course on the <a target="_blank" href="https://www.youtube.com/freecodecampespanol">freeCodeCamp.org Spanish YouTube channel</a>:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/7898KcoAmLE" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<p> </p>
<p>✍️ Course created by Luis Canary.</p>
<ul>
<li><p>YouTube: <a target="_blank" href="https://www.youtube.com/channel/UC_XaEmy0Rz49GkrhtpzqWlw">@LuisCanary</a></p>
</li>
<li><p>Instagram: <a target="_blank" href="https://www.instagram.com/luiscanary_/">@luiscanary_</a></p>
</li>
<li><p>Twitter: <a target="_blank" href="https://x.com/luiscanary">@luiscanary</a></p>
</li>
<li><p>TikTok: <a target="_blank" href="https://www.tiktok.com/@luiscanary?lang=es">@luiscanary</a></p>
</li>
<li><p>Twitch: <a target="_blank" href="https://www.twitch.tv/luiscanary">LuisCanary</a></p>
</li>
<li><p>Discord: <a target="_blank" href="https://discord.com/invite/BEQ2UZY">Invitación</a></p>
</li>
<li><p>Facebook: <a target="_blank" href="https://www.facebook.com/LuisCanaryy/">LuisCanaryy</a></p>
</li>
</ul>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Learn to Create a 3D RPG Game with Godot ]]>
                </title>
                <description>
                    <![CDATA[ Godot is an open-source game engine that is perfect for creating both 2D and 3D games. It is known for its user-friendly interface, robust features, and active community support. We just published a course on the freeCodeCamp.org YouTube channel that... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learn-to-create-a-3d-rpg-game-with-godot/</link>
                <guid isPermaLink="false">667448c2181314107bc08b8d</guid>
                
                    <category>
                        <![CDATA[ Godot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ youtube ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beau Carnes ]]>
                </dc:creator>
                <pubDate>Thu, 20 Jun 2024 15:20:34 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1718896810124/a7b14835-9cfb-4211-a6a9-71b7dc34874f.jpeg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Godot is an open-source game engine that is perfect for creating both 2D and 3D games. It is known for its user-friendly interface, robust features, and active community support.</p>
<p>We just published a course on the freeCodeCamp.org YouTube channel that will teach you how to use Godot to create a 3d RPG game. This comprehensive course will guide you through the process of building an engaging 3D RPG game using the powerful and versatile Godot engine. Omar from Coding Quest created this course.</p>
<h3 id="heading-about-godot">About Godot</h3>
<p>Here are some key highlights of Godot:</p>
<ul>
<li><p><strong>Free and Open-Source</strong>: Godot is completely free to use, and its source code is publicly available. You can modify and extend it to fit your needs without any licensing fees.</p>
</li>
<li><p><strong>Cross-Platform</strong>: Develop games that can be exported to multiple platforms, including Windows, macOS, Linux, Android, iOS, and HTML5.</p>
</li>
<li><p><strong>Node-Based Architecture</strong>: Godot’s unique scene system allows for easy organization and reuse of game elements, making the development process more efficient.</p>
</li>
<li><p><strong>Scripting</strong>: Godot uses GDScript, a language similar to Python, for scripting. It also supports other languages like C# and C++.</p>
</li>
<li><p><strong>2D and 3D Support</strong>: With tools for both 2D and 3D game development, Godot provides a flexible environment for creating a wide range of games.</p>
</li>
</ul>
<h3 id="heading-course-overview">Course Overview</h3>
<p>In this course, you will learn step-by-step how to create a fully functional 3D RPG game. Here are the main sections covered in the course:</p>
<ol>
<li><p><strong>Intro</strong>: An overview of what you will learn and the tools you will use.</p>
</li>
<li><p><strong>Starting The Project</strong>: Setting up your Godot project.</p>
</li>
<li><p><strong>GridMap</strong>: Using GridMap to create the game world.</p>
</li>
<li><p><strong>World Environment</strong>: Setting up the world environment for your game.</p>
</li>
<li><p><strong>Adding The Player</strong>: Creating and configuring the player character.</p>
</li>
<li><p><strong>Camera Controller</strong>: Implementing a camera system to follow the player.</p>
</li>
<li><p><strong>Player Movement</strong>: Coding player movement mechanics.</p>
</li>
<li><p><strong>Player Animation</strong>: Adding animations to the player character.</p>
</li>
<li><p><strong>Monster Setup</strong>: Designing and creating the AI skeleton monster.</p>
</li>
<li><p><strong>Finite State Machines Concept</strong>: Understanding the concept of finite state machines for game AI.</p>
</li>
<li><p><strong>Monster State Machine Setup</strong>: Implementing the monster's state machine.</p>
</li>
<li><p><strong>Monster AnimationTree</strong>: Creating animation trees for the monster.</p>
</li>
<li><p><strong>State Machines</strong>: Managing different states within the game.</p>
</li>
<li><p><strong>Changing States</strong>: Coding the logic for changing states.</p>
</li>
<li><p><strong>Player Damaging Monsters</strong>: Implementing mechanics for the player to damage monsters.</p>
</li>
<li><p><strong>Monster Damaging Player</strong>: Coding the mechanics for monsters to damage the player.</p>
</li>
<li><p><strong>Custom Theme</strong>: Designing a custom theme for your game.</p>
</li>
<li><p><strong>Game Over Overlay</strong>: Creating a game over screen.</p>
</li>
<li><p><strong>GUI Setup</strong>: Building the graphical user interface.</p>
</li>
<li><p><strong>Item Resources</strong>: Adding resources for game items.</p>
</li>
<li><p><strong>Inventory Slot</strong>: Setting up inventory slots.</p>
</li>
<li><p><strong>Inventory Item</strong>: Adding items to the inventory.</p>
</li>
<li><p><strong>Adding Items</strong>: Implementing item addition mechanics.</p>
</li>
<li><p><strong>Equipment and Using Items</strong>: Creating equipment and item usage systems.</p>
</li>
<li><p><strong>Profile</strong>: Designing a player profile system.</p>
</li>
<li><p><strong>Total Stats</strong>: Calculating and displaying total player stats.</p>
</li>
<li><p><strong>Custom Health Signals</strong>: Setting up custom health signals.</p>
</li>
<li><p><strong>3D Item Objects</strong>: Adding 3D item objects to the game.</p>
</li>
<li><p><strong>Shop</strong>: Creating an in-game shop.</p>
</li>
<li><p><strong>Level Up</strong>: Implementing a leveling-up system.</p>
</li>
<li><p><strong>Porting to Forward+</strong>: Porting the game to Forward+ rendering.</p>
</li>
<li><p><strong>Level Design</strong>: Designing game levels.</p>
</li>
<li><p><strong>Torch</strong>: Adding torches to light the game world.</p>
</li>
<li><p><strong>Lelu Intro</strong>: Introduction to the Lelu VFX tutorial.</p>
</li>
<li><p><strong>Lelu VFX Tutorial</strong>: Applying visual effects using Lelu.</p>
</li>
<li><p><strong>Applying the VFX</strong>: Enhancing your game with stunning VFX.</p>
</li>
<li><p><strong>Sound Effects</strong>: Adding sound effects to your game.</p>
</li>
<li><p><strong>Spawning Monsters</strong>: Implementing monster spawning mechanics.</p>
</li>
<li><p><strong>Next Steps/Outro</strong>: Summarizing what you have learned and discussing next steps.</p>
</li>
</ol>
<p>This course offers a hands-on approach to game development with Godot, ensuring that you gain practical experience and build a solid foundation in creating 3D RPG games.</p>
<h3 id="heading-get-started-now">Get Started Now!</h3>
<p>Dive into the world of game development with Godot and create your very own 3D RPG game. Head over to the <a target="_blank" href="https://youtu.be/ouqgx1qKSdY">freeCodeCamp.org YouTube channel</a> and start learning today (6-hour watch).</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/ouqgx1qKSdY" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Godot Game Development for Unity Developers ]]>
                </title>
                <description>
                    <![CDATA[ In the wake of the recent controversy surrounding Unity's pricing changes, many game developers have found themselves at a crossroads. The new pricing model proposed by Unity not only shook the indie developer community but led to a significant numbe... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/godot-game-development-for-unity-developers/</link>
                <guid isPermaLink="false">66b202aa25ef0bb2c5a5173a</guid>
                
                    <category>
                        <![CDATA[ Game Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Godot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ youtube ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beau Carnes ]]>
                </dc:creator>
                <pubDate>Mon, 16 Oct 2023 15:36:42 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/10/godotcrash.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In the wake of the recent controversy surrounding Unity's pricing changes, many game developers have found themselves at a crossroads. The new pricing model proposed by Unity not only shook the indie developer community but led to a significant number of developers contemplating a switch to alternative game engines.</p>
<p>If you find yourself among those looking for a fresh start, transitioning to Godot could be a venture worth considering. With a more developer-friendly pricing model and a growing community, Godot is fast becoming a viable alternative to Unity.</p>
<p>We just published a Godot crash course on the freeCodeCamp.org YouTube channel. Omar Zaki created the course. He is a seasoned game developer and has created many popular game development tutorials.</p>
<p>This course is designed to equip you with the fundamental skills required to kickstart your game development journey with Godot. Although tailored for developers transitioning from Unity, the course is an excellent fit for anyone new to the game development realm. Omar will teach you the basics of Godot and in the process you will create a simplistic yet engaging Flappy Bird game.</p>
<p>Here are the sections in this course:</p>
<p><strong>Intro</strong>:<br>Delve into the core objective of the course and what you can expect to achieve upon completion.</p>
<p><strong>Creating Project</strong>:<br>Kickstart your Godot adventure by setting up your first project.</p>
<p><strong>Step 1 - Godot UI</strong>:<br>Familiarize yourself with Godot's user-friendly interface, a significant step towards mastering the engine.</p>
<p><strong>Step 2 - Physics and Programming</strong>:<br>Delve into the heart of game development with an introduction to physics and programming in Godot.</p>
<p><strong>Step 3 - Spawning Objects</strong>:<br>Learn the art of spawning objects, a crucial skill in the realm of game development.</p>
<p><strong>Step 4 - Logic and UI</strong>:<br>Enhance your game with logic and user interface elements to provide an enriched gaming experience.</p>
<p><strong>Outro</strong>:<br>Reflect on the journey and explore the next steps in your game development career with Godot.</p>
<p>As you follow along with this course, the transition from Unity to Godot will feel less like a leap and more like a natural progression. With each section, you'll find yourself becoming more adept at navigating Godot's environment, bringing your game development ideas to fruition.</p>
<p>The world of game development is vast, and Godot is a beacon for those looking to explore new horizons. Watch the <a target="_blank" href="https://www.youtube.com/watch?v=1EFKe24X8vI">course on the freeCodeCamp.org YouTube channel</a> (1-hour watch).</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/1EFKe24X8vI" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Create a 3D RPG Game with Godot ]]>
                </title>
                <description>
                    <![CDATA[ Embark on a journey through the realms of 3D game development with a new video course on the freeCodeCamp.org YouTube channel. Designed by the experienced game developer Omar Zaki, this course will help you master the creation of a 3D Action Role-Pla... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/create-a-3d-rpg-game-with-godot/</link>
                <guid isPermaLink="false">66b2017208bc664c3c097e63</guid>
                
                    <category>
                        <![CDATA[ Game Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Godot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ youtube ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beau Carnes ]]>
                </dc:creator>
                <pubDate>Thu, 29 Jun 2023 13:50:40 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/06/godot.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Embark on a journey through the realms of 3D game development with a new video course on the freeCodeCamp.org YouTube channel.</p>
<p>Designed by the experienced game developer Omar Zaki, this course will help you master the creation of a 3D Action Role-Playing Game (RPG) with the open source Godot engine. </p>
<p>Whether you’re dipping your toes into game development for the first time, or you’re a veteran developer looking to sharpen your skills, this course has something for everyone.</p>
<h2 id="heading-setting-the-foundations">Setting The Foundations</h2>
<p>The course begins by laying a strong foundation. You’ll start by downloading and importing the assets necessary for building your game. All the assets are available for free.</p>
<p>With a wealth of textures, models, and sounds at your disposal, you’ll be geared up to craft a captivating virtual environment.</p>
<h2 id="heading-crafting-your-virtual-world">Crafting Your Virtual World</h2>
<p>Next, Omar guides you through the essentials of creating a dynamic 3D world. You’ll learn how to set up and manipulate the camera, which is pivotal to how players will experience your game. </p>
<p>You'll also dive into GridMap, a powerful tool for level design, to construct elaborate and engaging environments.</p>
<h2 id="heading-animating-your-characters">Animating Your Characters</h2>
<p>A significant portion of the course is dedicated to breathing life into your characters. From establishing basic animations like walking to setting up complex animation trees with various states, you’ll learn how to create characters that are lifelike and responsive.</p>
<h2 id="heading-elements-of-adventure-torches-particles-and-ai-monsters">Elements of Adventure: Torches, Particles and AI Monsters</h2>
<p>What's an RPG without atmospheric elements and formidable foes? You'll learn to create torches with realistic flames using particle systems, adding depth to your environments. </p>
<p>But it’s not just the atmosphere you’ll be focusing on. You’ll also venture into creating AI systems for monsters, ensuring your game provides the thrills players seek.</p>
<h2 id="heading-managing-inventories-and-equipment">Managing Inventories and Equipment</h2>
<p>No RPG is complete without an inventory system. Omar goes in-depth in teaching you how to create an inventory, enable interactions, and manage equipment.</p>
<h2 id="heading-shop-interaction-and-saving-progress">Shop Interaction and Saving Progress</h2>
<p>You’ll also delve into the nuances of creating shop interactions, learning how to design shop UI and scripts for buying items. You'll also learn the indispensable skill of saving and loading inventory, ensuring that players can pick up right where they left off.</p>
<h2 id="heading-wrapping-up">Wrapping Up</h2>
<p>Finally, the course will guide you through cleaning up the UI and polishing your game. Omar concludes the course with final thoughts and advice for aspiring game developers.</p>
<p>Head over to <a target="_blank" href="https://www.youtube.com/watch?v=F2TL525KkiM">freeCodeCamp.org’s YouTube channel</a> and start your adventure in 3D game development with Godot today with this 5-hour course.</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/F2TL525KkiM" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Learn Godot for Game Development ]]>
                </title>
                <description>
                    <![CDATA[ Are you interested in game development but don't know where to start? The Godot game engine is a popular open-source platform for game development, and our new video course on the freeCodeCamp.org YouTube channel will teach you everything you need to... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learn-godot-for-game-development/</link>
                <guid isPermaLink="false">66b2045a39b555ffda8bfea2</guid>
                
                    <category>
                        <![CDATA[ Godot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ youtube ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beau Carnes ]]>
                </dc:creator>
                <pubDate>Wed, 19 Apr 2023 15:06:05 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2023/04/godot.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Are you interested in game development but don't know where to start? The Godot game engine is a popular open-source platform for game development, and our new video course on the freeCodeCamp.org YouTube channel will teach you everything you need to know to create your own platformer game.</p>
<p>The course starts with the basics, such as downloading and setting up the Godot project, and progresses to more advanced topics like designing enemies and incorporating UI elements. You'll learn how to create your first 2D scene, animate your player character, and make a background. You'll also gain valuable skills like scripting, animation, and camera movement.</p>
<p>Throughout the course, you'll work on creating a platformer game step-by-step, with the instructor guiding you through each stage. You'll download game assets, create a player character, and design enemies with AI scripting. You'll also learn how to add a UI, including a main menu and player health display, and implement game-saving features.</p>
<p>This course is suitable for beginners, as it provides a comprehensive introduction to the Godot game engine and its features. Even if you have no previous experience in game development, you'll be able to follow along and create your own platformer game by the end of the course.</p>
<p>Null Game Dev created this course. They are experienced game developers and have created many popular courses.</p>
<p>So, what are you waiting for? Start watching the course on the freeCodeCamp.org YouTube channel (2-hour watch).</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/S8lMTwSRoRg" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ What 2D Game Engine to Use for Your Next Game ]]>
                </title>
                <description>
                    <![CDATA[ By M. S. Farzan A few weeks ago, I posted about my experience attempting to make a prototype in a bunch of different 2D game engines/frameworks to learn what makes them tick. If you're shopping around for an engine for your next 2D game, this article... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/what-2d-game-engine-to-use-for-your-next-game/</link>
                <guid isPermaLink="false">66d85201c1231da2ef2b5a88</guid>
                
                    <category>
                        <![CDATA[ C ]]>
                    </category>
                
                    <category>
                        <![CDATA[ construct 3 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Game Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ game-maker-2 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Godot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ phaser 3 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ React ]]>
                    </category>
                
                    <category>
                        <![CDATA[ unity ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Mon, 04 Nov 2019 20:47:36 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9c9f9f740569d1a4ca4397.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By M. S. Farzan</p>
<p>A few weeks ago, I <a target="_blank" href="https://www.freecodecamp.org/news/how-i-made-a-2d-prototype-in-different-game-engines/">posted about my experience</a> attempting to make a prototype in a bunch of different 2D game engines/frameworks to learn what makes them tick.</p>
<p>If you're shopping around for an engine for your next 2D game, this article will provide some things to consider that may help in your discernment process.</p>
<p>Do note that I'm not attempting to cover every 2D game engine out there; nor am I positioning one engine or framework over another.  These recommendations are from my personal experience using different engines and frameworks for prototyping.</p>
<p>And if you'd prefer to watch rather than read, I've created a video version of this post (26 minute watch):</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/gtKEkuhsWOs" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-react">React</h2>
<p>At first glance, you might be thinking, "<a target="_blank" href="https://reactjs.org/">React</a> is a front end framework for making interactive websites. It's not a game engine!" And you'd be mostly correct.</p>
<p>React doesn't provide native support for game development basics, like, for example, 2D physics, but it <em>does</em> handle state extremely well.  If you're already a JavaScript developer and willing to pair React with something like <a target="_blank" href="https://boardgame.io/">boardgame.io</a> to make a simple 2D game, you could potentially get a prototype up and running pretty quickly.</p>
<p>For all other types of 2D games, you'll want to look elsewhere.</p>
<h2 id="heading-unity">Unity</h2>
<p><a target="_blank" href="https://unity.com/">Unity</a> has made itself ubiquitous in the 2D and 3D game development spaces. I'd position it as an excellent 3D game engine, and a serviceable 2D one.</p>
<p>The Unity editor is fairly complex, with a lot of nested menus that take some time to wrap your head around (check out <a target="_blank" href="https://www.freecodecamp.org/news/take-a-tour-of-unity-2d/">this article</a> for a tour of its 2D features).  If you don't already have a background in C#, which Unity uses for scripting, you'll want to brush up on it prior to learning Unity, as doing so will ease your overall learning curve.</p>
<p>Unity also does a lot of things the "hard way" when it comes to 2D game development, which doesn't <em>feel</em> native compared to other game engines.  Creating a 2D game world in Unity, for example, feels like you're shoehorning a 2D plane into a large 3D space, and things like animation and pixel perfection are more clunky than in other 2D-specific engines.</p>
<p>You can make any type of 2D game with Unity if you're willing to wrestle with the editor and underlying 3D idiosyncrasies. It has extensive community support, and you'll find that working with C# is a delight. Additionally, Unity's Asset Store has all kinds of art and templates for you to download and purchase, but buyer beware: you might spend as much time rewriting someone else's code to fit your project as you would just starting from scratch.</p>
<p>Unity is, in general, free to use, but pricing becomes more complex if you want to use <em>everything</em> it has to offer (see <a target="_blank" href="https://store.unity.com/compare-plans">this page</a> for more details).</p>
<h2 id="heading-godot">Godot</h2>
<p><a target="_blank" href="https://godotengine.org/">Godot</a> is a free and open source 2D and 3D game engine that supports GDScript, C#, and even C++ and Python if you're willing to do a lot of the heavy lifting to make them work.  It supports a node-style workflow and is super lightweight.</p>
<p>If you're a) willing to invest in learning GDScript or b) already super good at C#, C++, or Python, you'll probably be fine in Godot, particularly if you like working with open source software.  If not, you may get easily frustrated, as there isn't nearly as much support for C# or other languages as there is for GDScript.  Still, Godot is a pleasant engine with which to work, and although it may not have the same pedigree and community support as something like Unity, if you're a self-starter you might feel well at home.</p>
<h2 id="heading-construct-3">Construct 3</h2>
<p>If you just want to make 2D games and don't care about programming language or subscription fees, you'll find <a target="_blank" href="https://www.construct.net/en">Construct 3</a> to have everything you need to get a demo up and running, and quickly.  All of your work will be done in a browser, using drag-and-drop tools (and custom JavaScript support if you need it).</p>
<p>Don't expect to have a meaningfully productive experience with Construct 3 for free, however.  There's a simple demo that you can try out, but impactful game development with Construct 3 is locked behind a paywall, and a subscription at that.</p>
<h2 id="heading-game-maker-studio-2">Game Maker Studio 2</h2>
<p><a target="_blank" href="https://www.yoyogames.com/gamemaker">Game Maker Studio 2</a> has a user-friendly editor that supports a proprietary language called, appropriately, Game Maker Language (GML), along with visual scripting.  It also has a lot of tutorials, great community support, and an asset store (which comes with the same caveats as Unity's, above).</p>
<p>The general workflow of Game Maker Studio 2 and doing things like animating sprites, setting up your game world, and so on, are straightforward and intuitive. GML might not be your cup of tea if you're coming from another, more widely-used programming language, and I would <em>not</em> recommend it as your first introduction to learning how to code.  It employs some of the basic concepts of programming, but not important details such as coding best practices or how to write clean code.</p>
<p>Additionally, you can try Game Maker Studio 2 with a free 30-day trial, but will need to pay to continue to use it after that time.</p>
<h2 id="heading-phaser-3">Phaser 3</h2>
<p>If you want to code <em>everything</em> and learn a lot about the JavaScript ecosystem while doing it, check out <a target="_blank" href="http://phaser.io/">Phaser 3</a> (or wait for Phaser 4, which is <a target="_blank" href="https://madmimi.com/p/4f5f0f">on the way</a>).</p>
<p>Phaser is a lightweight and powerful JavaScript framework for making 2D games.  Whereas Phaser 2 was extremely well-documented and had excellent community support, Phaser 3 is quite the opposite.  There's good official documentation and a bunch of examples (without much context around them, it must be said), and a dreadfully small amount of tutorials.</p>
<p>Expect to build everything yourself, but if you're looking for ES6 or TypeScript support, or if you <em>really</em> want to polish your skills as a JavaScript developer, you'll be able to go a long way with Phaser 3.</p>
<p>In the interest of fairness, I should mention a two other 2D game engines that have been recommended to me since I started writing on the topic: <a target="_blank" href="https://love2d.org/">LÖVE 2D</a>, which uses Lua, and <a target="_blank" href="http://www.monogame.net/">MonoGame</a>, which supports C#.  I haven't used either of them (or others, such as <a target="_blank" href="https://www.pygame.org/">PyGame</a>), and can't speak to their usefulness, but they may be worth checking out.</p>
<p>Let me know which 2D game engine you wind up using, and why!</p>
<p>If you enjoyed this article, please consider <a target="_blank" href="https://www.nightpathpub.com/">checking out my games and books</a>, <a target="_blank" href="https://www.youtube.com/msfarzan?sub_confirmation=1">subscribing to my YouTube channel</a>, or <a target="_blank" href="https://discord.gg/RF6k3nB">joining the <em>Entromancy</em> Discord</a>.</p>
<p><strong>M. S. Farzan, Ph.D.</strong> has written and worked for high-profile video game companies and editorial websites such as Electronic Arts, Perfect World Entertainment, Modus Games, and MMORPG.com, and has served as the Community Manager for games like <em>Dungeons &amp; Dragons Neverwinter</em> and <em>Mass Effect: Andromeda</em>. He is the Creative Director and Lead Game Designer of <em><a target="_blank" href="https://www.entromancy.com/rpg">Entromancy: A Cyberpunk Fantasy RPG</a></em> and author of <em><a target="_blank" href="http://nightpathpub.com/books">The Nightpath Trilogy</a></em>. Find M. S. Farzan on Twitter <a target="_blank" href="http://www.twitter.com/sominator">@sominator</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ I attempted to make the same 2D game prototype in React, Unity, Godot, Construct, Game Maker, and Phaser. Here's what I found. ]]>
                </title>
                <description>
                    <![CDATA[ By M. S. Farzan I'm a tabletop game developer. In designing a new card game, I decided to build a digital prototype to help me run simulations and easily share a proof of concept with collaborators. I have some background in JavaScript and C#, and I ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-i-made-a-2d-prototype-in-different-game-engines/</link>
                <guid isPermaLink="false">66d851e4e0db794d56c01bf5</guid>
                
                    <category>
                        <![CDATA[ phaser 3 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ C ]]>
                    </category>
                
                    <category>
                        <![CDATA[ construct 3 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Game Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ game-maker-2 ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Godot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ React ]]>
                    </category>
                
                    <category>
                        <![CDATA[ unity ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ freeCodeCamp ]]>
                </dc:creator>
                <pubDate>Fri, 11 Oct 2019 16:17:31 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/10/EntromancyHB_Logo_COLOR.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>By M. S. Farzan</p>
<p>I'm a tabletop game developer. In designing a new card game, I decided to build a digital prototype to help me run simulations and easily share a proof of concept with collaborators.</p>
<p>I have some background in JavaScript and C#, and I set out as many do: by spending an inordinate amount of time in "what framework should I use" threads and reading documentation without actually making anything. </p>
<p>Flash forward many months, and I've now spent more time working in (and wrestling with) React, Unity, Godot, Construct 3, Game Maker Studio 2, and Phaser 3, in an attempt to understand what makes them tick.</p>
<p>Admittedly, I think I've spent <em>way more</em> time in each of them than necessary to make my little game, and I probably could have just stuck with the first one and blundered my way through the prototype. I'm hoping the below info will be helpful for anyone else who is shopping around for an engine or framework.</p>
<p>Bunch of caveats: I'm not attempting to sell one engine or framework over the others, and I'm also not suggesting that one or any of these frameworks will work for your game better than another. I'm also not comparing pricing, back end functionality, or platform deployment. So depending on your requirements, the below information might be of differing value to you.</p>
<p>Additionally, this experience is based on development for a 2D card game, so I won't be discussing 3D engines, physics, etc.</p>
<p>You can also <strong>skip to the bottom for the TL;DR.</strong></p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/gtKEkuhsWOs" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="YouTube video player" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen="" loading="lazy"></iframe></div>
<h2 id="heading-the-prototype">The Prototype</h2>
<p>My game, <em>Entromancy: Hacker Battles</em>, is a competitive cyberpunk card game with TCG-light mechanics. You can read more on our <a target="_blank" href="https://www.entromancy.com">website</a> or watch how it's meant to be played in <a target="_blank" href="https://www.entromancy.com/single-post/2019/09/26/Get-a-Sneak-Peek-at-Entromancy-Hacker-Battles">this video</a>. But suffice it to say that, as a card game, it requires a potential digital framework to support basic things like state management, UI, drag-and-drop UX, and back end hooks for implementing multiplayer.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/HackerBattles_Card-Mockup.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Given these requirements, I explored the following frameworks and engines to see which one would be most suitable for making my game...instead of actually <em>making</em> the game (I'm happy to say that now that I've settled on a framework, I'm making a lot more progress). </p>
<p>You can access a playable version <a target="_blank" href="https://sominator.github.io/hacker-battles/">here</a>, and although the game is further along than the live prototype would suggest, this version is pretty stable (in Chrome at least).</p>
<h2 id="heading-react">React</h2>
<p>Having already built a character generator prototype in <a target="_blank" href="https://reactjs.org/">React</a> for a <a target="_blank" href="https://www.entromancy.com/rpg">tabletop RPG I designed</a>, I thought a natural step would be to give the framework a spin for the card game. I found state management to be a breeze (it's what React <em>does</em>, after all), whereas implementing simple drag-and-drop functionality for cards proved to be a nightmare.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/React_Native_Logo.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>There are some libraries out there that can help with basic drag-and-drop (e.g. <a target="_blank" href="https://react-dnd.github.io/react-dnd/about">React DnD</a>), but I found that with a card game, I needed a more elegant solution for dropzones, as Hacker Battles is very specific about which cards can be played where, and when.</p>
<p>This experience led me to check out <a target="_blank" href="https://boardgame.io/">boardgame.io</a>, which can work in tandem with React. But this ultimately required me to learn another framework on top of an existing framework, which was less than ideal for my purposes.</p>
<h2 id="heading-unity">Unity</h2>
<p>Out of general interest, I had spent a lot of time in <a target="_blank" href="https://unity.com">Unity</a> doing tutorials and learning how to use the editor before attempting to remake the card game prototype with it. The asset store is a great resource, and there's so much documentation, official and unofficial, out there that I was confident I could find an answer to any issue I might encounter.</p>
<p>My experience with Unity thus far has been a mixed bag. I really enjoy working in C#, and anything code-related has been a relatively pain-free experience. However, Unity is very specific about its implementation and can feel counter-intuitive at times.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/1280px-Unity_Technologies_logo.svg.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>The editor, on the other hand, is a bear to work with. To harness Unity's full potential, you need to spend a good long while wrestling with the UI to understand where everything is and how to use it. It's also desperately behind the times with 2D game development, clearly attempting to flatten a primarily 3D engine into a 2D plane, with mixed results.</p>
<p>To be fair, I quite enjoy working in the Unity editor, clunky as it is. But if you're looking for a 2D game engine, your quality of life will be a lot higher elsewhere (watch a video on Unity's animation system or achieving pixel perfection and you'll see what I mean). </p>
<p>Ultimately, Unity's handling of the 2D space is a bit more complex than I need for my prototype, but I will return to it for other types of games.</p>
<p>Also, a sidebar that might be useful to some: I was initially extremely excited about the asset store, with the idea that I could purchase a card game template that would make the development process that much easier for me. It didn't work out. Most of them were MTG/Hearthstone/etc. clones that would require just as much development time on my part to restructure them for my card game as it would to just start from scratch. </p>
<h2 id="heading-godot">Godot</h2>
<p>My first thought upon encountering <a target="_blank" href="https://godotengine.org">Godot</a> was: "open source game engine that supports C#? Sign me up!" Then I downloaded it, worked through a couple of basic tutorials, and had it crash on build. Hurm.</p>
<p>Several Google searches, reinstalls, and hairs pulled later, I figured out it had something to do with my version of VS Build (I think?), which led me down a separate rabbit hole. I knew from experience that other engines - Unity chief among them - could cause game-breaking issues completely outside of your own code, but this was an annoying hurdle that likely colored the rest of my experience with Godot.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/Godot_logo.svg" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In terms of the editor, I quite liked Godot's node-based implementation, which I actually found counter-intuitive coming from Unity's prefabs, but eventually warmed to. I'd actually go as far as to say that its 2D functionality is <em>better</em> than Unity's, but it's missing the community, asset store (see sidebar above), and especially, the documentation that Unity has. If you're intending in working in C# with Godot, for example, be prepared to look for answers in the engine's custom GDScript and then translating them to C#.</p>
<p>I have heard, however, of people experiencing great success with Godot while using GDScript, so if you're willing to invest the time to learn it you might enjoy what Godot has to offer.</p>
<h2 id="heading-construct-3">Construct 3</h2>
<p>In the caveats that I listed above, I mentioned that I'm not including pricing as a point of discussion. Still, I feel like I need to bring it up with <a target="_blank" href="https://construct.net/">Construct 3</a>, as it turned out to be impactful in my experience. </p>
<p>Unlike the other game engines listed here, which are, for the most part, free to use (Game Maker Studio 2 has a 30-day free trial), the vast majority of Construct's functionality is behind a pay wall, and a subscription fee at that. Ugh.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/Construct_3_Logo.svg" alt="Image" width="600" height="400" loading="lazy"></p>
<p>I really, <em>really</em> like the cut of Construct's jib for simple 2D games. The editor feels a bit like an upgrade from MS Paint, but it handles sprite and object management really well, and is just plain easy to use. I don't love that it uses a "visual scripting" style, but they've recently added the feature of writing plain old JavaScript and it seems to more or less work.</p>
<p>I was able to spin up a very rudimentary architecture for the prototype in a brief amount of time before closing the Construct 3 demo (which runs in a browser)...and then trying it all again later with a new demo. I feel like, at least for this card game, I could do a lot with Construct 3, but I'm just not willing to pay $99/year (or more, as a business) for a prototype.</p>
<h2 id="heading-game-maker-studio-2">Game Maker Studio 2</h2>
<p>YoYo Games has clearly done a lot of work to make <a target="_blank" href="https://www.yoyogames.com/gamemaker">Game Maker Studio 2</a> accessible and easily navigable, and it shows. Of all of the engines that I've used for this project, I like the GMS editor the most. For a small project, it's easy to find your way around and go about your business. I suspect, however, that a larger project might get out of hand pretty quickly.</p>
<p>This might be influenced by Game Maker Studio's proprietary language, GML (although GMS 2 supports visual scripting, which I did not use). It works, but if you're coming to it from another OOP language (or, truly, any other widely used language), you might scratch your head at the implementation or figuring out how to do some things. If you're a beginner or willing to spend time figuring out how GMS <em>wants</em> you to use GML, you'll probably be fine.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/download.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>I experienced some quirkiness with Game Maker Studio's drag-and-drop functionality - namely, mouse pointer detection upon dragging is a little wonky and requires some scaffolding to make work correctly. </p>
<p>I think - and this is totally personal preference and laziness on my part - that if GMS offered the ability to use another, non-proprietary programming language, I would spend the time to do more damage here. I'm all for leveling up multiple skills while working, whereas spending the time to become an expert in the GMS editor <em>and</em> GML without being able to easily apply that knowledge elsewhere doesn't seem worthwhile.</p>
<p>Still, it's a pretty workable 2D editor, and although the community support may not be on par with Unity's, it's still pretty good.  Beware, also, that once your free trial is up, you'll have to pay to continue using Game Maker Studio 2.</p>
<h2 id="heading-phaser-3">Phaser 3</h2>
<p><a target="_blank" href="https://www.freecodecamp.org/news/how-i-made-a-2d-prototype-in-different-game-engines/phaser%20io">Phaser</a> is a lightweight, open-source JavaScript game framework. There are some Phaser IDEs around, but if you're of the sort that wants to work primarily in code, you might wind up here, using Atom, Sublime, or your favorite editor.</p>
<p>Phaser 2 was and is widely used and well-documented with a ton of tutorials to draw upon. Phaser 3 is the opposite. It has a comparatively high learning curve for beginners, with a bunch of examples and not a lot of context around them. </p>
<p>A lot of the tutorials out there support Phaser 2, and while the learning is transferable, the code is not. Additionally, the devs <a target="_blank" href="https://madmimi.com/p/4f5f0f">recently announced that they'll be moving support to Phaser 4</a> (and TypeScript rather than ES6), which is not great if you've spent time working in Phaser 3.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/Phaser_-game_framework-_logo.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you're not a professional programmer (I'm not) and up-to-speed with ES6 classes and JavaScript best practices (I wasn't), you might become quickly frustrated with Phaser's lack of handholding and having to set up your own IDE and work flow (I was). </p>
<p>However, I've found it to be a powerful, lightweight framework that does a lot of things in a much more streamlined fashion than other game engines. Drag-and-drop functionality for the card game has been a relative breeze, and the ability to separate card types into classes (sort of like Unity's prefabs) has compartmentalized some of the cognitive load that this kind of game requires.</p>
<p>If you're a front end developer, you might like or be comfortable with hard coding pixel coordinates for everything, but sheesh, is this painstaking work. Additionally, if you're not up-to-speed on everything JavaScript, you'll most likely be searching for answers in non-Phaser circles and then applying them to your project, which has its own benefit, I suppose.</p>
<p>One other note in case it's not clear: Phaser 3 <em>does</em> have quite a bit of official documentation and examples, but it <em>doesn't</em> have the community or Stack Overflow answers that a lot of other game engines enjoy. If you run into an issue or can't figure something out, you'll have to figure out your own solution or post your question on the Phaser Discord server, which has been helpful in my experience.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Given all of the above, the prototype I've stuck with and continue to iterate upon is the one I've built with Phaser 3. I realize that this may be anti-climactic, as Phaser isn't inherently "better" than the other frameworks and engines at 2D game development (except for, perhaps, React, which isn't trying to be a competitor in the digital game space).</p>
<p>Phaser does, however, seem to handle drag-and-drop and game loop management for <em>Hacker Battles</em> more smoothly, and for my purposes, that's important. I also enjoy that using Phaser is requiring me to invest more heavily in the JavaScript ecosystem(s) and communities, but I'm interested in doing that anyway so it feels like a bonus. </p>
<p>If you're more of the "what can I use to build something quickly and not care about the context in which the engine is situated" type, YMMV.</p>
<h2 id="heading-tldr">TL;DR</h2>
<p><strong>React:</strong> great for front end development. Wouldn't use it for games, particularly drag-and-drop.</p>
<p><strong>Unity:</strong> you can make any type of 2D game if you're willing to wrestle with the editor and underlying 3D idiosyncrasies. Great community support, and C# is awesome. Asset store exists, but may not be useful for your purposes.</p>
<p><strong>Godot:</strong> open source and supports GDScript, C#, even C++ and Python if you're willing to do a lot of the heavy lifting. Good 2D implications but not nearly as much community support as something like Unity. Also, my experience was buggy.</p>
<p><strong>Construct 3:</strong> really easy to use, high barrier to entry because of the subscription paywall. Visual scripting may get on your nerves if you're looking to use or learn code, although there is now some JavaScript support.</p>
<p><strong>Game Maker Studio 2:</strong> user-friendly editor with good community support. GML or visual scripting might not be your cup of tea if you're coming from another more popular programming language, but hey, when in Rome. Also, requires payment after a 30-day free trial.</p>
<p><strong>Phaser 3:</strong> expect to code everything, and do a lot of searching to figure out how to make things work. It's working for me for this particular game and prototype, but Phaser 4 is on the way, so there's that.</p>
<p>I hope this post is useful in your own search and discernment process. I'd love to hear about your own experience(s), too, with any of these frameworks/engines or others!</p>
<p>If you enjoyed this article, please consider <a target="_blank" href="https://www.nightpathpub.com/">checking out my games and books</a>, <a target="_blank" href="https://www.youtube.com/msfarzan?sub_confirmation=1">subscribing to my YouTube channel</a>, or <a target="_blank" href="https://discord.gg/RF6k3nB">joining the <em>Entromancy</em> Discord</a>.</p>
<p><strong>M. S. Farzan, Ph.D.</strong> has written and worked for high-profile video game companies and editorial websites such as Electronic Arts, Perfect World Entertainment, Modus Games, and MMORPG.com, and has served as the Community Manager for games like <em>Dungeons &amp; Dragons Neverwinter</em> and <em>Mass Effect: Andromeda</em>. He is the Creative Director and Lead Game Designer of <em><a target="_blank" href="https://www.entromancy.com/rpg">Entromancy: A Cyberpunk Fantasy RPG</a></em> and author of <em><a target="_blank" href="http://nightpathpub.com/books">The Nightpath Trilogy</a></em>. Find M. S. Farzan on Twitter <a target="_blank" href="http://www.twitter.com/sominator">@sominator</a>.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ Learn to create a 2D platformer game using the Godot game engine ]]>
                </title>
                <description>
                    <![CDATA[ Learn to use Godot by building a 2D platformer game in this tutorial for absolute beginners from Awesome Tuts. Godot is a 2D and 3D cross-platform game engine released as open-source software. In the process of creating a simple game called "Monster ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/create-a-2d-platformer-game-using-the-godot/</link>
                <guid isPermaLink="false">66b2016c08bc664c3c097e5f</guid>
                
                    <category>
                        <![CDATA[ Game Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Godot ]]>
                    </category>
                
                    <category>
                        <![CDATA[ youtube ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Beau Carnes ]]>
                </dc:creator>
                <pubDate>Mon, 22 Jul 2019 15:40:47 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2019/07/godot.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Learn to use Godot by building a 2D platformer game in this tutorial for absolute beginners from Awesome Tuts. Godot is a 2D and 3D cross-platform game engine released as open-source software.</p>
<p>In the process of creating a simple game called "Monster Chase", you will learn the basics of Godot that you can start applying to your own games. You will learn how to create and control a player, create monsters, add monster AI, and more.</p>
<p>You can watch the full video course on the <a target="_blank" href="https://www.youtube.com/watch?v=fQXKjmCDkIA">freeCodeCamp.org YouTube channel</a> (1 hour watch).</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
