Learning To Code By Making Amazing Games
Tags: beginners, webdev, javascript, node
Published: 2019-06-05 13:28:42

---
title: Learning To Code By Making Amazing Games
published: true
description: 
tags: #beginners #webdev #javascript #node
---

<!-- wp:paragraph -->
<p>Can you remember what your first coding project was? well, I actually can….&nbsp;<br>I was an eleven years old game addict little kid who had some crazy ideas in his mind.<strong> I wanted to make a game! </strong>and the game I was going to develop would have been the best game ever seen. Something nobody would have ever imagined of. How could all those millionaire companies like Rockstar, Bethesda and Square Enix not be thinking about making such a great game like the one I was going to make?&nbsp;<br>And then I started, I grabbed my dad’s laptop and I started to search on the web how to do that. And what eventually I came up with was this:&nbsp;<br></p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225629775_VisualBasicStartPage_lg.png" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>A visual basic express IDE on, I heard it was easy to use and so I thought it would only take minutes for me to make a game with this.&nbsp;<br><strong>I was wrong….</strong><br>Not only I discovered that I had to learn to program first in order to make a game, but I also learned that making a game was incredibly hard. But I wasn’t going to drop, I wasn’t going to fail on my mission of creating the next game of the year. And after a lot of copy/paste and internet navigation what I came out with was something like this:&nbsp;<br></p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225515558_Y2XBvF.png" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>It was just a couple of years later that I would have then started to really dig into programming by reading books, writing C++ code and using online resources. I completed a lot of small projects and even made some games I created using GameMaker studio and other great tools.&nbsp;<br>That little kid experience I had, plus all the project I made, either games or classic ones made me realize something very important:&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><br><strong>One of the most important factor one learning to program is what project you will be able to implement using a certain language and, how quickly you will be able to implement them.&nbsp;</strong><br></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Which basically translates into:</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p> <strong>no matter how passionate you are about coding and how strong your desire <g class="gr_ gr_24 gr-alert gr_gramm gr_inline_cards gr_run_anim Punctuation only-del replaceWithoutSep" id="24" data-gr-id="24">is,</g> if you don’t implement some cool projects you will soon lose the will to go on.&nbsp;</strong><br></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is also the reason why I think some languages are better to start for a <g class="gr_ gr_17 gr-alert gr_gramm gr_inline_cards gr_run_anim Punctuation only-del replaceWithoutSep" id="17" data-gr-id="17">beginner,</g> because they provide many ways in which you can use them in order to create cool projects and learn. And that’s where games come into play: they are a fun, visual entertaining way to learn to program. And now the offer online for learning how to create games in an easy way is incredibly higher than when I started. You can use game engines, online coding tools, create games and compete with other players, mod your favourite game, the offer is incredible and everyone can cherry pick the best option for them.&nbsp;</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><br>And this is the point of this article, to explain to you how to learn <g class="gr_ gr_10 gr-alert gr_gramm gr_inline_cards gr_run_anim Grammar multiReplace" id="10" data-gr-id="10">programming</g> by making games! how you can use this medium to create great adventures while learning to code and still having fun! but first, keep in mind that I would like to clarify a couple of things before going on with a showcase of all the tools you might use:&nbsp;<br></p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><strong>Making games doesn’t mean playing games</strong>: what I mean by saying this is that programming a game is very different than playing one, you are still a programmer and so you will still face bugs, configuration problems and other classic obstacles that everyone before you faced and is facing every day.&nbsp;</li></ul>
<!-- /wp:list -->

<!-- wp:list -->
<ul><li><strong>Making games isn’t the only way to learn coding: </strong>games are a great way to start, but they are not the only good road you can follow. You might start to learn<strong> Html &amp; CSS</strong> and then <strong>Javascript</strong>, in that way you could still have fun along the way by creating cool websites. You could learn programming by making simple applications or by using systems like <strong>Arduino </strong>or <strong>Raspberry</strong>.&nbsp;</li></ul>
<!-- /wp:list -->

<!-- wp:list -->
<ul><li><strong>Making games will necessarily require to learn other stuff: </strong>if your target is to only focus on programming then games might not be for you. Keep in mind that making a game will require you to learn things that are separated from programming, like sprites, how animations work, the game loop, collisions etc. So if you only want a raw, terminal-like experience with a programming language then you might reconsider the game option.&nbsp;</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>This guide won’t be helpful only for people who want to start to learn programming in 2019 by making games but also for people who are already developing them and that might discover some new tools here.&nbsp;<br>Let’s start!<br></p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>GameMaker</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>GameMaker is a game engine built with the intention to bring 2d game development to everyone out there willing to learn it.<br></p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225459303_GmsDraw.png" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>&nbsp;You will be able to build games using either its drag and drop system (which is great to learn the fundamentals of programming) or its built-in programming language called GML. With GML you won’t only learn to use a programming language but you will also be able to expand a game to your will. There are great resources out there including:&nbsp;<br></p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><strong>Game maker </strong><a target="_blank" href="https://www.yoyogames.com/learn" rel="noreferrer noopener"><strong>learn section</strong></a></li><li><strong>This two beginner books for making games using drag and drop: </strong><a target="_blank" href="https://www.amazon.com/Game-Makers-Apprentice-Development-Beginners/dp/1590596153" rel="noreferrer noopener"><strong>here </strong></a><strong>and </strong><a target="_blank" href="https://www.amazon.com/Game-Makers-Companion-Technology-Action/dp/1430228261/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1549224823&amp;sr=1-1&amp;keywords=the+game+maker+companion" rel="noreferrer noopener"><strong>here</strong></a></li><li><strong>This </strong><a target="_blank" href="https://www.amazon.com/GameMaker-Language-InDepth-Guide-Cover/dp/1329419561/ref=sr_1_fkmr0_1?s=books&amp;ie=UTF8&amp;qid=1549224840&amp;sr=1-1-fkmr0&amp;keywords=learn+gml" rel="noreferrer noopener"><strong>book </strong></a><strong>to learn how to use GML</strong></li></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2>Code Combat</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Code Combat is an online platform that follows one simple purpose:<strong> to teach everyone to code by creating engaging games</strong>. There are different sections, each one dedicated to a particular aspect of development, and if that wasn’t enough, Code Combat is also an open project that will allow you to build your own levels, modify games behaviour and help other people to grow.&nbsp;<br></p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549226787123_maxresdefault.jpg" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2>Unity</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>The Unity game engine is not only of the most advanced, feature-rich tools for both 2d/3d game development out there you can find, but it’s also been used for literally <a target="_blank" href="https://unity.com/madewith?_ga=2.13643447.1808752790.1549224602-1607968678.1549224602" rel="noreferrer noopener">thousands </a>of game out there. Many of them even became very <a target="_blank" href="https://www.youtube.com/watch?v=oCxv0twTww4" rel="noreferrer noopener">famous</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225370166_Grome_ui_objnity-engine.jpg" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>With Unity you will be able to build games using the C# programming language, which, after some practice can be used to create pretty complex games. One of the best parts of this tool is also the number of resources out there you can look up to in order to learn it, here are some of the best:&nbsp;<br></p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><a rel="noreferrer noopener" target="_blank" href="https://www.udemy.com/unitycourse/"><strong>Learn C# by making 2d games&nbsp;</strong></a></li><li><a rel="noreferrer noopener" target="_blank" href="https://www.udemy.com/unitycourse2/"><strong>Learn C# by making 3d games</strong></a></li><li><a rel="noreferrer noopener" target="_blank" href="https://unity3d.com/"><strong>Official Unity learning resources</strong></a></li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Unreal engine</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Here is another killer game engine you might want to start using. Unreal engine is an industry top level game engine that was involved in creating incredibly <a target="_blank" href="https://www.gamepedia.com/blogs/639-the-10-most-glorious-games-made-with-the-unreal" rel="noreferrer noopener">successful </a>games out there. You will be writing C++ code in order to meet every ambitious idea you might have about how a game should be done.&nbsp;<br></p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549226900148_unreal-engine.png" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>With a full package that will make you able to ship a quality product from the beginning up to the final stages of development, Unreal Engine is for sure one of the best solutions out there especially for more experienced developers. But don’t be discouraged by its complexity, Unreal also offer a great visual system called BluePrint used to create games without coding skills!<br>Here are some of the best resources to learn it:&nbsp;<br></p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><strong>Unreal engine</strong><a target="_blank" href="https://academy.unrealengine.com/" rel="noreferrer noopener"><strong> learn section</strong></a></li><li><a target="_blank" href="https://www.udemy.com/unrealcourse/" rel="noreferrer noopener"><strong>Learn C++ with Unreal</strong></a></li></ul>
<!-- /wp:list -->

<!-- wp:heading -->
<h2>CodinGame</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>CodinGame is a challenge-based platform for developers that want to improve their programming skills by solving fun and compelling game-based problems. It has a great community and support for over 25 programming languages. With CodinGame you will also be able to challenge other players online and learn new programming concepts in a funny and friendly way. The website also offers the possibility to join in what are basically tournaments where the developer who found the best solution for a problem can receive prizes and be noticed by important companies.&nbsp;<br></p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://d2mxuefqeaa7sj.cloudfront.net/s_0401209AE143B9813F26527CC3141D3A01D6E93FBBED38ED121AF25877AC8249_1549225327008_Immagine.png" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":1} -->
<h1>Conclusion</h1>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Game development is a funny, visually engaging, and friendly way to learn development. I hope this guide helped you to understand how much<g class="gr_ gr_11 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar only-ins replaceWithoutSep" id="11" data-gr-id="11"> po</g>wer you can find in games and how much they can help you to start learning to code.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Whether you will be practising by yourself, with your little brother, or even with your kid, you will always be able to grow technically while having a lot of fun and maybe <g class="gr_ gr_4 gr-alert gr_spell gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del" id="4" data-gr-id="4">on</g> <g class="gr_ gr_5 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Grammar only-ins replaceWithoutSep" id="5" data-gr-id="5">day</g> even decide to publish a game you made!</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><g class="gr_ gr_9 gr-alert gr_gramm gr_inline_cards gr_disable_anim_appear Style replaceWithoutSep" id="9" data-gr-id="9">Stay</g> tuned for more articles,&nbsp;Piero Borrelli</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->