<?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[ Video games - 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[ Video games - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Sun, 26 Jul 2026 04:14:09 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/video-games/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Learn to Code RPG Player Guide – How to Unlock All Achievements and Endings ]]>
                </title>
                <description>
                    <![CDATA[ In this guide, you'll learn to how to collect all 54 achievements and reach all six endings of the Learn to Code RPG.  According to the game's creator, Lynn Zheng, Learn to Code RPG is an interactive visual novel game where you will teach yourself t... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learntocoderpg-player-guide-how-to-unlock-all-achievements-and-endings/</link>
                <guid isPermaLink="false">66b0c3a293daff72552fc865</guid>
                
                    <category>
                        <![CDATA[ freeCodeCamp.org ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #Game Design ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Game Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Video games ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Ilenia Magoni ]]>
                </dc:creator>
                <pubDate>Mon, 31 Jan 2022 21:32:45 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/01/Splash-Art-2.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>In this guide, you'll learn to how to collect all 54 achievements and reach all six endings of the Learn to Code RPG. </p>
<p>According to the game's creator, <a target="_blank" href="https://www.freecodecamp.org/news/author/lynn/">Lynn Zheng</a>,</p>
<blockquote>
<p><strong>Learn to Code RPG</strong> is an interactive visual novel game where you will teach yourself to code, make friends in the tech industry, and pursue your dream of becoming a developer. 🎯</p>
</blockquote>
<p>If this is the first time you're hearing about this game, you can <a target="_blank" href="https://freecodecamp.itch.io/learn-to-code-rpg">download it and play it first on your own</a>. </p>
<p>And if you want to learn more about the game from Lynn herself, <a target="_blank" href="https://www.freecodecamp.org/news/learn-to-code-rpg/">check out this introductory article</a>.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/image-139.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-learn-to-code-rpg-story-milestones">Learn to Code RPG Story Milestones</h2>
<p>These are the achievements that you get for sure by following the storyline.</p>
<p><strong>3, 2, 1, Learn to Code!</strong> You'll get this achievement the first time you start working on the quizzes.</p>
<p><strong>Got My First Interview!</strong> You get this achievement once your character goes through their first interview after completing the curriculum.</p>
<p><strong>Got My First Offer!</strong> Once you receive your first job offer you get this achievement.</p>
<p><strong>Gotta Crush Those Technical Interviews!</strong> Once you start preparing for the technical interviews you get this achievement.</p>
<p><strong>Nailed the Curriculum!</strong> You unlock this achievement once you reach a CS Knowledge of 60 or more, enough to allow you to go to the next step. </p>
<p><strong>Now Streaming: My Dream Dev Job</strong> You unlock this achievement once you accept an offer for a dev job.</p>
<p><strong>Submitted My First Dev Job Application!</strong> When you submit your first job application, you get this achievement.</p>
<h2 id="heading-learn-to-code-rpg-story-easter-eggs">Learn to Code RPG Story Easter Eggs</h2>
<p>You can unlock these special achievements mostly by making certain choices in the game, by employing some skill, or in some cases by pure chance.</p>
<p><strong>Applied to CupcakeCPU Through a Recruiter</strong>: This achievement has the prerequisite of getting all the questions of the trivia quiz at the Hacker Space right. This will give you the opportunity to apply to CupcakeCPU.</p>
<p><strong>Asked My Tech-Savvy Friends about Tech Buzzwords</strong>: Ask about one of the buzzwords you discovered by eavesdropping on people's conversations.</p>
<p><strong>Barista Is My Undercover Identity for Collecting Buzzwords</strong>: You unlock this one during your first Barista shift.</p>
<p><strong>Beat Up AI at Pong</strong>: beat the Pong AI to unlock this achievement.</p>
<p><strong>Chill Beats to Code to</strong>: listen to music during one of your rest days.</p>
<p><strong>Chill Beats to Smash Keyboard to</strong>: play the rythm game during one of your rest days.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/Screen-Shot-2021-12-17-at-19.33.39.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><strong>Flunked All Quizzes in a Session</strong>: Get all questions in a session wrong.</p>
<p><strong>Got Beaten Up by AI at Pong</strong>: lose at Pong. </p>
<p><strong>Got a Nearly Perfect Score on ALL Music Tracks</strong>: Get above 95% for all tracks. See next achievements for details.</p>
<p><strong>Got a Nearly Perfect Score on My Favorite Music Track</strong>: Get this achievement for reaching a score above 95%. For reference to reach 90% you need at least 3/4 of your scores to be perfects (100pt each) and 1/4 to be goods (60pt each).</p>
<p><strong>Hanging Out at the Hacker Space</strong>: you get this achievement after hanging out at the Hacker Space for the first time.</p>
<p><strong>I Might Get a Puppy Just So I Can Go to the Park</strong>: Go take a walk on one of your rest days.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/image-140.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><strong>Late-night Cookie Crunch</strong>: When confronted with all the certifications available in the freeCodeCamp curriculum, choose Quality Assurance and go grab a cookie.</p>
<p><strong>Maxed Out ALL CS Knowledge Stats</strong>: Max out all of the CS Knowledge Stats.</p>
<p><strong>Maxed Out One CS Knowledge Stat</strong>: Max out one of the CS Knowledge Stats.</p>
<p><strong>Nailed All Quizzes in a Session</strong>: Get all quizzes in a session right.</p>
<p><strong>Referred by a VIP Member</strong>: In the intro, after the disaster of an interview you are asked how you came across the opportunity. If you say you were referred by certain people, for example, me, you can get the achievement. (Fine, the complete list of names is Quincy, Lynn, Abbey, Estefania, Jessica, Oliver, Ilenia, Dionysia, Naomi, Yoko, Daniel, Beau.)</p>
<p><strong>Rejected? Well, The First One Seldom Works Out</strong>: Be rejected by a job you applied to for the first time.</p>
<p><strong>Rejected Again? I Thought Third Time Was the Charm</strong>: Be rejected by a job you applied to for the third time.</p>
<p><strong>Set a New High Score in the Rhythm Game</strong>: available from the second time you play a song, just get a new high score!</p>
<p><strong>Tech Buzzword Encyclopedia</strong>: collect all buzzwords at the coffee shop.</p>
<p><strong>Tech Trivia Guru</strong>: Answer correctly to all questions in the Trivia quiz at the Hacker Space.</p>
<p><strong>The Hacker Space Is My Second Home Now</strong>: Experience all events at Hacker Space.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/Screen-Shot-2021-12-18-at-12.40.00-copy.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><strong>This Job Needs Me to... ?</strong>: there are 6 achievements of this kind, related to job interviews. You could find job postings that have strange skill requirements, and finding those you unlock these achievements. The whole list of skill requirements is: <strong>Brew Coffee</strong>, <strong>Fix Fax Machines</strong>, <strong>Fuse Cables</strong>, <strong>Handle Angry Customers</strong>, <strong>Pacify Office Pets</strong>, and <strong>Retrieve Lost Passwords</strong>.</p>
<p><strong>Travel in Time and SAVE the World</strong>: unlock one of the alternative endings (ones that are not getting a dev job) and then go back in time to continue playing.</p>
<p><strong>You Can Never Be Too Careful with Prod</strong>: get a dev job, and once it's time to push your code to production, check your code again and again as many times as possible.</p>
<h2 id="heading-quiz-question-easter-eggs">Quiz Question Easter Eggs</h2>
<p>These are achievements that are unlocked by chance while you complete the quizzes. If you get one of the questions about freeCodeCamp right, you unlock one of these achievements.</p>
<ul>
<li>Contribute to Open Source with freeCodeCamp!</li>
<li>Dr. DevDocs.io</li>
<li>Hello, Earth to Code Radio!</li>
<li>The Launch of freeCodeCamp</li>
<li>The Mission of freeCodeCamp</li>
<li>The Tech Stack of freeCodeCamp</li>
<li>What inspired freeCodeCamp?</li>
<li>freeCodeCamp Has a Chat Server? Fancy!</li>
<li>freeCodeCamp Has a Forum? Neat!</li>
<li>freeCodeCamp Has a Mascot? Cute!</li>
</ul>
<h2 id="heading-alternative-learn-to-code-rpg-endings">Alternative Learn to Code RPG Endings</h2>
<p>These are the achievements you unlock by playing the six different endings. There's one you can get to easily just by following the main storylines – but the others are all about chance. There is a small chance of the event that unlocks the ending happening in certain moments.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2022/01/Screen-Shot-2021-12-17-at-18.51.41.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><strong>Cat Who Codes</strong>: this ending involves Mint the cat, during the night you could be woken up by the cat doing something...<br>Coding It Forward: during dinner you could have the chance to become a coding tutor, accept the offer to unlock this ending.<br>Dev Who Brought Down Prod on the First Day: get a dev job and play till the end to unlock this one.<br>Just Another Day at the Office: while going through job postings you could find one unrelated to coding, for an office job. Accept that job to unlock this ending.<br>Nature Lover at Heart: each day of forced rest there is a small chance that the character may come to the conclusion that learning to code is too much and decide to do something different...<br>Now serving <code>0xc0ffee</code>: you could be offered a promotion at the Coffee Shop, accept it to unlock this ending.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>This is the list of achievements for the release on December 22nd. I hope you can satisfy your completionist spirit with this guide. Have nice replays!</p>
<p>If you want to learn more about the game you can read the article <em><a target="_blank" href="https://www.freecodecamp.org/news/learn-to-code-rpg-press-kit/">Learn to Code RPG – A Visual Novel Video Game Where you Learn Computer Science Concepts</a></em> from the game dev herself about the process of creating the game.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Make a Video Game – Create Your Own Game From Scratch Tutorial ]]>
                </title>
                <description>
                    <![CDATA[ Game development is a popular field within the software industry. But what does it take to start building games from scratch? In this article, I will talk about the different game engines and tools that you can use to build your own games. I will als... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-make-a-video-game-create-your-own-game-from-scratch-tutorial/</link>
                <guid isPermaLink="false">66b8d99498b552b8a8592b26</guid>
                
                    <category>
                        <![CDATA[ Game Development ]]>
                    </category>
                
                    <category>
                        <![CDATA[ unity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ unreal-engine ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Video games ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jessica Wilkins ]]>
                </dc:creator>
                <pubDate>Tue, 12 Oct 2021 15:34:31 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/10/branden-skeli-r4YWfVVwTQ8-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Game development is a popular field within the software industry. But what does it take to start building games from scratch?</p>
<p>In this article, I will talk about the different game engines and tools that you can use to build your own games. I will also provide you with dozens of resources and tutorials to help get you started.</p>
<p>There are many tools and game engines out there but I will cover a few of the popular ones. </p>
<ol>
<li><a class="post-section-overview" href="#heading-unity">Unity</a></li>
<li><a class="post-section-overview" href="#heading-unreal">Unreal Engine</a></li>
<li><a class="post-section-overview" href="#heading-godot">Godot</a></li>
<li><a class="post-section-overview" href="#heading-phaser">Phaser</a></li>
<li><a class="post-section-overview" href="#heading-gamemaker-studio">GameMaker Studio</a> </li>
<li><a class="post-section-overview" href="#heading-cryengine">CryEngine</a></li>
<li><a class="post-section-overview" href="#heading-amazon-lumberyard">Amazon Lumberyard</a></li>
<li><a class="post-section-overview" href="#heading-renpy-visual-novel-engine">Ren'Py Visual Novel Engine</a></li>
<li><a class="post-section-overview" href="#heading-pygame">Pygame</a></li>
<li><a class="post-section-overview" href="#heading-love">LÖVE</a></li>
<li><a class="post-section-overview" href="#heading-kaboomjs">Kaboom.js</a></li>
</ol>
<h2 id="heading-unity">Unity</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-1.47.43-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>This is a cross platform video game engine that is popular with game developers. Unity supports many platforms including iOS, Android, Windows, Mac, Linux and game consoles such as PlayStation and Xbox.</p>
<p>Some popular games that have been built with Unity include Cuphead, Pillars Of Eternity, Ori And The Blind Forest, Escape Plan, and Hearthstone. </p>
<p>Unity provides you with the opportunity to create your own 2D and 3D games. You can create shooter games, platformer games, educational games and more with Unity.</p>
<p>The programming language used with Unity is C#. If you are new to C#, you can take <a target="_blank" href="https://www.youtube.com/watch?v=GhQdlIFylQ8">this freeCodeCamp YouTube course</a>. </p>
<p>To get started with Unity, you can sign up for a free plan on their website. They offer <a target="_blank" href="https://store.unity.com/#plans-individual">free plans</a> for both students and individual use. </p>
<p>Unity also provides hours of courses, project tutorials, live training sessions and certifications. All of this education is available on their <a target="_blank" href="https://unity.com/learn#explore-how-you-can-develop-your-skills--2">website</a>. </p>
<p>freeCodeCamp also provides many resources to help you get started.</p>
<ul>
<li><a target="_blank" href="https://www.freecodecamp.org/news/game-development-for-beginners-unity-course/">Game Development for Total Beginners - Free Unity Course</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/learn-unity-multiplayer-basics-with-mirror/">Learn Unity Multiplayer Basics with Mirror</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/learn-c-and-unity-by-making-digital-tabletop-games/">Learn C# and Unity by Making Digital Tabletop Games</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/unity-game-engine-guide-how-to-get-started-with-the-most-popular-game-engine-out-there/">Unity Game Engine Guide: How to Get Started with the Most Popular Game Engine Out There</a></li>
</ul>
<h2 id="heading-unreal">Unreal</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-1.56.37-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Unreal is a game engine where you can build 3D games. Unreal supports many platforms including iOS, Android, Windows, Mac, Linux and game consoles such as PlayStation, Xbox and Nintendo Switch.</p>
<p>Popular games built with the Unreal game engine include Fortnite, Yoshi's Crafted World, Hellblade: Senua's Sacrifice, Street Fighter 5, and Star Wars Jedi: Fallen Order. </p>
<p>The programming language used with Unreal is C++. If you are new to C++, you can take <a target="_blank" href="https://www.youtube.com/watch?v=vLnPwxZdW4Y">this freeCodeCamp YouTube course</a>. </p>
<p>You can download the Unreal game engine for free on <a target="_blank" href="https://www.unrealengine.com/en-US/download">their website</a>. They also provide 100's of hours of <a target="_blank" href="https://www.unrealengine.com/en-US/learn">free online tutorials</a>.  </p>
<p>freeCodeCamp also provides many resources to help you get started.</p>
<ul>
<li><a target="_blank" href="https://www.freecodecamp.org/news/learn-unreal-engine-by-creating-three-games/">Learn Unreal Engine 4 by Coding 3 Games - A Free 5-hour Game Dev Video Course</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/unreal-engine-course-create-a-2d-snake-game/">Unreal Engine Course: Create a 2D Snake Game</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/create-a-2-5d-platformer-game-with-unreal-engine/">How to Build A 2.5D Platformer Game With Unreal Engine – a Free 3-hour Course</a></li>
</ul>
<h2 id="heading-godot">Godot</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-2.36.55-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Godot is a free open source game engine designed to create 2D and 3D games. Godot supports many platforms including iOS, Android, Windows, Mac, and Linux. </p>
<p>Some popular games that have been built with Godot include Carol Reed Mysteries, Commander Keen in Keen Dreams, and Cruelty Squad. </p>
<p>Godot supports a few programming languages but the main ones are GDScript and VisualScript. To learn more about supported languages, please visit the <a target="_blank" href="https://docs.godotengine.org/en/stable/getting_started/step_by_step/scripting.html">documentation</a>.</p>
<p>To get started working with Godot, you can go to their <a target="_blank" href="https://godotengine.org/download">download page</a>. Godot provides many free tutorials in their <a target="_blank" href="https://docs.godotengine.org/en/stable/">learn section</a>.   </p>
<p>freeCodeCamp also provides <a target="_blank" href="https://www.freecodecamp.org/news/create-a-2d-platformer-game-using-the-godot/">this YouTube tutorial</a> on Godot. </p>
<h2 id="heading-phaser">Phaser</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-2.58.38-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Phaser is a free open source platform where you can build HTML 5 games for mobile and desktop. Phaser supports iOS, Android, as well as like Apache Cordova and phonegap.</p>
<p>Phaser provides you the opportunity to create your own shooter games, platformer games, educational games, and more. The primary languages used are JavaScript and TypeScript. </p>
<p>If you are new to either of those languages you can look into these freeCodeCamp beginner tutorials. </p>
<ul>
<li><a target="_blank" href="https://www.youtube.com/watch?v=PkZNo7MFNFg">Learn JavaScript - Full Course for Beginners</a></li>
<li><a target="_blank" href="https://www.youtube.com/watch?v=gp5H0Vw39yw">Learn TypeScript - Full Course for Beginners</a></li>
</ul>
<p>To get started working with Phaser, you can go to <a target="_blank" href="https://phaser.io/download">the download page</a> on their website. Phaser offers dozens of <a target="_blank" href="https://phaser.io/learn">free tutorials</a> to help you get started creating your first games. </p>
<p>If you have experience working with Node, Express, Vue or Socket.IO, then you can look into these tutorials. </p>
<ul>
<li><a target="_blank" href="https://www.freecodecamp.org/news/how-to-build-a-multiplayer-tabletop-game-simulator/">How to Build a Multiplayer Tabletop Game Simulator with Vue, Phaser, Node, Express, and Socket.IO</a></li>
<li><a target="_blank" href="https://www.freecodecamp.org/news/how-to-build-a-multiplayer-card-game-with-phaser-3-express-and-socket-io/">How to Build a Multiplayer Card Game with Phaser 3, Express, and Socket.IO</a></li>
</ul>
<h2 id="heading-gamemaker-studio">GameMaker Studio</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-3.15.30-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>GameMaker Studio is a cross platform video game engine where you can create your own 2D games. GameMaker supports many platforms including iOS, Android, Windows, Mac and game consoles such as PlayStation and Xbox.</p>
<p>Popular games made with GameMaker Studio include Undertale: Overwhelmingly Positive, Shovel Knight: Treasure Trove: Overwhelmingly Positive and Katana Zero: Overwhelmingly Positive.</p>
<p>GameMaker Studio uses the GameMaker Language and you can learn more by visiting the <a target="_blank" href="https://manual.yoyogames.com/#t=GameMaker_Language%2FGameMaker_Language_Index.htm">documentation</a>. </p>
<p>They also offer <a target="_blank" href="https://www.yoyogames.com/en/tutorials">dozens of tutorials</a> to get you started making games. Gamemaker has a free option and you can <a target="_blank" href="https://accounts.yoyogames.com/register">create an account</a> on their website. </p>
<h2 id="heading-cryengine">CryEngine</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-3.32.14-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>CryEngine allows you to create interactive 3D games and supports platforms like Windows, Linux, PlayStation, Xbox, and Oculus Rift. You can create shooter games, platformer games, educational games and more with CryEngine.</p>
<p>Some popular games that have been built with CryEngine include Kingdom Come: Deliverance, Far Cry, State of Decay, and Ryse: Son of Rome. </p>
<p>Programming languages used for CryEngine include C#, C++, and Lua. If you are not familiar with those languages, then you can look into these resources. </p>
<ul>
<li><a target="_blank" href="https://www.youtube.com/watch?v=GhQdlIFylQ8">C# Tutorial - Full Course for Beginners</a></li>
<li><a target="_blank" href="https://www.youtube.com/watch?v=vLnPwxZdW4Y">C++ Tutorial for Beginners - Full Course</a></li>
<li><a target="_blank" href="https://www.lua.org/pil/1.html">Lua Get Started Guide</a></li>
</ul>
<p>CryEngine has dozens of <a target="_blank" href="https://www.cryengine.com/tutorials">tutorials</a> to help you get started building games and it is free to <a target="_blank" href="https://www.cryengine.com/download">download</a> on their website.   </p>
<h2 id="heading-amazon-lumberyard">Amazon Lumberyard</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-4.03.19-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Amazon Lumberyard is a free cross platform video game engine where you can create your own 3D games. Amazon Lumberyard supports many platforms including iOS, Android, Windows and game consoles such as PlayStation and Xbox.</p>
<p>Some games using Amazon Lumberyard include New World and The Grand Tour Game. </p>
<p>Programming languages used for Amazon Lumberyard include C++, and Lua. If you are not familiar with those languages, then you can look into these resources.</p>
<ul>
<li><a target="_blank" href="https://www.youtube.com/watch?v=vLnPwxZdW4Y">C++ Tutorial for Beginners - Full Course</a></li>
<li><a target="_blank" href="https://www.lua.org/pil/1.html">Lua Get Started Guide</a></li>
</ul>
<p>Amazon Lumberyard is free to <a target="_blank" href="https://aws.amazon.com/lumberyard/downloads/">download</a> and there are dozens of <a target="_blank" href="https://aws.amazon.com/lumberyard/videos/">tutorials</a> to get you started building your own games. </p>
<h2 id="heading-renpy-visual-novel-engine">Ren'Py Visual Novel Engine</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-4.04.35-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Ren'Py Visual Novel Engine is a free engine where you can create interactive visual novels and games. Ren'Py supports many platforms including iOS, Android, Windows, Mac, and Linux.</p>
<p>Some popular games and novels created with Ren'Py include, Doki Doki Literature Club!, Zero Deaths, and UFO Swamp Odyssey.</p>
<p>The programming language used with Ren'Py is Python. If you are new to Python, you can take <a target="_blank" href="https://www.youtube.com/watch?v=rfscVS0vtbw">this freeCodeCamp YouTube course</a>.</p>
<p>You can <a target="_blank" href="https://www.renpy.org/latest.html">download</a> Ren'Py for free on their website. They also provide a <a target="_blank" href="https://www.renpy.org/doc/html/quickstart.html">Quickstart</a> guide to creating your first game or novel. </p>
<p>freeCodeCamp also has a walk through <a target="_blank" href="https://www.freecodecamp.org/news/use-python-to-create-a-visual-novel/">tutorial</a> on how to make a visual novel game using Ren'Py. </p>
<h2 id="heading-pygame">Pygame</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-4.15.49-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Pygame comes with modules, sounds, and graphics to allow you to create video games using Python. Pygame supports platforms including Linux, Mac and Windows. </p>
<p>Popular games built with Pygame include Frets on Fire and Dangerous High School Girls in Trouble!</p>
<p>The programming language used with Pygame is Python. If you are new to Python, you can take <a target="_blank" href="https://www.youtube.com/watch?v=rfscVS0vtbw">this freeCodeCamp YouTube course</a>.</p>
<p>To get started with Pygame, you can go through their <a target="_blank" href="https://www.pygame.org/wiki/GettingStarted">Getting Started guide</a> on their website. freeCodeCamp also has a <a target="_blank" href="https://www.youtube.com/watch?v=FfWpgLFMI7w">YouTube course</a> on getting started with Pygame. </p>
<h2 id="heading-love">LÖVE</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-4.25.28-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>LÖVE is a free game engine where you can build 2D games. LÖVE supports many platforms including iOS, Android, Windows, Mac, and Linux.</p>
<p>Some popular games that have been built with LÖVE include Blue Revolver, Move or Die, and Warlocks Tower. </p>
<p>The programming language used for LÖVE is Lua. You can learn about Lua in their <a target="_blank" href="https://www.lua.org/pil/1.html">get started guide</a> on the website. </p>
<h2 id="heading-kaboomjs">Kaboom.js</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/10/Screen-Shot-2021-10-12-at-4.34.35-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Kaboom.js is a library that allows you to build computer games using JavaScript. If you are unfamiliar with JavaScript, then you can take this <a target="_blank" href="https://www.youtube.com/watch?v=PkZNo7MFNFg">freeCodeCamp YouTube course</a>.  </p>
<p>To get setup, you can use their CDN, NPM or official Replit template. All of the information to get started can be found on their <a target="_blank" href="https://kaboomjs.com/doc/setup">website</a>. </p>
<p>Kaboom.js also provides a walk through <a target="_blank" href="https://kaboomjs.com/doc/intro">tutorial</a> to building your first game. You can recreate classic games like Mario and Space invaders using Kaboom.js. </p>
<p>You can also go through <a target="_blank" href="https://www.youtube.com/watch?v=4OaHB0JbJDI">this freeCodeCamp YouTube course,</a> to get started building classic games. </p>
<p>I hope you enjoy my list of popular game engines and tools to get started learning how to build your own games. </p>
<p>I encourage to keep exploring and find even more game options that were not mentioned in this article so you can continue your learning. </p>
<p>Best of luck on your game development journey. </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ 12 Free Coding Games to Learn Programming for Beginners ]]>
                </title>
                <description>
                    <![CDATA[ A lot of beginners can become intimidated when they're learning how to code. But learning through coding games can be fun and educational.  According to True Education Partnerships,  Gamification in learning involves using game-based elements such a... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/12-free-coding-games-to-learn-programming-for-beginners/</link>
                <guid isPermaLink="false">66b8d929f0d0708280f13468</guid>
                
                    <category>
                        <![CDATA[ beginner ]]>
                    </category>
                
                    <category>
                        <![CDATA[ beginners guide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Games ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ General Programming ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Video games ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jessica Wilkins ]]>
                </dc:creator>
                <pubDate>Tue, 03 Aug 2021 15:11:05 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2021/08/naser-tamimi-yG9pCqSOrAg-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>A lot of beginners can become intimidated when they're learning how to code. But learning through coding games can be fun and educational. </p>
<p>According to <a target="_blank" href="https://www.trueeducationpartnerships.com/schools/gamification-in-education/">True Education Partnerships</a>, </p>
<blockquote>
<p><strong>Gamification in learning</strong> involves using game-based elements such as point scoring, peer competition, team work, and score tables to drive engagement, help students assimilate new information and test their knowledge.</p>
</blockquote>
<p>I have curated a list of 12 coding games for beginners. </p>
<p>Here is the complete list. Once you find a website that interests you, click that link and it will jump you down to a more detailed description of that website.</p>
<ol>
<li><a class="post-section-overview" href="#heading-codingame">CodinGame</a></li>
<li><a class="post-section-overview" href="#heading-css-diner">CSS Diner</a></li>
<li><a class="post-section-overview" href="#heading-flexbox-froggy">Flexbox Froggy</a></li>
<li><a class="post-section-overview" href="#heading-flexbox-defense">Flexbox Defense</a></li>
<li><a class="post-section-overview" href="#heading-grid-garden">Grid Garden</a></li>
<li><a class="post-section-overview" href="#heading-codecombat">CodeCombat</a></li>
<li><a class="post-section-overview" href="#heading-scratch">Scratch</a></li>
<li><a class="post-section-overview" href="#heading-tynker">Tynker</a></li>
<li><a class="post-section-overview" href="#heading-sql-murder-mystery">SQL Murder Mystery</a></li>
<li><a class="post-section-overview" href="#heading-untrusted">Untrusted</a></li>
<li><a class="post-section-overview" href="#heading-elevator-saga">Elevator Saga</a></li>
<li><a class="post-section-overview" href="#heading-checkio">CheckiO</a></li>
</ol>
<h2 id="heading-codingame">CodinGame</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-3.19.31-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://www.codingame.com/start">CodinGame</a> is a site that helps you work on problem solving skills and learn programming basics through a turn-based game. </p>
<p>This platform supports over 25 different programming languages and gives players the opportunity to practice, learn, and compete in coding contests.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.44.38-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Once you create an account, you can get started with the beginner level onboarding section. You will be introduced to standard programming concepts and solve mini challenges. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.44.10-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-css-diner">CSS Diner</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-3.43.56-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In <a target="_blank" href="https://flukeout.github.io/">CSS Diner</a>, you can practice the basics of CSS through a series of 32 challenges. This is a good way to get more familiar with the language and have fun learning it. </p>
<p>The first few challenges are short and focus on working with classes and ids. But as you progress through the levels, you will be introduced to Pseudo-selectors, First of Type Selector, Last of Type Selector, and the Universal Selector.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.55.36-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-flexbox-froggy">Flexbox Froggy</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-4.05.43-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>In <a target="_blank" href="https://flexboxfroggy.com/">Flexbox Froggy</a>, you will learn CSS Flexbox by placing the frogs on the correct lillypads. By the time you finish level 24, you should feel comfortable using Flexbox in your next project. </p>
<p>Each challenge provides a description on the Flexbox properties. The first few challenges start off easy but as you progress in the game things get more complicated. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-11.17.03-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-flexbox-defense">Flexbox Defense</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-4.26.01-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="http://www.flexboxdefense.com/">Flexbox Defense</a> is a tower defense game that helps you strengthen your CSS skills. Position the towers to keep out your enemies using CSS Flexbox. </p>
<p>The challenges will provide you with definitions of the Flexbox properties. Once you write your code, press the Start Wave button and see if you were successful in stopping your enemies. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-11.22.57-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-grid-garden">Grid Garden</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-4.17.37-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Learn CSS Grid by going through 28 levels of <a target="_blank" href="https://cssgridgarden.com/">Grid Garden</a>. Some familiarity with CSS Grid is encouraged but not required for getting started with the game.  </p>
<p>Each challenge provides a description on the CSS Grid properties. The first few challenges start off easy but as you progress in the game things get more complicated. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-11.27.18-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-codecombat">CodeCombat</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-1.56.36-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://codecombat.com/">CodeCombat</a> works well for both kids and adult learners. You can create a free account and learn the fundamentals of programming like loops, functions, conditionals, and  variables. </p>
<p>You can choose which programming language to start with and work your way through the games.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-2.03.07-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You also have the option to upgrade to the premium account if you are interested in having access to more levels. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-2.05.35-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-scratch">Scratch</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-2.16.25-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>MIT's <a target="_blank" href="https://scratch.mit.edu/">Scratch</a> is a block based programming language where you can learn about events, conditionals, variables, and more by building your own games and animations. </p>
<p>Choose from dozens of sprites, sounds and backgrounds to code your own creations and start understanding programming basics. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-2.28.37-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Scratch is also used during the first week of <a target="_blank" href="https://www.edx.org/course/introduction-computer-science-harvardx-cs50x">Harvard's CS50: Introduction to Computer Science course</a>. </p>
<h2 id="heading-tynker">Tynker</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-2.43.52-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://www.tynker.com/">Tynker</a> is a site where you can build projects and play games using HTML, CSS, JavaScript, Python, and Java. They have an extensive list of projects, algorithms and data structure challenges. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-2.56.25-AM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>You can build these projects in the online editor and share your creations within the community. This site is aimed at kids between the ages of 5-18. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.23.31-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-sql-murder-mystery">SQL Murder Mystery</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-8.52.08-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://mystery.knightlab.com/">SQL Murder Mystery</a> is great for both beginners and experienced SQL developers. Strengthen your SQL and problem solving skills by trying to track down the killer in this murder mystery. </p>
<p>The game uses SQLite and you will first have to get acquainted with the database structure before starting the game. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.17.01-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>If you are new to SQL, there is a <a target="_blank" href="https://mystery.knightlab.com/walkthrough.html">detailed walk through</a> for beginners. Otherwise, if you are an experienced SQL user then you can dive straight into the game. </p>
<h2 id="heading-untrusted">Untrusted</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.16.13-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://alexnisnevich.github.io/untrusted/">Untrusted</a> is an adventure game where you can test your JavaScript and problem solving skills. Help guide Dr. Eval through a series of levels by solving JavaScript challenges. </p>
<p>If you are brand new to JavaScript then this game might be a little advanced for you. But if you have spent some time programming in JavaScript then the challenges will be doable. </p>
<h2 id="heading-elevator-saga">Elevator Saga</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.20.11-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="http://play.elevatorsaga.com/">Elevator Saga</a> is a JavaScript game where you will go through a series of challenges trying to transport people in elevators in the most efficient way possible within the time given. </p>
<p>Once you modify the code, you can test the efficiency of your solution by clicking the start button in the top right hand corner. When the program is running, you can check the stats to see if you passed the challenge or not. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-10.08.06-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<h2 id="heading-checkio">CheckiO</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.30.59-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p><a target="_blank" href="https://checkio.org/">CheckiO</a> is a strategy game where you can learn TypeScript or Python through a series of challenges. Once you create a free account, you will start off with the beginner challenges and work your way through to the advanced ones. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.48.46-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
<p>The game will give you access to hints and other players' solutions if you need help. You will solve each of the challenges in the online editor and move onto the next mission when the task is solved. </p>
<p><img src="https://www.freecodecamp.org/news/content/images/2021/08/Screen-Shot-2021-08-02-at-9.58.49-PM.png" alt="Image" width="600" height="400" loading="lazy"></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ The 9 Best Coding Games Online for Adults to Learn How to Code ]]>
                </title>
                <description>
                    <![CDATA[ Most coding games are aimed at children. But there are also some great coding games aimed at adults who want to learn to code. Don't get me wrong – there's nothing wrong with using the games on Code.org or Khan Academy. You can learn Scratch, which i... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/best-coding-games-online-adults-learn-to-code/</link>
                <guid isPermaLink="false">66b8d24ce9a1e34f08e4922c</guid>
                
                    <category>
                        <![CDATA[ education ]]>
                    </category>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ learn to code ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Video games ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Quincy Larson ]]>
                </dc:creator>
                <pubDate>Tue, 25 Aug 2020 20:45:36 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2020/08/edfe70ad2c1c4b8399deba6721831753.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Most coding games are aimed at children. But there are also some great coding games aimed at adults who want to learn to code.</p>
<p>Don't get me wrong – there's nothing wrong with using the games on Code.org or Khan Academy. You can learn Scratch, which is a programming language designed to help kids learn concepts like loops and variables. Some of those games even teach basic Python or JavaScript.</p>
<p>But if you're a fully-grown adult, it may be harder to get excited about a kid-themed game like Minecraft or Disney's Frozen. You may instead want to find more serious games that can keep you engaged while you learn.</p>
<p>If this describes you, well I've got good news. This list is chock-full of games where you'll make meaningful strategic decisions, then execute them through code.</p>
<p>Note that all of the games on this list are fine for kids, too. But their primary audience is adult learners.</p>
<p>Let's dive in.</p>
<h2 id="heading-best-coding-games-pick-1-sql-murder-mystery">Best Coding Games Pick #1: SQL Murder Mystery</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/The_SQL_Murder_Mystery.jpg" alt="Image" width="600" height="400" loading="lazy"></p>
<p>Upon starting SQL Murder Mystery, you receive some basic instructions:</p>
<blockquote>
<p>"A crime has taken place and the detective needs your help. You vaguely remember that the crime was a ​murder​ that occurred sometime on ​Jan.15, 2018​ and that it took place in ​SQL City​. Start by retrieving the corresponding crime scene report from the police department’s database."</p>
</blockquote>
<p>From there, you have to use your SQL query skills to find the killer.</p>
<p>If you're experienced with SQL, you may be able to solve the mystery in a single sitting. If not, there is a nice walkthrough to show you some querying tips.</p>
<p>SQL Murder Mystery will help you understand and apply database concepts such as:</p>
<ul>
<li>Primary and Foreign Keys</li>
<li>Aggregate Functions</li>
<li>Table Joins</li>
<li>and even Wildcards</li>
</ul>
<p>You can <a target="_blank" href="https://mystery.knightlab.com/">play SQL Murder Mystery for free right in your browser here</a>.</p>
<h2 id="heading-best-coding-games-pick-2-elevator-saga">Best Coding Games Pick #2: Elevator Saga</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/Elevator_Saga_-_the_elevator_programming_game.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Elevator Function's minimalistic graphics, stats, and code editor</em></p>
<p>In Elevator Saga, you program a series of elevators to handle increasingly large loads of passengers.</p>
<p>Through its 19 challenges, you'll adapt your algorithm to minimize the amount of time passengers have to wait to move from floor to floor.</p>
<p>This game will give you a lot of JavaScript practice. It will also force you to get creative and experiment with optimization approaches.</p>
<p>Here's a 30-second demo video that will give you an idea of what the elevator programming gameplay looks like:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/J1ie70_rDXE" 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>You can <a target="_blank" href="https://play.elevatorsaga.com/">play Elevator Saga for free in your browser here</a>.</p>
<h2 id="heading-best-coding-games-pick-3-screeps">Best Coding Games Pick #3: Screeps</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/maxresdefault--8-.jpg" alt="Image" width="600" height="400" loading="lazy">
_Screeps Gameplay. Image Credit: <a target="_blank" href="https://www.google.com/url?sa=i&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DtOmonUwf6pI&amp;psig=AOvVaw0N_9V-3sHlbbaiFsVlLBNN&amp;ust=1598392456033000&amp;source=images&amp;cd=vfe&amp;ved=0CA0QjhxqFwoTCPjb24fqtOsCFQAAAAAdAAAAABA9">Goto64</a>_</p>
<p>Screeps bills itself as an "MMO Sandbox Strategy Game for Programmers."</p>
<p>This is a serious programming game that assumes you already know some basic programming.</p>
<p>You can control your units using real-life programming languages like JavaScript. You can even compile languages like C++ and run them through WebAssembly.</p>
<p>Screeps came out back in 2017, and is still actively maintained. It's currently sitting at an 89% positive rating on Steam with more than 1,000 reviews, which makes it one of the more acclaimed games on the entire Steam platform.</p>
<p>Here's the full trailer:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/ZboTgOajnGg" 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>Note that Screeps is a paid game. But there's a <a target="_blank" href="https://screeps.com/a/#!/sim">free demo that runs right in your browser here</a>. </p>
<p>If you want to get the full game, <a target="_blank" href="https://store.steampowered.com/app/464350/Screeps/">you can buy Screeps from the Steam Shop here</a>.</p>
<h2 id="heading-best-coding-games-pick-4-untrusted">Best Coding Games Pick #4: Untrusted</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/Untrusted_-_a_user_javascript_adventure_game.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>The minimalist ASCII interface of Untrusted</em></p>
<p>Untrusted is a browser-based rogue-like game that uses real-world JavaScript as the main gameplay input.</p>
<p>In the game's own words, "You must literally edit and re-execute the very JavaScript running the game in your browser to save Dr. Eval from this dark and confusing reality!"</p>
<p>You can <a target="_blank" href="https://alexnisnevich.github.io/untrusted/">play Untrusted right in your browser here</a>.</p>
<h2 id="heading-best-coding-games-pick-5-duskers">Best Coding Games Pick #5: Duskers</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/edfe70ad2c1c4b8399deba6721831753-1.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>A screenshot of Dusker's unique graphical style and command line interface</em></p>
<p>Whereas the previous 4 games all involved using real programming languages, Duskers more closely resembles shell scripting. </p>
<p>You play as a programmer who is stranded in space and running low on supplies. You have to dock with abandoned space vessels and then scavenge them.</p>
<p>But you can't interact with these ships directly. Instead, you control a team of drones – each with their own abilities – and tell them how to explore these ships.</p>
<p>But look out – there are monsters on these ships that will destroy your drones if you're not careful.</p>
<p>This game is controlled entirely by typing into a command line interface. Because the game is real-time in nature, this can lead to some intense moments of rapidly typing commands as you try to save your drones from danger.</p>
<p>Here is the command-line themed trailer from Duskers' launch:</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/dux33m_7M6w" 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>And here's a more in-depth overview of the gameplay and its programming roots (17 minute watch):</p>
<div class="embed-wrapper">
        <iframe width="560" height="315" src="https://www.youtube.com/embed/e9G6YmjC7KM" 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-best-coding-games-pick-7-flexbox-defense-browser">Best Coding Games Pick #7: Flexbox Defense (Browser)</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/Flexbox_Defense.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>The main Flexbox Defense gameplay loop: programming your towers to defend against invaders.</em></p>
<p>This is a Tower Defense Game that involves you protecting yourself using Flexbox-based commands.</p>
<p>By using real-life CSS Flexbox code, you'll adjust the position of your turrets to shoot invading enemies before they can overrun you.</p>
<p>Fun fact: this game was designed by <a target="_blank" href="https://twitter.com/ChanningAllen">Channing Allen</a>, the brother of Indie Hackers founder Courtland Allen. The two brothers are both excellent programmers with a passion for teaching.</p>
<p>You can <a target="_blank" href="http://www.flexboxdefense.com/">play Flexbox Defense in your browser here</a>.</p>
<h2 id="heading-best-coding-games-pick-8-css-diner">Best Coding Games Pick #8: CSS Diner</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/CSS_Diner_-_Where_we_feast_on_CSS_Selectors_.jpg" alt="Image" width="600" height="400" loading="lazy"></p>
<p>CSS Diner is browser game that will help you learn CSS selectors. Over the course of 32 levels, you'll learn a how to select DOM elements using a variety of different attributes:</p>
<ul>
<li><code>id</code></li>
<li><code>classname</code></li>
<li><code>nth-of-type</code></li>
<li><code>nth-child</code></li>
<li><code>not(x)</code></li>
<li><code>[attribute="value"]</code></li>
<li>and a whole lot more</li>
</ul>
<p>This is a breezy playthrough, and you may want to beat it several times just to tighten up your CSS Selector muscle memory.</p>
<p>You can <a target="_blank" href="https://flukeout.github.io/">play CSS Diner for free in your browser here</a>.</p>
<h2 id="heading-best-coding-games-pick-9-codingame">Best Coding Games Pick #9: CodinGame</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/Coding_Games_and_Programming_Challenges_to_Code_Better.jpg" alt="Image" width="600" height="400" loading="lazy"></p>
<p>CodinGame is actually a collection of several coding minigames. </p>
<p>And the best part is that you can code in any language you like. Their editor supports a ton of languages and compiles these on a server for you somewhere.</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/Coding_Games_and_Programming_Challenges_to_Code_Better2.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>Some of the languages CodinGame supports for its programming games</em></p>
<p>CodinGame has built-in leaderboards and other features to give you plenty of motivation to keep practicing your coding. Even though the platform was launched way back in 2012, there is still nothing else quite like it.</p>
<p>If you're looking for a programming game to stream while <a target="_blank" href="https://www.freecodecamp.org/news/lessons-from-my-first-year-of-live-coding-on-twitch-41a32e2f41c1/">live coding on Twitch or YouTube</a>, look no further. There is plenty of fun to be had here.</p>
<p>You can <a target="_blank" href="https://www.codingame.com/start">explore CodinGame for free in your browser here</a>.</p>
<h2 id="heading-bonus-coding-game-vim-adventures">Bonus Coding Game: VIM Adventures</h2>
<p><img src="https://www.freecodecamp.org/news/content/images/2020/08/Learn_VIM_while_playing_a_game_-_VIM_Adventures.jpg" alt="Image" width="600" height="400" loading="lazy">
<em>VIM Adventures teaches you how to use VIM by navigating mazes and gathering items.</em></p>
<p>OK – so this isn't a coding game, but rather a game that teaches you a powerful coding tool: the VIM code editor.</p>
<p>You will learn VIM keyboard shortcuts and essential VIM concepts in a fun way. This is way less frustrating than thrashing about, trying to remember, for example, <a target="_blank" href="https://www.freecodecamp.org/news/one-out-of-every-20-000-stack-overflow-visitors-is-just-trying-to-exit-vim-5a6b6175e7b6/">how to quit VIM</a>.</p>
<p>You can <a target="_blank" href="https://vim-adventures.com/">play VIM Adventures for free in your browser here</a>.</p>
<h2 id="heading-gotta-play-em-all">Gotta Play 'Em All</h2>
<p>I hope this list has given you plenty of adult-oriented programming games to practice your coding skills with.</p>
<p>If I missed any good ones, <a target="_blank" href="https://twitter.com/ossia">let me know by tweeting at me</a>.</p>
<p>Happy coding.</p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to create a Borderlands-style skill tree in 5 minutes ]]>
                </title>
                <description>
                    <![CDATA[ Growing up, I spent my spare time doing what most programmers did: played video games every waking moment. I loved Adventure games and what a time sink they were. If time was the Mary Rose, and I was the French, my artillery were games like Kingdom H... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/create-a-borderlands-style-skill-tree-in-5-minutes/</link>
                <guid isPermaLink="false">66bb8df85d242388375d3872</guid>
                
                    <category>
                        <![CDATA[ JavaScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ React ]]>
                    </category>
                
                    <category>
                        <![CDATA[ TypeScript ]]>
                    </category>
                
                    <category>
                        <![CDATA[ User Interface ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Video games ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Andrico Karoulla ]]>
                </dc:creator>
                <pubDate>Tue, 01 Oct 2019 14:00:00 +0000</pubDate>
                <media:content url="https://cdn-media-2.freecodecamp.org/w1280/5f9ca02c740569d1a4ca4706.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Growing up, I spent my spare time doing what most programmers did: played video games every waking moment. I loved Adventure games and what a time sink they were. If time was the Mary Rose, and I was the French, my artillery were games like Kingdom Hearts, Ōkami, and Borderlands.</p>
<p>Why did I, and others, spend so much of our spare time exploring, surviving, dying, and (so, so much) grinding? Hundreds of factors contribute toward making an engaging experience, but the one I’m going to focus on is the notion of progression.</p>
<p>The idea of gamification isn’t new. Many popular applications (like <a target="_blank" href="https://todoist.com/?lang=en">todoist</a>, or <a target="_blank" href="https://productivitychallengetimer.com/">challenge timer</a>) have incorporated some sort of progression scheme to make us, the consumers, use their app, give them money, and hand over our personal data. So I decided to go about my way of enabling others to do just that, through beautiful skill trees! Note: I expect neither money nor data from those using my skill trees.</p>
<p>The last few weeks have seen me toil away to create what I hope to be a pleasant plug’n’play React package to help you create exciting skill trees. You can test it yourself by following the tutorial. I hope it will be a frictionless experience.</p>
<p>We hope to have something resembling the skill tree below:</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/image-2.png" alt="Image" width="600" height="400" loading="lazy">
<em>“A dying puppy. A baby in tears. If the previous statements elicited any emotional reaction report to your supervisor for summary destruction.”</em></p>
<h1 id="heading-beautiful-skill-tree075">beautiful-skill-tree@0.7.5</h1>
<p>Grab the starter repo by using <code>git clone git@github.com:andrico1234/borderlands-skill-tree.git</code></p>
<p>Move into the directory and run the starting script, <code>yarn start</code>. Give the site a whirl, you'll see nothing but the Borderlands logo and environment.</p>
<p><code>beautiful-skill-tree</code> exposes three components: the <code>SkillProvider</code>, <code>SkillTreeGroup</code>, and the <code>SkillTree</code> components.</p>
<p><code>SkillProvider</code>: This takes in no props and supplies the children with the skill tree's context. This puppy handles all of the global data related to the skill tree.</p>
<p><code>SkillTreeGroup</code>: Is more involved in that it can take an optional <code>theme</code> property, where we can pass in some custom styling, to make our skill tree feel very Borderlands. The <code>SkillTreeGroup</code> also uses the children-as-a-function pattern to give us access to some imperative api functionality, such as skill tree reset, selected skills counter, etc. We don't need to worry about any of those for the scope of this article.</p>
<p><code>SkillTree</code>: This is the most exciting of the package's exports, unless you're a sucker for typings (which are also exported, for all you TS fans). The <code>SkillTree</code> doesn't take any children but requires 3 props: <code>treeId</code>, <code>title</code>, and <code>data</code>. The <code>treeId</code> should be an id that's unique to each skill tree, but should be persistent across user sessions as this is used as the key for getting and setting the data to local storage. I'm not going to explain what the <code>title</code> prop does, I'll leave you to experiment. The <code>data</code> is the mixing pot of the application. You'll pass in your skill tree data structure which the app will use to render a <code>beautiful-skill-tree</code>. Let's get a real basic tree going before we move on to our multi-tree, multi-branch Borderlands spectacular.</p>
<p>In App.tsx, import the 3 components like so:</p>
<p><code>import { SkillProvider, SkillTreeGroup, SkillTree } from 'beautiful-skill-tree';</code></p>
<p>Place it underneath your <code>img</code> tag, outside of the image's container div, but within the outer div. Add the <code>SkillProvider</code>, passing the <code>SkillTreeGroup</code> as a child. Before you do the same with the <code>SkillTree</code>, remember that as <code>SkillTreeGroup</code> uses function-as-a-child pattern, you'll need to render a function that returns the child components. Return a single <code>SkillTree</code> and give it a <code>treeId</code> and a <code>title</code> prop. Pass an empty array into the <code>data</code> prop so your <code>App.tsx</code> looks like this:</p>
<pre><code class="lang-js"><span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">App</span>(<span class="hljs-params"></span>) </span>{
  <span class="hljs-keyword">return</span> (
    <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
    // <span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">headercontent</span> /&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">SkillProvider</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">SkillTreeGroup</span>&gt;</span>
          {() =&gt; {
            return (
              <span class="hljs-tag">&lt;<span class="hljs-name">SkillTree</span> <span class="hljs-attr">treeId</span>=<span class="hljs-string">"basic-birch"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"First Skill Tree"</span> <span class="hljs-attr">data</span>=<span class="hljs-string">{[]}</span> /&gt;</span>
            )
          }}
        <span class="hljs-tag">&lt;/<span class="hljs-name">SkillTreeGroup</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">SkillProvider</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span></span>
  );
}
</code></pre>
<p>Go to <a target="_blank" href="http://localhost:3000/">localhost:3000</a> to see the application running. You should see the logo, background, and a grey rectangle. If you’re running into any errors, go through the introduction again and check to see if there any syntax error or incorrect imports.</p>
<p>Next, let’s create a real basic tree. Just 3 items that move in a linear line. The data structure for <code>data</code> looks like this:</p>
<pre><code class="lang-ts"><span class="hljs-keyword">type</span> Skill = {
  id: <span class="hljs-built_in">string</span>;
  icon?: <span class="hljs-built_in">string</span>;
  title: <span class="hljs-built_in">string</span>;
  tooltip: {
    description : <span class="hljs-built_in">string</span>;
  },
  children: Skill[];
}
</code></pre>
<p>Each skill requires four properties, with one being optional. You should also notice that the <code>children</code> property is a recursive type, meaning that it takes an array of the same data structure, which it uses to render the children of the skill. This can go on infinitely, and make for some real complicated, winding trees. I'll create the first skill for you, and I'll trust you with carrying on for the next two items.</p>
<pre><code class="lang-js"><span class="hljs-keyword">const</span> data = [{
  <span class="hljs-attr">id</span>: <span class="hljs-string">'first-skill'</span>,
  <span class="hljs-attr">title</span>: <span class="hljs-string">'The root node'</span>,
  <span class="hljs-attr">tooltip</span>: {
    <span class="hljs-attr">description</span> : <span class="hljs-string">"The parent node, all of the descendants will be locked until it's selected"</span>,
  },
  <span class="hljs-attr">children</span>: [
  <span class="hljs-comment">// rinse and repeat; always repeat.</span>
]}
</code></pre>
<p>Add the above snippet to the <code>App.tsx</code> file, and replace the empty array inside of the <code>SkillTree</code>'s <code>data</code> property with our <code>data</code> definition. Load your page, and you should have an interactive node. Give it a hover and a click and it should be reacting to your actions. If things are working, then I'll task you with creating two (or more) child nodes. Experiment with children and sibling lengths, to see what you can come up with. (If you also happen to break my precious package, leave me a GitHub issue so I can patch things up).</p>
<p>Once you’re comfortable with creating a skill tree, let’s go ahead and create our Borderlands skill tree. Fortunately, I’ve done all of the tedious work for you and have already created the data structures and accumulated the images.</p>
<p>You’ll need to import the three trees from the <code>data</code> file, which can be done via</p>
<p><code>import { motion, harmony, cataclysm } from "./data/data";</code></p>
<p>The next step is creating two additional <code>SkillTrees</code> alongside the current one. You'll need to wrap them in a <code>React.Fragment</code> as your <code>SkillTreeGroup</code> will now be trying to render 3 top level components. Pass in the data accordingly, and if you're unsure, I've posted the code snippet below.</p>
<pre><code class="lang-js">&lt;React.Fragment&gt;
  <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">SkillTree</span> <span class="hljs-attr">treeId</span>=<span class="hljs-string">"motion"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"Motion"</span> <span class="hljs-attr">data</span>=<span class="hljs-string">{motion}</span> /&gt;</span></span>
  <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">SkillTree</span> <span class="hljs-attr">treeId</span>=<span class="hljs-string">"harmony"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"Harmony"</span> <span class="hljs-attr">data</span>=<span class="hljs-string">{harmony}</span> /&gt;</span></span>
  <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">SkillTree</span> <span class="hljs-attr">treeId</span>=<span class="hljs-string">"cataclysm"</span> <span class="hljs-attr">title</span>=<span class="hljs-string">"Cataclysm"</span> <span class="hljs-attr">data</span>=<span class="hljs-string">{cataclysm}</span> /&gt;</span></span>
&lt;/React.Fragment&gt;
</code></pre>
<p>Go ahead and check your web browser, it should be <strong>aaallmoost</strong> ready. We’ve got the skills rendered, but the styling feels a little lackluster. It doesn’t feel very Borderlands. Fortunately for you, I’m a regular <a target="_blank" href="https://www.youtube.com/watch?v=0evlWSY8kTc">Neil Buchanan</a> and prepared a custom theme. Import the theme and pass it through to the <code>SkillTreeGroup</code>'s <code>theme</code> prop. The theme object is export via <code>import theme from './data/theme';</code>. Easy!</p>
<p><img src="https://www.freecodecamp.org/news/content/images/2019/10/image-3.png" alt="Image" width="600" height="400" loading="lazy">
<em>“I HAVE ONE QUESTION FOR YOU. EXPLOSIONS?”</em></p>
<p>Once you’ve done the above, check out the finished product. If you’re still not satisfied with the styles, check out the theme object and customise it yourself, there are a bunch of additional attributes whose styles can be adjusted, so just peek into the typings of the package.</p>
<p>I mentioned earlier that there are a few additional properties and values that can be used to tweak the skill tree, so have a mess around yourself, and link me to any cool trees you create. I’d love to add it to the growing list of trees found <a target="_blank" href="https://github.com/andrico1234/beautiful-skill-tree#examples">here</a>. <a target="_blank" href="https://calisthenicsskills.com/">Here’s</a> an example of the skill tree that kickstarted this obsession.</p>
<p>I hope you’ve enjoyed tinkering with the <code>beautiful-skill-tree</code> package. I'm always adding new features and updating, so give it a star on github! You can find an online demo of the borderlands skill tree <a target="_blank" href="http://borderlands-skill-tree.s3-website.eu-west-2.amazonaws.com/">here</a></p>
<p>You can find me on Instagram or GitHub if you want to chat code, music, or fitness!</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
