<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.planetchili.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ap</id>
		<title>Chilipedia - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.planetchili.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ap"/>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php/Special:Contributions/Ap"/>
		<updated>2026-06-09T07:59:16Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_0&amp;diff=2961</id>
		<title>Beginner C++ Game Programming Tutorial 0</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_0&amp;diff=2961"/>
				<updated>2020-02-06T13:48:01Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial introduces the [[Beginner C++ Game Programming Series]] and walks you through the setup required to follow along with Chili. It also explains who the series is intended for, the goals and outline of the series, and tips on how to succeed, but you can skip all that bullshit if you have crippling ADD. For a detailed list of what is covered in Beginner, see [[Beginner C++ Game Programming Series#Topics Covered|this page]].&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color:#FF0000&amp;quot;&amp;gt;IMPORTANT NOTE!&amp;lt;/span&amp;gt; ==&lt;br /&gt;
Since this video was recorded, Microsoft has released Visual Studio 2017 Community and Visual Studio 2019 Community. You can still download VS2015 and use it for the tutorials, and this might make things a little simpler (&amp;lt;u&amp;gt;2015 is actually a lot better for learning C++ at this point than the newer releases of Visual Studio&amp;lt;/u&amp;gt;), but the new Visual Studio 2017 and Visual Studio 2019 can also be used in the tutorials. However, the installation processes for VS2017 and VS2019 are different, and when you open a [[Chili Framework|Framework]] solution in newer releases of VS for the first time, there is an automatic dialog that you need to handle in order to upgrade the solution to VS2017 or VS2019 (And sometimes, even if you handle the dialog properly, you still get fucked over and have to fix things manually. Thanks Obama!).&lt;br /&gt;
&lt;br /&gt;
Check out [https://youtu.be/39IsItNIoQs &amp;lt;big&amp;gt;THIS VIDEO&amp;lt;/big&amp;gt;] for details on the installation of VS2017 and the process of opening a framework solution in VS2017.&lt;br /&gt;
&lt;br /&gt;
A separate video on getting started with VS2019 is gonna get pooped out soon.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* How to install [[Microsoft Visual Studio|Visual Studio 2015 Community]]&lt;br /&gt;
* How to [[compiler|compile]] and run a solution in Visual Studio&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/PwuIEMUFUnQ 0:00]&lt;br /&gt;
* Why C++ [https://youtu.be/PwuIEMUFUnQ?t=0m55s 0:55]&lt;br /&gt;
* Overview of entire curriculum [https://youtu.be/PwuIEMUFUnQ?t=1m57s 1:57]&lt;br /&gt;
* Required software, hardware, and knowledge [https://youtu.be/PwuIEMUFUnQ?t=2m44s 2:44]&lt;br /&gt;
* Setup of Visual Studio and [[Chili Framework|the Framework]] [https://youtu.be/PwuIEMUFUnQ?t=3m26s 3:26]&lt;br /&gt;
* Don't freak out about the Framework [https://youtu.be/PwuIEMUFUnQ?t=4m22s 6:05]&lt;br /&gt;
* Talk about the solution folder and source files [https://youtu.be/PwuIEMUFUnQ?t=7m52s 7:52]&lt;br /&gt;
* Configuration of the Visual Studio UI [https://youtu.be/PwuIEMUFUnQ?t=8m57s 8:57]&lt;br /&gt;
* First compile and run [https://youtu.be/PwuIEMUFUnQ?t=9m52s 9:52]&lt;br /&gt;
* Yo where the .exe at tho? [https://youtu.be/PwuIEMUFUnQ?t=11m13s 11:13]&lt;br /&gt;
* First line of code and challenge (Homework) [https://youtu.be/PwuIEMUFUnQ?t=12m07s 12:07]&lt;br /&gt;
* How to interact with Chili / get programming help on the [[Planet Chili Forums|Forum]] [https://youtu.be/PwuIEMUFUnQ?t=14m27s 14:27]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
The homework for this lesson is to experiment with the [[Graphics (Chili Framework)#PutPixel()|&amp;lt;code&amp;gt;PutPixel()&amp;lt;/code&amp;gt;]] function and deduce the meanings of the five function parameters. The solution to this challenge is given at the beginning of the next tutorial.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://visualstudio.microsoft.com/vs/older-downloads/ Visual Studio 2015 Community Download]&lt;br /&gt;
&lt;br /&gt;
* [https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=Community&amp;amp;rel=15 Visual Studio 2017 Community Download]&lt;br /&gt;
&lt;br /&gt;
* [https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community&amp;amp;rel=16 Visual Studio 2019 Community Download]&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/Chili%20DirectX%20Framework.zip Framework Download]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 1|Next in series (Tutorial 1)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;br /&gt;
* [[Planet Chili Forums]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_13&amp;diff=2248</id>
		<title>Beginner C++ Game Programming Tutorial 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_13&amp;diff=2248"/>
				<updated>2019-10-12T04:07:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this lesson we learn about the bomb-ass data structure known as the array, the granddaddy of them all. We also learn about boring shit like the automatically-generated default constructor (BOOOOORIIIIING! NEEEEEERRRD!).&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Arrays&lt;br /&gt;
* Default Constructor&lt;br /&gt;
* Using &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt;s&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Mean average code example: local variables analysis in debugger [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=0m54s 0:54]&lt;br /&gt;
* Arrays visualization in memory, arrays anatomy [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=2m37s 2:37]&lt;br /&gt;
* Declaring an array in C++ [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=5m19s 5:19]&lt;br /&gt;
* Array size must be known at compile time [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=7m20s 7:20]&lt;br /&gt;
* What's so good about arrays: Using arrays in loops [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=8m23s 8:23]&lt;br /&gt;
* Array size limit [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=11m22s 11:22]&lt;br /&gt;
* Refactoring Poo Game: Using arrays [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=13m20s 13:20]&lt;br /&gt;
* Useful logic pattern for determining if all elements &amp;quot;return true&amp;quot; [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=15m25s 15:25]&lt;br /&gt;
* Constructing array of objects: default constructor [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=18m30s 18:30]&lt;br /&gt;
* Note: There are special member functions in C++ [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=19m54s 19:54]&lt;br /&gt;
* Initializing poos [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=21m39s 21:39]&lt;br /&gt;
* Disadvantage of initializing poos this way (&amp;lt;code&amp;gt;Init()&amp;lt;/code&amp;gt; funciton): breaks encapsulation [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=23m53s 23:53]&lt;br /&gt;
* Making it a little better: [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=25m7s 25:07]&lt;br /&gt;
* Another, bigger disadvantage of initializing poos using &amp;lt;code&amp;gt;Init()&amp;lt;/code&amp;gt; funciton: &amp;lt;code&amp;gt;Init()&amp;lt;/code&amp;gt; is separate from object construction, and thus could be easily desynchronized. [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=28m18s 28:18]&lt;br /&gt;
* Solving above issue [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=29m7s 29:07]&lt;br /&gt;
* Safety checks: Is it worth it? [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=30m28s 30:28]&lt;br /&gt;
* In the future we will learn about vectors, a better solution for above problems [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=31m5s 31:05]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=31m41s 31:41]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Make it so that touching the poo is game over and the goal is to reach a square.&lt;br /&gt;
# Make the square's color pulsate and make a meter that keeps track of how many times the goal was reached.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://www.youtube.com/watch?v=g4Xwf8XK2Ew this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* The starting code for Tutorial 13 is [http://www.planetchili.net/downloads/T13-Poo.zip here].&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/13/Beginner%20Tutorial%2013%20Code.zip Tutorial 13 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/13/Beginner%20Tutorial%2013%20HW%20Code.zip Tutorial 13 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 14|Next in series (Tutorial 14)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_12&amp;diff=2247</id>
		<title>Beginner C++ Game Programming Tutorial 12</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_12&amp;diff=2247"/>
				<updated>2019-10-12T04:05:23Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here we learn about the concept of encapsulation (ask your mom where she keeps the Vicodin!), which is the main principle behind object oriented programming (so listen the fuck up eh?). We also learn how to construct shit, and how to make our shit private.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;Important Note&amp;lt;/span&amp;gt; ==&lt;br /&gt;
Visual Studio has a &amp;lt;cool feature&amp;gt; wherein when you use &amp;quot;quick actions... -&amp;gt; move definition location&amp;quot; on a constructor, it adds a goddamn &amp;lt;code&amp;gt;inline&amp;lt;/code&amp;gt; keyword which fucks the whole goddamn works up! D:&amp;lt; This is fixed in the homework solution, but if you are attempting the homework before peeking (as you should be), then this could fuck you up royally. Keep it in mind.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Encapsulation and data hiding&lt;br /&gt;
* How to create a constructor&lt;br /&gt;
* How do initialize embedded objects (class initializer list)&lt;br /&gt;
* How to control member access (&amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; keyword)&lt;br /&gt;
&lt;br /&gt;
== Encapsulation ==&lt;br /&gt;
[http://stackoverflow.com/questions/18300953/why-encapsulation-is-an-important-feature-of-oop-languages/18301027#18301027 This page] has some interesting discussion on why we bother with all this encapsulation bullshit.&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Encapsulation: Difference between &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; data members [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=0m55s 0:55]&lt;br /&gt;
* Poo class: Making member data private [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=2m43s 2:43]&lt;br /&gt;
* Important note on &amp;quot;Getters&amp;quot; and &amp;quot;Setters&amp;quot; [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=5m0s 5:00]&lt;br /&gt;
* Advantages of &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; member data with a getter and setter, as opposed to just &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; member data [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=7m7s 7:07]&lt;br /&gt;
* Constructors: setting values during object initialization [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=9m30s 9:30]&lt;br /&gt;
* Class initializer list: Initializing embedded objects (Poo objects inside a Game object) [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=12m34s 12:34]&lt;br /&gt;
* Class initializer list order must correspond to the order of data member declaraion [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=17m10s 17:10]&lt;br /&gt;
* Visual Studio tricks: Quick actions -&amp;gt; Move definition location, but with a little brainfucky surprize you will learn about very soon [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=19m59s 19:59]&lt;br /&gt;
* Reasons to properly encapsulate class member data [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=20m52s 20:52]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=30m10s 30:10]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Encapsulate the fuck out of the &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; class.&lt;br /&gt;
# Increase the number of &amp;lt;code&amp;gt;Poo&amp;lt;/code&amp;gt; objects from 3 to 9.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/8Lb-E4g0lpc this video].&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* The starting code for Tutorial 12 is [http://www.planetchili.net/downloads/T12-Poo.zip here].&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/12/Beginner%20Tutorial%2012%20Code.zip Tutorial 12 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/12/Beginner%20Tutorial%2012%20HW%20Code.zip Tutorial 12 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 13|Next in series (Tutorial 13)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_11&amp;diff=2246</id>
		<title>Beginner C++ Game Programming Tutorial 11</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_11&amp;diff=2246"/>
				<updated>2019-10-12T04:04:00Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;References are sweet because they let us control our shit from far away. Remember the days when we had to actually get up to change the channel on the TV? Remember TV? Fuck that shit! Also, const correctness is for big dick gangstas that don't give any fucks.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* References&lt;br /&gt;
* Passing by reference&lt;br /&gt;
* &amp;lt;code&amp;gt;[[const]]&amp;lt;/code&amp;gt; correctness (redux)&lt;br /&gt;
&lt;br /&gt;
== Const Correctness ==&lt;br /&gt;
The use of &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; as a means of communication by code and as method to prevent you and other people from shooting you (your code / themselves) in the dick is something that Chili finds cromulent. For some info on how &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; makes your code less shitty, check [https://isocpp.org/wiki/faq/const-correctness#const-and-type-safety this]. If you're still not sold (I happen to like being a human dumpster fire, thank you very much Chili), here is a video showing how using &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; can make your code a fuck of a lot faster: [https://www.youtube.com/watch?v=zBkNBP00wJE&amp;amp;feature=youtu.be&amp;amp;t=1455 cool beans].&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Drawing rect function [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=0m41s 0:41]&lt;br /&gt;
* Creating a Color object [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=4m32s 4:32]&lt;br /&gt;
* Controlling the rectangle with the mouse [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=6m46s 6:46]&lt;br /&gt;
* Extending DrawRect function to account for the &amp;quot;flip over&amp;quot; on the x and y, when x1 or y1 &amp;lt; x0 or y0 [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=8m23s 8:23]&lt;br /&gt;
* Test and swap x0,y0 and x1,y1 [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=10m19s 10:19]&lt;br /&gt;
* Shit don't work, references to the rescue! [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=10m19s 12:16]&lt;br /&gt;
* Making Test and swap work! [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=17m45s 17:45]&lt;br /&gt;
* Refactoring DrawRect [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=20m36s 20:36]&lt;br /&gt;
* Poo game: Moving poo drawing code from Game class into Poo class [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=21m35s 21:35]&lt;br /&gt;
* Process Consumption refactoring (args): passing Dude object by reference [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=25m48s 25:48]&lt;br /&gt;
* Const correctness: passing by const reference [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=28m25s 28:25]&lt;br /&gt;
* Const correctness: Making member functions const [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=30m40s 30:40] &lt;br /&gt;
* Recap [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=32m1s 32:01] &lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=34m5s 34:05]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Move the drawing code for &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; into the &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; class.&lt;br /&gt;
# Make a second &amp;lt;code&amp;gt;DrawRect&amp;lt;/code&amp;gt; function that takes a single point (top left corner) and the dimensions as parameters.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/MOhF8Z2jW0k this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Poo.zip Poo Starting Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Rect.zip Rect Starting Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/11/Beginner%20Tutorial%2011%20Poo%20Code.zip Beginner Tutorial 11 Poo Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/11/Beginner%20Tutorial%2011%20Rect%20Code.zip Beginner Tutorial 11 Rect Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/11/Beginner%20Tutorial%2011%20Poo%20HW%20Code.zip Beginner Tutorial 11 Poo HW Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/11/Beginner%20Tutorial%2011%20Rect%20HW%20Code.zip Beginner Tutorial 11 Rect HW Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 12|Next in series (Tutorial 12)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_10&amp;diff=2245</id>
		<title>Beginner C++ Game Programming Tutorial 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_10&amp;diff=2245"/>
				<updated>2019-10-12T04:02:04Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this video we learn how to loop our shit. Fuckoff copy and paste. Die in a gasoline fire (just kidding, don't leave me baby!)&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop&lt;br /&gt;
* &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop&lt;br /&gt;
* &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop&lt;br /&gt;
* Preincrement &amp;lt;code&amp;gt;++x&amp;lt;/code&amp;gt; and postincrement &amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt; operators&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* The roadmap [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=0m20s 0:20]&lt;br /&gt;
* Loops: &amp;lt;code&amp;gt;while() {...}&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=1m39s 1:39]&lt;br /&gt;
* Loops: &amp;lt;code&amp;gt;for() {...}&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=8m20s 8:20]&lt;br /&gt;
* Increment/decrement unary operator [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=10m51s 10:51]&lt;br /&gt;
* Fun Chili fact for the day: the origins of the &amp;quot;C++&amp;quot; language name [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=11m51s 11:51]&lt;br /&gt;
* Loops: &amp;lt;code&amp;gt;do {...} while ()&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=12m36s 12:36]&lt;br /&gt;
* Loop differences, when to use &amp;lt;code&amp;gt;for(){}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;while(){}&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;do{} while()&amp;lt;/code&amp;gt; (if you are kinda weird) [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=13m15s 13:15]&lt;br /&gt;
* Chili's Dank Meta Nugs [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=15m6s 15:06]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=18m23s 18:23]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Write a routine to draw a rectangle on the screen.&lt;br /&gt;
# Make it so that you can control the position of the rectangle with the arrow keys and the size of the rectangle with the WASD keys. For info on querying keyboard input for alphanumeric keys, see the section &amp;quot;Virtual Key Codes&amp;quot; on [[Keyboard (Chili Framework)#Virtual_Key_Codes|this page]].&lt;br /&gt;
&lt;br /&gt;
The solution is given in a [https://youtu.be/lWTwNXfU-Nc this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/Chili%20DirectX%20Framework.zip Framework Download]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/10/Beginner%20Tutorial%2010%20Code.zip Tutorial 10 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/10/Beginner%20Tutorial%2010%20HW%20Code.zip Tutorial 10 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 11|Next in series (Tutorial 11)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_9&amp;diff=2244</id>
		<title>Beginner C++ Game Programming Tutorial 9</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_9&amp;diff=2244"/>
				<updated>2019-10-12T04:00:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this video we make our first class and Chili teaches us about the birds and the bees and the static constexpr.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Creating a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; vs. &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; access&lt;br /&gt;
* &amp;lt;code&amp;gt;static&amp;lt;/code&amp;gt; member variables&lt;br /&gt;
* &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; variables&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* ClampScreen code recap [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=0m18s 0:18]&lt;br /&gt;
* The issue of the current Game data organization: [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=1m38s 1:38]&lt;br /&gt;
* Classes: OOP to the rescue [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=1m38s 2:25]&lt;br /&gt;
* Creating our own class [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=3m21s 3:21]&lt;br /&gt;
* Header guard: &amp;lt;code&amp;gt;#pragma once&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=3m40s 3:40]&lt;br /&gt;
* Letting other files know about our class: including headers [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=5m52s 5:52]&lt;br /&gt;
* Refactoring game code related to poo [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=6m56s 6:56]&lt;br /&gt;
* A little trick: Advanced find + replace with regex enabled [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=7m8s 7:08]&lt;br /&gt;
* Adding an implementation file (.cpp) for Poo class [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=9m5s 9:05]&lt;br /&gt;
* Advantages of the new poo object oriented code [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=12m7s 12:07]&lt;br /&gt;
* Initializing poos' velocities [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=14m12s 14:12]&lt;br /&gt;
* Factoring out common attributes from class objects: &amp;lt;code&amp;gt;static&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=14m41s 14:41]&lt;br /&gt;
* Difference between &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=16m8s 16:08]&lt;br /&gt;
* Accessing static class members [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=16m40s 16:40]&lt;br /&gt;
* Class member access restrictions: &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; vs &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=17m20s 17:20]&lt;br /&gt;
* Summing up what we have learned and a couple of tips [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=19m12s 19:12]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=20m3s 20:03]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Make the Dude entity into a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; as well. It's up to you to decide what member functions you should give it. Might want to add another function to &amp;lt;code&amp;gt;Poo&amp;lt;/code&amp;gt; as well (hint hint hint!).&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/b4FjV2R9jy0 this video].&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T9-Starting-Code.zip T9 Starting Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/9/Beginner%20Tutorial%209%20Code.zip Tutorial 9 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/9/Beginner%20Tutorial%209%20HW%20Code.zip Tutorial 9 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 10|Next in series (Tutorial 10)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_8&amp;diff=2243</id>
		<title>Beginner C++ Game Programming Tutorial 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_8&amp;diff=2243"/>
				<updated>2019-10-12T03:59:34Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We make our first game. So goddamn sweet. Not shitty at all.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* &amp;lt;code&amp;gt;+=&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-=&amp;lt;/code&amp;gt; operators&lt;br /&gt;
* Writing code in a constructor&lt;br /&gt;
* &amp;lt;code&amp;gt;#include &amp;lt;header&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using &amp;lt;code&amp;gt;std::mt19973&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;std::uniform_int_distribution&amp;lt;int&amp;gt;&amp;lt;/code&amp;gt; to generate random numbers&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Basic game plan [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=0m30s 0:30]&lt;br /&gt;
* Setting up member variables for entities: dude and poo [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=0m50s 0:50]&lt;br /&gt;
* Dude and poo graphics [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=2m20s 2:20]&lt;br /&gt;
* Creating Draw functions for Dude and Poo [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=4m8s 4:08]&lt;br /&gt;
* Quick note on sprite coordinate origins [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=5m20s 5:20]&lt;br /&gt;
* Screen clamping functions [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=6m20s 6:20]&lt;br /&gt;
* Movement code for Dude [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=8m9s 8:09]&lt;br /&gt;
* Collision test code [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=9m3s 9:03]&lt;br /&gt;
* Win condition and Gameover screen [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=11m54s 11:54]&lt;br /&gt;
* Title Screen [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=13m20s 13:20]&lt;br /&gt;
* Randomizing poo positions [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=15m7s 15:07]&lt;br /&gt;
* A little bit on constructors [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=16m11s 16:11]&lt;br /&gt;
* Creating random number generator object [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=16m50s 16:50]&lt;br /&gt;
* Specifying a range for random numbers [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=18m23s 18:23]&lt;br /&gt;
* Random device: The importance of a seed [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=20m55s 20:55]&lt;br /&gt;
* Why we don't use random device as a random number generator [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=22m9s 22:09]&lt;br /&gt;
* Summing up what we have learned [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=23m4s 23:04]&lt;br /&gt;
* An important message from the power rangers [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=23m50s 23:50]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=26m33s 26:33]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Make the poos move around the screen and rebound when they hit the edges.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/KIw8MX7HfqU this video].&lt;br /&gt;
&lt;br /&gt;
== Image to PutPixel Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/forum/viewtopic.php?f=3&amp;amp;t=925#p1011 fukbmp] - a barebones tool by Chili&lt;br /&gt;
* [http://www.planetchili.net/forum/viewtopic.php?f=3&amp;amp;t=991 Custom Sprites 1.5] - a nicer tool by LuX&lt;br /&gt;
* [http://forum.planetchili.net/viewtopic.php?f=3&amp;amp;t=3612 Tristan's PutPixel Puker] - another sexy tool by Tristan&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/Chili%20DirectX%20Framework.zip Framework Download]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T8-Goodies.zip PutPixel Sprites]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/8/Beginner%20Tutorial%208%20Code.zip Tutorial 8 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/8/Beginner%20Tutorial%208%20HW%20Code.zip Tutorial 8 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 9|Next in series (Tutorial 9)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_7&amp;diff=2242</id>
		<title>Beginner C++ Game Programming Tutorial 7</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_7&amp;diff=2242"/>
				<updated>2019-10-12T03:58:14Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mr. DeBugger is a real sir.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Using the Visual Studio debugger&lt;br /&gt;
&lt;br /&gt;
== Chili's Dank Meta Nugs ==&lt;br /&gt;
* Don't binge watch the tutorials--space that shit out&lt;br /&gt;
* Practice and experiment with C++ on your own initiative&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Introducing the Debugger [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=0m31s 0:31]&lt;br /&gt;
* Setting up the debugger [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=1m41s 1:41]&lt;br /&gt;
* Running in debug mode [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=2m25s 2:25]&lt;br /&gt;
* The call stack [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=2m45s 2:45]&lt;br /&gt;
* Finding debug windows [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=3m17s 3:17]&lt;br /&gt;
* Release vs Debug mode: assertions [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=3m50s 3:50]&lt;br /&gt;
* Autos [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=4m56s 4:56]&lt;br /&gt;
* Debugging second solution: setting your own breakpoints, stepping over and stepping into [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=6m38s 6:38]&lt;br /&gt;
* Locals [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=9m30s 9:30]&lt;br /&gt;
* Step out [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=10m39s 10:39]&lt;br /&gt;
* Continue [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=11m33s 11:33]&lt;br /&gt;
* Advice from Chili [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=12m10s 12:10]&lt;br /&gt;
* Chili's Dank Meta Nugs [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=12m45s 12:45]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=16m35s 16:35]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
There are three problems to solve in three separate solutions. The solutions are all based on the code used in the tutorial video (the code from the Tutorial 6 homework) Download the zip of the solutions below in the Downloads section.&lt;br /&gt;
# Assertion fails! Find the bug! Also, there's another bug hiding if you solve the first one. Try making the boxes collide and see what happens (or what doesn't happen...). Note that I don't talk about this second bug in the solution video. Check out the Solution Errata below for the answer.&lt;br /&gt;
# Assertion fails! Find the bug!&lt;br /&gt;
# Moving the cursor to the bottom of the screen is bad news bears...&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://www.youtube.com/watch?v=reTJUqZspYs this video].&lt;br /&gt;
&lt;br /&gt;
=== Solution Errata ===&lt;br /&gt;
Read the below (click Expand) only after attempting the problem yourself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:700px&amp;quot;&amp;gt;&lt;br /&gt;
In the solution video, we see that the bug in the second homework problem is actually the same bug as in the tutorial video. The reason for this is that Chili fucked up and put the bug he intended to go in the second problem into the first problem. So the first problem has two bugs, and the second problem only has the bug from the tutorial.&lt;br /&gt;
&lt;br /&gt;
Now the bug in the second problem is something that Chili has mentioned before. It is a mix-up between the &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; operators. Specifically, it is as follows (error on line 64 of Game.cpp):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line start=&amp;quot;64&amp;quot;&amp;gt;&lt;br /&gt;
	colliding == &lt;br /&gt;
		OverlapTest( x_fixed0,y_fixed0,x_mobile,y_mobile ) ||&lt;br /&gt;
		OverlapTest( x_fixed1,y_fixed1,x_mobile,y_mobile ) ||&lt;br /&gt;
		OverlapTest( x_fixed2,y_fixed2,x_mobile,y_mobile ) ||&lt;br /&gt;
		OverlapTest( x_fixed3,y_fixed3,x_mobile,y_mobile );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T7-TutCode.zip Tutorial 7 Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T7-Homework.zip Tutorial 7 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 8|Next in series (Tutorial 8)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=2241</id>
		<title>Beginner C++ Game Programming Tutorial 6</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=2241"/>
				<updated>2019-10-12T03:56:54Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to make member functions. That is all.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Declaring and defining member functions&lt;br /&gt;
* Function return values&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Current code recap [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=0m26s 0:26]&lt;br /&gt;
* Making our first function (very emotional moment) [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=1m18s 1:18]&lt;br /&gt;
* Refactoring, making our function more versatile, function parameters [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=4m46s 4:46]&lt;br /&gt;
* Revisiting collision test code because of all the touching [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=8m21s 8:21]&lt;br /&gt;
* More refactoring, collision function [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=9m20s 9:20]&lt;br /&gt;
* More boxes [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=14m17s 14:17]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=16m57s 16:57]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
There are two levels of difficulty.&lt;br /&gt;
# Create a function(s) to limit the targeting box to within the screen drawing region.&lt;br /&gt;
# Same as above, but you are not allowed to use the &amp;lt;code&amp;gt;x_mobile&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;y_mobile&amp;lt;/code&amp;gt; member variables directly in the bodies of the functions.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/_mBq68B7_08 this video].&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/6/Beginner%20Tutorial%206%20Code.zip Tutorial 6 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/6/Beginner%20Tutorial%206%20HW%20Code.zip Tutorial 6 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 7|Next in series (Tutorial 7)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=2240</id>
		<title>Beginner C++ Game Programming Tutorial 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=2240"/>
				<updated>2019-10-12T03:55:36Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comparison and Boolean logic operators. Operators galore! Make &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements great again! Let the &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; dick measuring contests begin! Also, collision detection between rectangles, which is useful for stuff.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Comparison operators (&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Boolean operators (&amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Using parentheses to change order of evaluation (effectively changing what an operator works on)&lt;br /&gt;
* Collision (overlap) detection of rectangular regions (in the homework)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* A few remarks on drawing pixels outside window bounds [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=1m19s 1:19]&lt;br /&gt;
* Debug configuration, assertion failures [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=2m4s 2:04]&lt;br /&gt;
* Comparison operators [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=3m11s 3:11]&lt;br /&gt;
* Logical operators [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=12m41s 12:41]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=19m0s 19:00]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Draw two targeting boxes, one controlled with the arrow keys and one stationary, and have the color of the mobile targeting box change whenever the targeting boxes overlap.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/Uxca1CD5ifk this video].&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/5/Beginner%20Tutorial%205%20Code.zip Tutorial 5 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/5/Beginner%20Tutorial%205%20HW%20Code.zip Tutorial 5 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 6|Next in series (Tutorial 6)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_4&amp;diff=2239</id>
		<title>Beginner C++ Game Programming Tutorial 4</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_4&amp;diff=2239"/>
				<updated>2019-10-12T03:53:42Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this tutorial we explore the idea of animation in computer graphics and we make the reticle move freely around the screen. Along the way we learn about classes and objects, how to add member variables to objects/&amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;es, about .h (header) and .cpp (source) files, and about the short harsh lives of local variables (scope).&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Animation and the game loop&lt;br /&gt;
* Variable scope&lt;br /&gt;
* The concept of objects&lt;br /&gt;
* Classes and their relation to objects&lt;br /&gt;
* Data members (member variables) and member functions&lt;br /&gt;
* Difference between .h and .cpp files&lt;br /&gt;
* Adding data members to a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Separating logic and drawing code&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* [https://www.youtube.com/watch?v=HYiPoRk5ngY Part 1]&lt;br /&gt;
** Intro [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=0m0s 0:00]&lt;br /&gt;
** Keyboard ghosting: Keypress combination limits [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=1m47s 1:47]&lt;br /&gt;
** The problem of reticle movement from Tutorial 3 [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=2m21s 2:21]&lt;br /&gt;
** The game loop [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=4m29s 4:29]&lt;br /&gt;
** Stepping through the game loop using the debugger [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=7m21s 7:21]&lt;br /&gt;
** Scope of a variable: A problem of persisting reticle position across loop cycles [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=12m10s 12:10]&lt;br /&gt;
** Nested scopes and variables of the same name [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=15m12s 15:12]&lt;br /&gt;
* [https://www.youtube.com/watch?v=ry_zHxnPn8A Part 2]&lt;br /&gt;
** Intro [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=0m0s 0:00]&lt;br /&gt;
** Objects [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=0m24s 0:24]&lt;br /&gt;
** Classes [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=2m05s 2:05]&lt;br /&gt;
** How classes define objects: data members and member functions [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=5m19s 5:19]&lt;br /&gt;
** Header files (.h) and source files (.cpp) [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=8m59s 8:59]&lt;br /&gt;
** Persisting reticle position across loop cycles: The solution [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=11m44s 11:44]&lt;br /&gt;
** Quick note: Drawing pixels outside the window bounds [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=16m25s 16:25]&lt;br /&gt;
* [https://www.youtube.com/watch?v=zG-v7-1FN-U Part 3]&lt;br /&gt;
** Intro [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=0m0s 0:00]&lt;br /&gt;
** Old homework tasks [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=1m11s 1:11]&lt;br /&gt;
** Separate drawing code from game logic [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=2m13s 2:13]&lt;br /&gt;
** Control reticle velocity instead of movement [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=9m31s 9:31]&lt;br /&gt;
** Prevent reticle from ballin' outta control [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=12m18s 12:18]&lt;br /&gt;
** Summing up Tutorial 4 [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=17m5s 17:05]&lt;br /&gt;
&lt;br /&gt;
== Bonus Advice Video ==&lt;br /&gt;
The bonus video mentioned at the end of Part 3 with advice for beginners hasn't been made yet. Wait first eh! It will be made in due time, and when it is you will get a notification if you put good old Chili in your notification list for YouTube. I'll put the link here as well when the video gets made and uploaded. Until then, don't take any wooden nickels or whatever.&lt;br /&gt;
&lt;br /&gt;
== Homework Questions ==&lt;br /&gt;
This lesson's homework is to answer the following questions. When you think you have the answer, click &amp;quot;expand&amp;quot; to reveal the correct answer.&lt;br /&gt;
&lt;br /&gt;
1. What symbols are a common indicator of the scope of a local variable?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: The curly braces &amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
2. What are the two types of members that define a class?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: Data members and member functions.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3. What is the relationship between classes and objects.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: Classes are like a template or a blueprint that specifies the shape of an object. Objects are data structures in memory that are created, shaped, and which behave based on how they are specified in their class. We say that an object is an ''instance'' of a class.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
4. How do we achieve the movement of the reticle.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: We achieve movement of the reticle by making the variables &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; member variables of &amp;lt;code&amp;gt;class Game&amp;lt;/code&amp;gt;. In doing so, we no longer lose the values of these variables from frame to frame (when they are local variables, they are destroyed after exiting the &amp;lt;code&amp;gt;ComposeFrame()&amp;lt;/code&amp;gt; function, i.e. after each frame).&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
5. How are the members &amp;lt;code&amp;gt;gfx&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wnd&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;class Game&amp;lt;/code&amp;gt; different?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: &amp;lt;code&amp;gt;Game::gfx&amp;lt;/code&amp;gt; is an object which is embedded directly into objects of the &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; class, whereas &amp;lt;code&amp;gt;Game::wnd&amp;lt;/code&amp;gt; is a reference to a &amp;lt;code&amp;gt;MainWindow&amp;lt;/code&amp;gt; object that exists outside of and is independent of the &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; object.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
* In Part 1 at 6:00 there is a mistake in the diagram where Chili shows the concept of animation from one frame to the next. The &amp;quot;frame 2&amp;quot;: &amp;quot;draw 2nd object&amp;quot; (blue triangle) should have the blue triangle drawn to the right as it is shown in &amp;quot;draw 3rd object&amp;quot;.&lt;br /&gt;
* In Part 3 when we make the &amp;lt;code&amp;gt;gb&amp;lt;/code&amp;gt; variable a member variable, it will maintain its value from frame to frame. So if we don't reset it every frame, then the first time we press CTRL and set it to 255, it will forever after be stuck at 255, which is probably not desired behavior. ;)&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* If you get a crash when the reticle goes off the screen when Chili can make his reticle wrap from right to left, make sure your build configuration is set to &amp;lt;code&amp;gt;Release&amp;lt;/code&amp;gt; and not &amp;lt;code&amp;gt;Debug&amp;lt;/code&amp;gt;.&lt;br /&gt;
* This is version 2 of this tutorial. Version 1 was released back in August 2016, but it caused a lot of people to lose their shit and give up on the awesomeness that is C++, so Chili remade it. It's now over twice as long, and jam packed full of juicy knowledge, with a liberal smattering of memes as well.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/4/Beginner%20Tutorial%204.2%20Code.zip Tutorial 4.2 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/4/Beginner%20Tutorial%204.3%20Code.zip Tutorial 4.3 Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 5|Next in series (Tutorial 5)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_3&amp;diff=2238</id>
		<title>Beginner C++ Game Programming Tutorial 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_3&amp;diff=2238"/>
				<updated>2019-10-12T03:52:25Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We learn how to control the flow of execution using [[If Statement|&amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements]], we learn about a new [[variable]] type called [[variable#bool|&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;]], and we learn how to use the [[Chili Framework]] to get [[Keyboard (Chili Framework)|keyboard]] input. All this, plus the dankest memes from 2007.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* [[If_Statement|&amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statement]]&lt;br /&gt;
* [[variable#bool|&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;]] variable type&lt;br /&gt;
* Using return values from function calls&lt;br /&gt;
* [[Keyboard (Chili Framework)|&amp;lt;code&amp;gt;Keyboard&amp;lt;/code&amp;gt;]] (Chili Framework-specific concept)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/xWLcp_yOpww 0:00]&lt;br /&gt;
* Homework solution [https://youtu.be/xWLcp_yOpww?t=0m29s 0:29]&lt;br /&gt;
* Sprite origin (base position) [https://youtu.be/xWLcp_yOpww?t=1m30s 1:30]&lt;br /&gt;
* Order of statement execution [https://youtu.be/xWLcp_yOpww?t=5m10s 5:10]&lt;br /&gt;
* Branching (conditional flow control) [https://youtu.be/xWLcp_yOpww?t=6m40s 6:40]&lt;br /&gt;
* &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statement / &amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt; type [https://youtu.be/xWLcp_yOpww?t=7m52s 7:52]&lt;br /&gt;
* Keyboard input / objects inside other objects [https://youtu.be/xWLcp_yOpww?t=12m06s 12:06]&lt;br /&gt;
* Function return values [https://youtu.be/xWLcp_yOpww?t=15m55s 15:55]&lt;br /&gt;
* Virtual key codes [https://youtu.be/xWLcp_yOpww?t=17m27s 17:27]&lt;br /&gt;
* &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; statement [https://youtu.be/xWLcp_yOpww?t=19m33s 19:33]&lt;br /&gt;
* &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else if&amp;lt;/code&amp;gt; chaining [https://youtu.be/xWLcp_yOpww?t=20m35s 20:35]&lt;br /&gt;
* Nesting &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements [https://youtu.be/xWLcp_yOpww?t=22m05s 22:05]&lt;br /&gt;
* Homework assignment [https://youtu.be/xWLcp_yOpww?t=23m48s 23:48]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Using the concepts taught so far, create a program that allows you to position the reticle in one of 9 positions (regular 3x3 grid) by holding the arrow keys, change its color by holding the control key, and change its shape by holding the shift key. The solution is given in [https://youtu.be/lTSaoRYo430 this video].&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/3/Beginner%20Tutorial%203%20Code.zip Tutorial 3 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/3/Beginner%20Tutorial%203%20HW%20Code.zip Tutorial 3 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 4|Next in series (Tutorial 4)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_2&amp;diff=2237</id>
		<title>Beginner C++ Game Programming Tutorial 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_2&amp;diff=2237"/>
				<updated>2019-10-12T03:51:20Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial is all about making sweet ass boxes ([[variable|variables]]) to jam your hot numbers into and using [[operator|operators]] (addition and subtraction) to add and subtract shit.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Commenting (adding comments to) code / commenting out lines of code&lt;br /&gt;
* [[variable|Variables]] (specifically &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;)&lt;br /&gt;
* [[operator|Operators]] (specifically addition &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; and subtraction &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/qqlUztlgNA4 0:00]&lt;br /&gt;
* Homework Solution / Translation Transformation VapeNation [https://youtu.be/qqlUztlgNA4?t=0m20s 0:20]&lt;br /&gt;
* Comments (of the non-YouTube variety) [https://youtu.be/qqlUztlgNA4?t=2m36s 2:36]&lt;br /&gt;
* Variables (specifically &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;) [https://youtu.be/qqlUztlgNA4?t=4m24s 4:24]&lt;br /&gt;
* [[variable#The const Specifier|&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;]]-ipation and &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;-correctness [https://youtu.be/qqlUztlgNA4?t=9m22s 9:22]&lt;br /&gt;
* Rules for naming variables [https://youtu.be/qqlUztlgNA4?t=10m13s 10:13]&lt;br /&gt;
* Operators (addition &amp;amp; subtraction) [https://youtu.be/qqlUztlgNA4?t=13m55s 13:55]&lt;br /&gt;
* Homework assignment [https://youtu.be/qqlUztlgNA4?t=17m05s 17:05]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
The homework for this lesson is to modify the reticle drawing code so that you can change the position of the reticle by only changing two numbers (literal constants) in the code. Make sure you uncomment the lines that were commented, or you'll get a pretty shitty excuse for a reticle. The solution will be given in the beginning of the next tutorial.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/2/Beginner%20Tutorial%202%20Code.zip Tutorial 2 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/2/Beginner%20Tutorial%202%20HW%20Code.zip Tutorial 2 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 3|Next in series (Tutorial 3)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_1&amp;diff=2236</id>
		<title>Beginner C++ Game Programming Tutorial 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_1&amp;diff=2236"/>
				<updated>2019-10-12T03:49:47Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial mainly deals with how to call a [[function]] in C++ and basic syntax rules. We also talk about pixels, intellisense and other dumb bullshit.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
This is not the first tutorial in the series (programmers start counting from 0 ;)). Get the first tutorial here: [[Beginner C++ Game Programming Tutorial 0]]&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Function calls&lt;br /&gt;
* Basic C++ syntax&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/6VMq_2lH-Qo 0:00]&lt;br /&gt;
* Pixels and coordinates [https://youtu.be/6VMq_2lH-Qo?t=0m24s 0:24]&lt;br /&gt;
* &amp;lt;code&amp;gt;PutPixel()&amp;lt;/code&amp;gt; parameter meanings [https://youtu.be/6VMq_2lH-Qo?t=2m11s 2:11]&lt;br /&gt;
* Drawing outside of the screen and escaping debugger limbo [https://youtu.be/6VMq_2lH-Qo?t=4m00s 4:00]&lt;br /&gt;
* Function call concept and syntax [https://youtu.be/6VMq_2lH-Qo?t=6m16s 6:16]&lt;br /&gt;
* Intellisense and Autocompletion [https://youtu.be/6VMq_2lH-Qo?t=9m10s 9:10]&lt;br /&gt;
* Fixing syntax errors [https://youtu.be/6VMq_2lH-Qo?t=11m37s 11:37]&lt;br /&gt;
* C++ doesn't care about whitespace [https://youtu.be/6VMq_2lH-Qo?t=14m34s 14:34]&lt;br /&gt;
* Visualizing pixel image from code challenge [https://youtu.be/6VMq_2lH-Qo?t=15m56s 15:56]&lt;br /&gt;
* Changing image position challenge (homework) [https://youtu.be/6VMq_2lH-Qo?t=16:37m24s 16:37]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
The homework for this lesson is to modify the code to move the pixel image to the bottom right corner of the screen. The solution will be given at the beginning of the next tutorial.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/1/Beginner%20Tutorial%201%20Code.zip Tutorial 1 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/1/Beginner%20Tutorial%201%20HW%20Code.zip Tutorial 1 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 2|Next in series (Tutorial 2)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_1&amp;diff=2235</id>
		<title>Beginner C++ Game Programming Tutorial 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_1&amp;diff=2235"/>
				<updated>2019-10-12T03:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial mainly deals with how to call a [[function]] in C++ and basic syntax rules. We also talk about pixels, intellisense and other dumb bullshit.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
This is not the first tutorial in the series (programmers start counting from 0 ;)). Get the first tutorial here: [[Beginner C++ Game Programming Tutorial 0]]&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Function calls&lt;br /&gt;
* Basic C++ syntax&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/6VMq_2lH-Qo 0:00]&lt;br /&gt;
* Pixels and coordinates [https://youtu.be/6VMq_2lH-Qo?t=0m24s 0:24]&lt;br /&gt;
* &amp;lt;code&amp;gt;PutPixel()&amp;lt;/code&amp;gt; parameter meanings [https://youtu.be/6VMq_2lH-Qo?t=2m11s 2:11]&lt;br /&gt;
* Drawing outside of the screen and escaping debugger limbo [https://youtu.be/6VMq_2lH-Qo?t=4m00s 4:00]&lt;br /&gt;
* Function call concept and syntax [https://youtu.be/6VMq_2lH-Qo?t=6m16s 6:16]&lt;br /&gt;
* Intellisense and Autocompletion [https://youtu.be/6VMq_2lH-Qo?t=9m10s 9:10]&lt;br /&gt;
* Fixing syntax errors [https://youtu.be/6VMq_2lH-Qo?t=11m37s 11:37]&lt;br /&gt;
* C++ doesn't care about whitespace [https://youtu.be/6VMq_2lH-Qo?t=14m34s 14:34]&lt;br /&gt;
* Visualizing pixel image from code challenge [https://youtu.be/6VMq_2lH-Qo?t=15m56s 15:56]&lt;br /&gt;
* Changing image position challenge (homework) [https://youtu.be/6VMq_2lH-Qo?t=16:37m24s 16:37]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
The homework for this lesson is to modify the code to move the pixel image to the bottom right corner of the screen. The solution will be given at the beginning of the next tutorial.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/1/Beginner%20Tutorial%201%20Code.zip Tutorial 1 Code]&lt;br /&gt;
* [https://planetchili.net/downloads/apworks/1/Beginner%20Tutorial%201%20HW%200Code.zip Tutorial 1 Homework Solution Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 2|Next in series (Tutorial 2)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_13&amp;diff=2198</id>
		<title>Beginner C++ Game Programming Tutorial 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_13&amp;diff=2198"/>
				<updated>2019-10-11T15:53:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this lesson we learn about the bomb-ass data structure known as the array, the granddaddy of them all. We also learn about boring shit like the automatically-generated default constructor (BOOOOORIIIIING! NEEEEEERRRD!).&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Arrays&lt;br /&gt;
* Default Constructor&lt;br /&gt;
* Using &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt;s&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Mean average code example: local variables analysis in debugger [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=0m54s 0:54]&lt;br /&gt;
* Arrays visualization in memory, arrays anatomy [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=2m37s 2:37]&lt;br /&gt;
* Declaring an array in C++ [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=5m19s 5:19]&lt;br /&gt;
* Array size must be known at compile time [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=7m20s 7:20]&lt;br /&gt;
* What's so good about arrays: Using arrays in loops [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=8m23s 8:23]&lt;br /&gt;
* Array size limit [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=11m22s 11:22]&lt;br /&gt;
* Refactoring Poo Game: Using arrays [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=13m20s 13:20]&lt;br /&gt;
* Useful logic pattern for determining if all elements &amp;quot;return true&amp;quot; [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=15m25s 15:25]&lt;br /&gt;
* Constructing array of objects: default constructor [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=18m30s 18:30]&lt;br /&gt;
* Note: There are special member functions in C++ [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=19m54s 19:54]&lt;br /&gt;
* Initializing poos [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=21m39s 21:39]&lt;br /&gt;
* Disadvantage of initializing poos this way (&amp;lt;code&amp;gt;Init()&amp;lt;/code&amp;gt; funciton): breaks encapsulation [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=23m53s 23:53]&lt;br /&gt;
* Making it a little better: [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=25m7s 25:07]&lt;br /&gt;
* Another, bigger disadvantage of initializing poos using &amp;lt;code&amp;gt;Init()&amp;lt;/code&amp;gt; funciton: &amp;lt;code&amp;gt;Init()&amp;lt;/code&amp;gt; is separate from object construction, and thus could be easily desynchronized. [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=28m18s 28:18]&lt;br /&gt;
* Solving above issue [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=29m7s 29:07]&lt;br /&gt;
* Safety checks: Is it worth it? [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=30m28s 30:28]&lt;br /&gt;
* In the future we will learn about vectors, a better solution for above problems [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=31m5s 31:05]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=31m41s 31:41]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Make it so that touching the poo is game over and the goal is to reach a square.&lt;br /&gt;
# Make the square's color pulsate and make a meter that keeps track of how many times the goal was reached.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://www.youtube.com/watch?v=g4Xwf8XK2Ew this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* The starting code for Tutorial 13 is [http://www.planetchili.net/downloads/T13-Poo.zip here].&lt;br /&gt;
* [https://wiki.planetchili.net/index.php/Main_Page Tutorial 13 Code (WORK IN PROGRESS)]&lt;br /&gt;
* [https://wiki.planetchili.net/index.php/Main_Page Tutorial 13 Homework Solution Code (WORK IN PROGRESS)]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 14|Next in series (Tutorial 14)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_13&amp;diff=2197</id>
		<title>Beginner C++ Game Programming Tutorial 13</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_13&amp;diff=2197"/>
				<updated>2019-10-11T15:50:05Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this lesson we learn about the bomb-ass data structure known as the array, the granddaddy of them all. We also learn about boring shit like the automatically-generated default constructor (BOOOOORIIIIING! NEEEEEERRRD!).&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Arrays&lt;br /&gt;
* Default Constructor&lt;br /&gt;
* Using &amp;lt;code&amp;gt;assert&amp;lt;/code&amp;gt;s&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Mean average code example: local variables analysis in debugger [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=0m54s 0:54]&lt;br /&gt;
* Arrays visualization in memory, arrays anatomy [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=2m37s 2:37]&lt;br /&gt;
* Declaring an array in C++ [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=5m19s 5:19]&lt;br /&gt;
* Array size must be known at compile time [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=7m20s 7:20]&lt;br /&gt;
* What's so good about arrays: Using arrays in loops [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=8m23s 8:23]&lt;br /&gt;
* Array size limit [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=11m22s 11:22]&lt;br /&gt;
* Refactoring Poo Game: Using arrays [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=13m20s 13:20]&lt;br /&gt;
* Useful logic pattern for determining if all elements &amp;quot;return true&amp;quot; [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=15m25s 15:25]&lt;br /&gt;
* Constructing array of objects: default constructor [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=18m30s 18:30]&lt;br /&gt;
* Note: There are special member functions in C++ [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=19m54s 19:54]&lt;br /&gt;
* Initializing poos [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=21m39s 21:39]&lt;br /&gt;
* Disadvantage of initializing poos this way (&amp;lt;code&amp;gt;Init()&amp;lt;/code&amp;gt; funciton): breaks encapsulation [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=23m53s 23:53]&lt;br /&gt;
* Making it a little better: [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=25m7s 25:07]&lt;br /&gt;
* Another, bigger disadvantage of initializing poos using &amp;lt;code&amp;gt;Init()&amp;lt;/code&amp;gt; funciton: &amp;lt;code&amp;gt;Init()&amp;lt;/code&amp;gt; is separate from object construction, and thus could be easily desynchronized. [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=28m18s 28:18]&lt;br /&gt;
* Solving above issue [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=29m7s 29:07]&lt;br /&gt;
* Safety checks: Is it worth it? [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=30m28s 30:28]&lt;br /&gt;
* In the future we will learn about vectors, a better solution for above problems [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=31m5s 31:05]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=U4IdBkegBuY&amp;amp;t=31m41s 31:41]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Make it so that touching the poo is game over and the goal is to reach a square.&lt;br /&gt;
# Make the square's color pulsate and make a meter that keeps track of how many times the goal was reached.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://www.youtube.com/watch?v=g4Xwf8XK2Ew this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
The starting code for Tutorial 13 is [http://www.planetchili.net/downloads/T13-Poo.zip here].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 14|Next in series (Tutorial 14)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_11&amp;diff=2196</id>
		<title>Beginner C++ Game Programming Tutorial 11</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_11&amp;diff=2196"/>
				<updated>2019-10-11T03:22:44Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;References are sweet because they let us control our shit from far away. Remember the days when we had to actually get up to change the channel on the TV? Remember TV? Fuck that shit! Also, const correctness is for big dick gangstas that don't give any fucks.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* References&lt;br /&gt;
* Passing by reference&lt;br /&gt;
* &amp;lt;code&amp;gt;[[const]]&amp;lt;/code&amp;gt; correctness (redux)&lt;br /&gt;
&lt;br /&gt;
== Const Correctness ==&lt;br /&gt;
The use of &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; as a means of communication by code and as method to prevent you and other people from shooting you (your code / themselves) in the dick is something that Chili finds cromulent. For some info on how &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; makes your code less shitty, check [https://isocpp.org/wiki/faq/const-correctness#const-and-type-safety this]. If you're still not sold (I happen to like being a human dumpster fire, thank you very much Chili), here is a video showing how using &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; can make your code a fuck of a lot faster: [https://www.youtube.com/watch?v=zBkNBP00wJE&amp;amp;feature=youtu.be&amp;amp;t=1455 cool beans].&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Drawing rect function [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=0m41s 0:41]&lt;br /&gt;
* Creating a Color object [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=4m32s 4:32]&lt;br /&gt;
* Controlling the rectangle with the mouse [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=6m46s 6:46]&lt;br /&gt;
* Extending DrawRect function to account for the &amp;quot;flip over&amp;quot; on the x and y, when x1 or y1 &amp;lt; x0 or y0 [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=8m23s 8:23]&lt;br /&gt;
* Test and swap x0,y0 and x1,y1 [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=10m19s 10:19]&lt;br /&gt;
* Shit don't work, references to the rescue! [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=10m19s 12:16]&lt;br /&gt;
* Making Test and swap work! [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=17m45s 17:45]&lt;br /&gt;
* Refactoring DrawRect [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=20m36s 20:36]&lt;br /&gt;
* Poo game: Moving poo drawing code from Game class into Poo class [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=21m35s 21:35]&lt;br /&gt;
* Process Consumption refactoring (args): passing Dude object by reference [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=25m48s 25:48]&lt;br /&gt;
* Const correctness: passing by const reference [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=28m25s 28:25]&lt;br /&gt;
* Const correctness: Making member functions const [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=30m40s 30:40] &lt;br /&gt;
* Recap [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=32m1s 32:01] &lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=34m5s 34:05]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Move the drawing code for &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; into the &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; class.&lt;br /&gt;
# Make a second &amp;lt;code&amp;gt;DrawRect&amp;lt;/code&amp;gt; function that takes a single point (top left corner) and the dimensions as parameters.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/MOhF8Z2jW0k this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Poo.zip Poo Starting Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Rect.zip Rect Starting Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Poo.zip Beginner Tutorial 11 Poo Code (WORK IN PROGRESS)]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Rect.zip Beginner Tutorial 11 Rect Code (WORK IN PROGRESS)]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Poo.zip Beginner Tutorial 11 Poo HW Code (WORK IN PROGRESS)]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Rect.zip Beginner Tutorial 11 Rect HW Code (WORK IN PROGRESS)]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 12|Next in series (Tutorial 12)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_11&amp;diff=2195</id>
		<title>Beginner C++ Game Programming Tutorial 11</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_11&amp;diff=2195"/>
				<updated>2019-10-11T03:22:11Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;References are sweet because they let us control our shit from far away. Remember the days when we had to actually get up to change the channel on the TV? Remember TV? Fuck that shit! Also, const correctness is for big dick gangstas that don't give any fucks.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* References&lt;br /&gt;
* Passing by reference&lt;br /&gt;
* &amp;lt;code&amp;gt;[[const]]&amp;lt;/code&amp;gt; correctness (redux)&lt;br /&gt;
&lt;br /&gt;
== Const Correctness ==&lt;br /&gt;
The use of &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; as a means of communication by code and as method to prevent you and other people from shooting you (your code / themselves) in the dick is something that Chili finds cromulent. For some info on how &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; makes your code less shitty, check [https://isocpp.org/wiki/faq/const-correctness#const-and-type-safety this]. If you're still not sold (I happen to like being a human dumpster fire, thank you very much Chili), here is a video showing how using &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; can make your code a fuck of a lot faster: [https://www.youtube.com/watch?v=zBkNBP00wJE&amp;amp;feature=youtu.be&amp;amp;t=1455 cool beans].&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Drawing rect function [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=0m41s 0:41]&lt;br /&gt;
* Creating a Color object [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=4m32s 4:32]&lt;br /&gt;
* Controlling the rectangle with the mouse [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=6m46s 6:46]&lt;br /&gt;
* Extending DrawRect function to account for the &amp;quot;flip over&amp;quot; on the x and y, when x1 or y1 &amp;lt; x0 or y0 [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=8m23s 8:23]&lt;br /&gt;
* Test and swap x0,y0 and x1,y1 [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=10m19s 10:19]&lt;br /&gt;
* Shit don't work, references to the rescue! [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=10m19s 12:16]&lt;br /&gt;
* Making Test and swap work! [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=17m45s 17:45]&lt;br /&gt;
* Refactoring DrawRect [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=20m36s 20:36]&lt;br /&gt;
* Poo game: Moving poo drawing code from Game class into Poo class [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=21m35s 21:35]&lt;br /&gt;
* Process Consumption refactoring (args): passing Dude object by reference [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=25m48s 25:48]&lt;br /&gt;
* Const correctness: passing by const reference [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=28m25s 28:25]&lt;br /&gt;
* Const correctness: Making member functions const [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=30m40s 30:40] &lt;br /&gt;
* Recap [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=32m1s 32:01] &lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=34m5s 34:05]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Move the drawing code for &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; into the &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; class.&lt;br /&gt;
# Make a second &amp;lt;code&amp;gt;DrawRect&amp;lt;/code&amp;gt; function that takes a single point (top left corner) and the dimensions as parameters.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/MOhF8Z2jW0k this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Poo.zip Poo Starting Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Rect.zip Rect Starting Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Poo.zip Beginner Tutorial 11 Poo Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Rect.zip Beginner Tutorial 11 Rect Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Poo.zip Beginner Tutorial 11 Poo HW Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Rect.zip Beginner Tutorial 11 Rect HW Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 12|Next in series (Tutorial 12)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_10&amp;diff=2194</id>
		<title>Beginner C++ Game Programming Tutorial 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_10&amp;diff=2194"/>
				<updated>2019-10-11T03:13:22Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this video we learn how to loop our shit. Fuckoff copy and paste. Die in a gasoline fire (just kidding, don't leave me baby!)&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop&lt;br /&gt;
* &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop&lt;br /&gt;
* &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop&lt;br /&gt;
* Preincrement &amp;lt;code&amp;gt;++x&amp;lt;/code&amp;gt; and postincrement &amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt; operators&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* The roadmap [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=0m20s 0:20]&lt;br /&gt;
* Loops: &amp;lt;code&amp;gt;while() {...}&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=1m39s 1:39]&lt;br /&gt;
* Loops: &amp;lt;code&amp;gt;for() {...}&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=8m20s 8:20]&lt;br /&gt;
* Increment/decrement unary operator [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=10m51s 10:51]&lt;br /&gt;
* Fun Chili fact for the day: the origins of the &amp;quot;C++&amp;quot; language name [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=11m51s 11:51]&lt;br /&gt;
* Loops: &amp;lt;code&amp;gt;do {...} while ()&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=12m36s 12:36]&lt;br /&gt;
* Loop differences, when to use &amp;lt;code&amp;gt;for(){}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;while(){}&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;do{} while()&amp;lt;/code&amp;gt; (if you are kinda weird) [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=13m15s 13:15]&lt;br /&gt;
* Chili's Dank Meta Nugs [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=15m6s 15:06]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=18m23s 18:23]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Write a routine to draw a rectangle on the screen.&lt;br /&gt;
# Make it so that you can control the position of the rectangle with the arrow keys and the size of the rectangle with the WASD keys. For info on querying keyboard input for alphanumeric keys, see the section &amp;quot;Virtual Key Codes&amp;quot; on [[Keyboard (Chili Framework)#Virtual_Key_Codes|this page]].&lt;br /&gt;
&lt;br /&gt;
The solution is given in a [https://youtu.be/lWTwNXfU-Nc this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/Chili%20DirectX%20Framework.zip Framework Download]&lt;br /&gt;
* [https://wiki.planetchili.net/index.php/Main_Page Tutorial 10 Code (WORK IN PROGRESS)]&lt;br /&gt;
* [https://wiki.planetchili.net/index.php/Main_Page Tutorial 10 Homework Solution Code (WORK IN PROGRESS)]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 11|Next in series (Tutorial 11)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_12&amp;diff=2193</id>
		<title>Beginner C++ Game Programming Tutorial 12</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_12&amp;diff=2193"/>
				<updated>2019-10-11T03:11:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here we learn about the concept of encapsulation (ask your mom where she keeps the Vicodin!), which is the main principle behind object oriented programming (so listen the fuck up eh?). We also learn how to construct shit, and how to make our shit private.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;Important Note&amp;lt;/span&amp;gt; ==&lt;br /&gt;
Visual Studio has a &amp;lt;cool feature&amp;gt; wherein when you use &amp;quot;quick actions... -&amp;gt; move definition location&amp;quot; on a constructor, it adds a goddamn &amp;lt;code&amp;gt;inline&amp;lt;/code&amp;gt; keyword which fucks the whole goddamn works up! D:&amp;lt; This is fixed in the homework solution, but if you are attempting the homework before peeking (as you should be), then this could fuck you up royally. Keep it in mind.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Encapsulation and data hiding&lt;br /&gt;
* How to create a constructor&lt;br /&gt;
* How do initialize embedded objects (class initializer list)&lt;br /&gt;
* How to control member access (&amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; keyword)&lt;br /&gt;
&lt;br /&gt;
== Encapsulation ==&lt;br /&gt;
[http://stackoverflow.com/questions/18300953/why-encapsulation-is-an-important-feature-of-oop-languages/18301027#18301027 This page] has some interesting discussion on why we bother with all this encapsulation bullshit.&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Encapsulation: Difference between &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; data members [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=0m55s 0:55]&lt;br /&gt;
* Poo class: Making member data private [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=2m43s 2:43]&lt;br /&gt;
* Important note on &amp;quot;Getters&amp;quot; and &amp;quot;Setters&amp;quot; [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=5m0s 5:00]&lt;br /&gt;
* Advantages of &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; member data with a getter and setter, as opposed to just &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; member data [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=7m7s 7:07]&lt;br /&gt;
* Constructors: setting values during object initialization [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=9m30s 9:30]&lt;br /&gt;
* Class initializer list: Initializing embedded objects (Poo objects inside a Game object) [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=12m34s 12:34]&lt;br /&gt;
* Class initializer list order must correspond to the order of data member declaraion [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=17m10s 17:10]&lt;br /&gt;
* Visual Studio tricks: Quick actions -&amp;gt; Move definition location, but with a little brainfucky surprize you will learn about very soon [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=19m59s 19:59]&lt;br /&gt;
* Reasons to properly encapsulate class member data [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=20m52s 20:52]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=30m10s 30:10]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Encapsulate the fuck out of the &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; class.&lt;br /&gt;
# Increase the number of &amp;lt;code&amp;gt;Poo&amp;lt;/code&amp;gt; objects from 3 to 9.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/8Lb-E4g0lpc this video].&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* The starting code for Tutorial 12 is [http://www.planetchili.net/downloads/T12-Poo.zip here].&lt;br /&gt;
* [https://wiki.planetchili.net/index.php/Main_Page Tutorial 12 Code (WORK IN PROGRESS)]&lt;br /&gt;
* [https://wiki.planetchili.net/index.php/Main_Page Tutorial 12 Homework Solution Code (WORK IN PROGRESS)]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 13|Next in series (Tutorial 13)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_12&amp;diff=2192</id>
		<title>Beginner C++ Game Programming Tutorial 12</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_12&amp;diff=2192"/>
				<updated>2019-10-11T03:07:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here we learn about the concept of encapsulation (ask your mom where she keeps the Vicodin!), which is the main principle behind object oriented programming (so listen the fuck up eh?). We also learn how to construct shit, and how to make our shit private.&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;span style=&amp;quot;color:pink&amp;quot;&amp;gt;Important Note&amp;lt;/span&amp;gt; ==&lt;br /&gt;
Visual Studio has a &amp;lt;cool feature&amp;gt; wherein when you use &amp;quot;quick actions... -&amp;gt; move definition location&amp;quot; on a constructor, it adds a goddamn &amp;lt;code&amp;gt;inline&amp;lt;/code&amp;gt; keyword which fucks the whole goddamn works up! D:&amp;lt; This is fixed in the homework solution, but if you are attempting the homework before peeking (as you should be), then this could fuck you up royally. Keep it in mind.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Encapsulation and data hiding&lt;br /&gt;
* How to create a constructor&lt;br /&gt;
* How do initialize embedded objects (class initializer list)&lt;br /&gt;
* How to control member access (&amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; keyword)&lt;br /&gt;
&lt;br /&gt;
== Encapsulation ==&lt;br /&gt;
[http://stackoverflow.com/questions/18300953/why-encapsulation-is-an-important-feature-of-oop-languages/18301027#18301027 This page] has some interesting discussion on why we bother with all this encapsulation bullshit.&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Encapsulation: Difference between &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; data members [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=0m55s 0:55]&lt;br /&gt;
* Poo class: Making member data private [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=2m43s 2:43]&lt;br /&gt;
* Important note on &amp;quot;Getters&amp;quot; and &amp;quot;Setters&amp;quot; [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=5m0s 5:00]&lt;br /&gt;
* Advantages of &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; member data with a getter and setter, as opposed to just &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; member data [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=7m7s 7:07]&lt;br /&gt;
* Constructors: setting values during object initialization [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=9m30s 9:30]&lt;br /&gt;
* Class initializer list: Initializing embedded objects (Poo objects inside a Game object) [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=12m34s 12:34]&lt;br /&gt;
* Class initializer list order must correspond to the order of data member declaraion [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=17m10s 17:10]&lt;br /&gt;
* Visual Studio tricks: Quick actions -&amp;gt; Move definition location, but with a little brainfucky surprize you will learn about very soon [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=19m59s 19:59]&lt;br /&gt;
* Reasons to properly encapsulate class member data [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=20m52s 20:52]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=QUBiAUKfVhM&amp;amp;t=30m10s 30:10]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Encapsulate the fuck out of the &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; class.&lt;br /&gt;
# Increase the number of &amp;lt;code&amp;gt;Poo&amp;lt;/code&amp;gt; objects from 3 to 9.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/8Lb-E4g0lpc this video].&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
The starting code for Tutorial 12 is [http://www.planetchili.net/downloads/T12-Poo.zip here].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 13|Next in series (Tutorial 13)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Tools_%26_Resources&amp;diff=2094</id>
		<title>Tools &amp; Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Tools_%26_Resources&amp;diff=2094"/>
				<updated>2019-09-29T06:48:53Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* ChiliWidsom */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Useful Tools &amp;amp; Resources (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== How to contribute ==&lt;br /&gt;
These are all links to external and publicly available sources, no guarantees / responsibility inferred.&lt;br /&gt;
If there are resources you like and would like to recommend, post them on the Discord and mention r_vdw.&lt;br /&gt;
&lt;br /&gt;
== Windows productivity apps ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|FrHed&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Versatile binary file / hex editor&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://sourceforge.net/projects/frhed/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|HxD&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Good freeware hex and disk editor&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://mh-nexus.de/en/hxd/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Slidytip&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|ShareX&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Screen capture / file sharing&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://getsharex.com/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Notepad++&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Source code editor and Notepad replacement&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://notepad-plus-plus.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Codeshare&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Handy tool to share code snippets&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://codeshare.io/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Self destructs in 24 hrs&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Gimp&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Cross-platform image editor (GNU/Linux,OS X,Windows,...&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.gimp.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|-&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Pyxel Edit&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Pixel art editor (make tilesets, levels,animations) by Daniel Kvarfordt &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://pyxeledit.com/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|AP tip&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Vim&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Source code editor, Notepad++ alternative &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.vim.org/download.php&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Will make you shit bricks real good&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Online compiling / testing / visualization ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Compiler Explorer&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Matt Godbolt&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://godbolt.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Analyze and compare the way C++ code compiles across different compilers&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Ideone&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Online compiler and debugger (~60 languages)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.ideone.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Wandbox&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Online compilation service&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://wandbox.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Data structure and algorithm visualization&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|USFCA / CS / David Galles&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.cs.usfca.edu/~galles/visualization/Algorithms.html&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|see it and you'll understand&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Active GitHub Forks&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|See who forked (&amp;amp;last committed) out of date GitHub libs/projects&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://techgaun.github.io/active-forks/index.html&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== C++ Libraries ==&lt;br /&gt;
=== Game tooling / engines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|SFML&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Simple and Fast Multimedia Library&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.sfml-dev.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Easy to use, good functionality. Chili grabs it in Intermediate 25 (I25)&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Eigen&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|C++ template library for linear algebra &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://eigen.tuxfamily.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|chilitip&lt;br /&gt;
|}&lt;br /&gt;
=== Productivity ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|fmtlib &lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|Open-source formatting library&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://fmt.dev/latest/index.html&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|fast/easy, Slidytip&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== AI/ML ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|DLib&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|C++ toolkit containing machine learning algorithms&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|http://dlib.net/&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
=== Categorized / aggregation sites ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|cppreference libraries&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|As suggested by cppreference users&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://en.cppreference.com/w/cpp/links/libs&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|boost C++ libraries&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|boost your shit&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.boost.org/doc/libs/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Reference sites ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|cppreference.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Most comprehensve reference site&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://en.cppreference.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Hardccore&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|cplusplus.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Good reference site&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.cplusplus.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Softcore&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Stack Overflow&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Good reference site&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://stackexchange.com/sites#&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Very active community&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|ISOcpp&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|The home of standard C++&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://isocpp.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|For those purists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Literature (books, blogs, papers, written shit)==&lt;br /&gt;
=== Programming Fundamentals ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#ddf;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Structure and Interpretation of Computer Programs&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Harold Abelson et al. (2nd ed. 1996), MIT Press&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://web.mit.edu/alexmv/6.037/sicp.pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Just a classic&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Clean Code&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Robert C. Martin (14th ed. 2015), Prentice Hall&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://ptgmedia.pearsoncmg.com/images/9780132350884/samplepages/9780132350884.pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Sample chapter, then just buy it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C++ Fundamentals ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|C++ Primer, 5th Edition&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Stanley B. Lippman et al&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|http://www.charleshouserjr.com/Cplus2.pdf&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Standard work, rewritten for C++11. Approachable for beginners&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|C++ Core Guidelines&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Bjarne Stroustrup, Herb Sutter&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|http://isocpp.github.io/CppCoreGuidelines&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Pure discipline, by the masters themselves&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Programming Abstractions in C++&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Eric S. Roberts (2012), Stanford CS106B&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Solid and well thought through intro to C++&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C++ Peculiarities ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Exploring std::string&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|Nice blog that looks under the hood&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://shaharmike.com/cpp/std-string/&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|a tip from Slidy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Game programming ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Game Programming Patterns&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Robert Nystrom&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://gameprogrammingpatterns.com &lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Contains lots of different coding patterns and describes them in detail&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Game Engine Architecture&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Jason Gregory (3rd ed. 2018)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.gameenginebook.com/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Talks about various components that make up a game engine and how they tie together&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3D Computer Graphics ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|The Book of Shaders&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Patricio Gonzalez Vivo and Jen Lowe&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://thebookofshaders.com (pdf can be generated)&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Tricks of the 3D Game Programming Gurus&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by André LaMothe, 2003&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|lagout&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Mathematics for 3D Game Programming and Computer Graphics&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Eric Lengyel (3rd ed.)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Need those math skills&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by James M. Van Verth, Lars M. Bishop (2nd ed.)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Math yo&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Vector Math for 3D Computer Graphics Tutorial&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Bradley Kjell&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://chortle.ccsu.edu/vectorlessons/vectorindex.html &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Demon liked it&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Computing Euler angles from a rotation matrix&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Gregory G. Slabaugh&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.gregslabaugh.net/publications/euler.pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Chilitip&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|D3D/OpenGL  tutorial: A trip through the Graphics Pipeline &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Fabian Giesen&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Learn OpenGL&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Joey de Vries &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://learnopengl.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Specific to OpenGL but well written and presented (Slidy)&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Real-time Rendering&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Tomas Akenine-Möller et al (4th ed. 2018)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.realtimerendering.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Good reference for learning about a wide variety of topics/techniques used in real-time rendering (Slidy)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DirectX ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|DirectX Developer  Blog&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by msft&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://devblogs.microsoft.com/directx/&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
=== Operating systems ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Modern Operating Systems&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Andrew S. Tanenbaum &amp;amp; Herbert Bos (4th ed. 2015)&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Standard work&lt;br /&gt;
|}&lt;br /&gt;
=== AI ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Paradigms of Artificial Intelligence Programming&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Peter Norvig&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://github.com/norvig/paip-lisp&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Standard work, gotta love common lisp!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other good shit ==&lt;br /&gt;
* Blender Guru [https://youtu.be/TPrnSACiTJ4 beginner series]&lt;br /&gt;
&lt;br /&gt;
== ChiliWidsom ==&lt;br /&gt;
* &amp;quot;If you're building with warnings, you gotta re-evaluate your life choices&amp;quot; (I11hw)&lt;br /&gt;
* &amp;quot;Get your privates in order&amp;quot;&lt;br /&gt;
* &amp;quot;For those of you who live in weird places that don't have Orios, I feel sorry for you. They look like this, and they are fucking delicious with milk.&amp;quot; (B10)&lt;br /&gt;
* &amp;quot;Everything on a computer is a motherfucking number&amp;quot; (HUGS 11)&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_11&amp;diff=2093</id>
		<title>Beginner C++ Game Programming Tutorial 11</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_11&amp;diff=2093"/>
				<updated>2019-09-29T05:22:06Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;References are sweet because they let us control our shit from far away. Remember the days when we had to actually get up to change the channel on the TV? Remember TV? Fuck that shit! Also, const correctness is for big dick gangstas that don't give any fucks.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* References&lt;br /&gt;
* Passing by reference&lt;br /&gt;
* &amp;lt;code&amp;gt;[[const]]&amp;lt;/code&amp;gt; correctness (redux)&lt;br /&gt;
&lt;br /&gt;
== Const Correctness ==&lt;br /&gt;
The use of &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; as a means of communication by code and as method to prevent you and other people from shooting you (your code / themselves) in the dick is something that Chili finds cromulent. For some info on how &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; makes your code less shitty, check [https://isocpp.org/wiki/faq/const-correctness#const-and-type-safety this]. If you're still not sold (I happen to like being a human dumpster fire, thank you very much Chili), here is a video showing how using &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; can make your code a fuck of a lot faster: [https://www.youtube.com/watch?v=zBkNBP00wJE&amp;amp;feature=youtu.be&amp;amp;t=1455 cool beans].&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Drawing rect function [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=0m41s 0:41]&lt;br /&gt;
* Creating a Color object [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=4m32s 4:32]&lt;br /&gt;
* Controlling the rectangle with the mouse [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=6m46s 6:46]&lt;br /&gt;
* Extending DrawRect function to account for the &amp;quot;flip over&amp;quot; on the x and y, when x1 or y1 &amp;lt; x0 or y0 [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=8m23s 8:23]&lt;br /&gt;
* Test and swap x0,y0 and x1,y1 [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=10m19s 10:19]&lt;br /&gt;
* Shit don't work, references to the rescue! [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=10m19s 12:16]&lt;br /&gt;
* Making Test and swap work! [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=17m45s 17:45]&lt;br /&gt;
* Refactoring DrawRect [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=20m36s 20:36]&lt;br /&gt;
* Poo game: Moving poo drawing code from Game class into Poo class [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=21m35s 21:35]&lt;br /&gt;
* Process Consumption refactoring (args): passing Dude object by reference [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=25m48s 25:48]&lt;br /&gt;
* Const correctness: passing by const reference [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=28m25s 28:25]&lt;br /&gt;
* Const correctness: Making member functions const [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=30m40s 30:40] &lt;br /&gt;
* Recap [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=32m1s 32:01] &lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=VzXco2FqpT8&amp;amp;t=34m5s 34:05]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Move the drawing code for &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; from &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; into the &amp;lt;code&amp;gt;Dude&amp;lt;/code&amp;gt; class.&lt;br /&gt;
# Make a second &amp;lt;code&amp;gt;DrawRect&amp;lt;/code&amp;gt; function that takes a single point (top left corner) and the dimensions as parameters.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/MOhF8Z2jW0k this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Poo.zip Poo Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T11-Rect.zip Rect Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 12|Next in series (Tutorial 12)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_10&amp;diff=2018</id>
		<title>Beginner C++ Game Programming Tutorial 10</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_10&amp;diff=2018"/>
				<updated>2019-09-27T02:37:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this video we learn how to loop our shit. Fuckoff copy and paste. Die in a gasoline fire (just kidding, don't leave me baby!)&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop&lt;br /&gt;
* &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt; loop&lt;br /&gt;
* &amp;lt;code&amp;gt;do&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;while&amp;lt;/code&amp;gt; loop&lt;br /&gt;
* Preincrement &amp;lt;code&amp;gt;++x&amp;lt;/code&amp;gt; and postincrement &amp;lt;code&amp;gt;x++&amp;lt;/code&amp;gt; operators&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* The roadmap [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=0m20s 0:20]&lt;br /&gt;
* Loops: &amp;lt;code&amp;gt;while() {...}&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=1m39s 1:39]&lt;br /&gt;
* Loops: &amp;lt;code&amp;gt;for() {...}&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=8m20s 8:20]&lt;br /&gt;
* Increment/decrement unary operator [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=10m51s 10:51]&lt;br /&gt;
* Fun Chili fact for the day: the origins of the &amp;quot;C++&amp;quot; language name [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=11m51s 11:51]&lt;br /&gt;
* Loops: &amp;lt;code&amp;gt;do {...} while ()&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=12m36s 12:36]&lt;br /&gt;
* Loop differences, when to use &amp;lt;code&amp;gt;for(){}&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;while(){}&amp;lt;/code&amp;gt;, or &amp;lt;code&amp;gt;do{} while()&amp;lt;/code&amp;gt; (if you are kinda weird) [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=13m15s 13:15]&lt;br /&gt;
* Chili's Dank Meta Nugs [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=15m6s 15:06]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=rwJ0sOmBK6E&amp;amp;t=18m23s 18:23]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
# Write a routine to draw a rectangle on the screen.&lt;br /&gt;
# Make it so that you can control the position of the rectangle with the arrow keys and the size of the rectangle with the WASD keys. For info on querying keyboard input for alphanumeric keys, see the section &amp;quot;Virtual Key Codes&amp;quot; on [[Keyboard (Chili Framework)#Virtual_Key_Codes|this page]].&lt;br /&gt;
&lt;br /&gt;
The solution is given in a [https://youtu.be/lWTwNXfU-Nc this] video.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/Chili%20DirectX%20Framework.zip Framework Download]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 11|Next in series (Tutorial 11)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Tools_%26_Resources&amp;diff=2017</id>
		<title>Tools &amp; Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Tools_%26_Resources&amp;diff=2017"/>
				<updated>2019-09-27T01:43:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* ChiliWidsom */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Useful Tools &amp;amp; Resources (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== How to contribute ==&lt;br /&gt;
These are all links to external and publicly available sources, no guarantees / responsibility inferred.&lt;br /&gt;
If there are resources you like and would like to recommend, post them on the Discord and mention r_vdw.&lt;br /&gt;
&lt;br /&gt;
== Windows productivity apps ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|FrHed&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Versatile binary file / hex editor&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://sourceforge.net/projects/frhed/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|HxD&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Good freeware hex and disk editor&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://mh-nexus.de/en/hxd/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Slidytip&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|ShareX&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Screen capture / file sharing&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://getsharex.com/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Notepad++&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Source code editor and Notepad replacement&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://notepad-plus-plus.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Codeshare&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Handy tool to share code snippets&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://codeshare.io/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Self destructs in 24 hrs&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Gimp&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Cross-platform image editor (GNU/Linux,OS X,Windows,...&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.gimp.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|-&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Pyxel Edit&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Pixel art editor (make tilesets, levels,animations) by Daniel Kvarfordt &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://pyxeledit.com/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|AP tip&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Vim&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Source code editor, Notepad++ alternative &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.vim.org/download.php&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Will make you shit bricks real good&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Online compiling / testing / visualization ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Compiler Explorer&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Matt Godbolt&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://godbolt.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Analyze and compare the way C++ code compiles across different compilers&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Ideone&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Online compiler and debugger (~60 languages)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.ideone.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Wandbox&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Online compilation service&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://wandbox.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Data structure and algorithm visualization&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|USFCA / CS / David Galles&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.cs.usfca.edu/~galles/visualization/Algorithms.html&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|see it and you'll understand&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Active GitHub Forks&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|See who forked (&amp;amp;last committed) out of date GitHub libs/projects&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://techgaun.github.io/active-forks/index.html&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== C++ Libraries ==&lt;br /&gt;
=== Game tooling / engines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|SFML&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Simple and Fast Multimedia Library&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.sfml-dev.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Easy to use, good functionality. Chili grabs it in Intermediate 25 (I25)&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Eigen&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|C++ template library for linear algebra &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://eigen.tuxfamily.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|chilitip&lt;br /&gt;
|}&lt;br /&gt;
=== Productivity ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|fmtlib &lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|Open-source formatting library&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://fmt.dev/latest/index.html&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|fast/easy, Slidytip&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== AI/ML ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|DLib&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|C++ toolkit containing machine learning algorithms&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|http://dlib.net/&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
=== Categorized / aggregation sites ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|cppreference libraries&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|As suggested by cppreference users&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://en.cppreference.com/w/cpp/links/libs&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|boost C++ libraries&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|boost your shit&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.boost.org/doc/libs/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Reference sites ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|cppreference.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Most comprehensve reference site&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://en.cppreference.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Hardccore&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|cplusplus.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Good reference site&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.cplusplus.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Softcore&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Stack Overflow&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Good reference site&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://stackexchange.com/sites#&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Very active community&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|ISOcpp&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|The home of standard C++&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://isocpp.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|For those purists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Literature (books, blogs, papers, written shit)==&lt;br /&gt;
=== Programming Fundamentals ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#ddf;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Structure and Interpretation of Computer Programs&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Harold Abelson et al. (2nd ed. 1996), MIT Press&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://web.mit.edu/alexmv/6.037/sicp.pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Just a classic&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Clean Code&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Robert C. Martin (14th ed. 2015), Prentice Hall&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://ptgmedia.pearsoncmg.com/images/9780132350884/samplepages/9780132350884.pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Sample chapter, then just buy it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C++ Fundamentals ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|C++ Primer, 5th Edition&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Stanley B. Lippman et al&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|http://www.charleshouserjr.com/Cplus2.pdf&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Standard work, rewritten for C++11. Approachable for beginners&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|C++ Core Guidelines&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Bjarne Stroustrup, Herb Sutter&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|http://isocpp.github.io/CppCoreGuidelines&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Pure discipline, by the masters themselves&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Programming Abstractions in C++&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Eric S. Roberts (2012), Stanford CS106B&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Solid and well thought through intro to C++&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C++ Peculiarities ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Exploring std::string&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|Nice blog that looks under the hood&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://shaharmike.com/cpp/std-string/&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|a tip from Slidy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Game programming ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Game Programming Patterns&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Robert Nystrom&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://gameprogrammingpatterns.com &lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Contains lots of different coding patterns and describes them in detail&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Game Engine Architecture&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Jason Gregory (3rd ed. 2018)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.gameenginebook.com/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Talks about various components that make up a game engine and how they tie together&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3D Computer Graphics ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|The Book of Shaders&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Patricio Gonzalez Vivo and Jen Lowe&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://thebookofshaders.com (pdf can be generated)&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Tricks of the 3D Game Programming Gurus&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by André LaMothe, 2003&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|lagout&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Mathematics for 3D Game Programming and Computer Graphics&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Eric Lengyel (3rd ed.)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Need those math skills&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by James M. Van Verth, Lars M. Bishop (2nd ed.)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Math yo&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Vector Math for 3D Computer Graphics Tutorial&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Bradley Kjell&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://chortle.ccsu.edu/vectorlessons/vectorindex.html &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Demon liked it&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Computing Euler angles from a rotation matrix&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Gregory G. Slabaugh&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.gregslabaugh.net/publications/euler.pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Chilitip&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|D3D/OpenGL  tutorial: A trip through the Graphics Pipeline &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Fabian Giesen&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Learn OpenGL&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Joey de Vries &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://learnopengl.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Specific to OpenGL but well written and presented (Slidy)&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Real-time Rendering&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Tomas Akenine-Möller et al (4th ed. 2018)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.realtimerendering.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Good reference for learning about a wide variety of topics/techniques used in real-time rendering (Slidy)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DirectX ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|DirectX Developer  Blog&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by msft&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://devblogs.microsoft.com/directx/&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
=== Operating systems ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Modern Operating Systems&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Andrew S. Tanenbaum &amp;amp; Herbert Bos (4th ed. 2015)&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Standard work&lt;br /&gt;
|}&lt;br /&gt;
=== AI ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Paradigms of Artificial Intelligence Programming&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Peter Norvig&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://github.com/norvig/paip-lisp&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Standard work, gotta love common lisp!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other good shit ==&lt;br /&gt;
* Blender Guru [https://youtu.be/TPrnSACiTJ4 beginner series]&lt;br /&gt;
&lt;br /&gt;
== ChiliWidsom ==&lt;br /&gt;
* &amp;quot;If you're building with warnings, you gotta re-evaluate your life choices&amp;quot; (I11hw)&lt;br /&gt;
* &amp;quot;Get your privates in order&amp;quot;&lt;br /&gt;
* &amp;quot;For those of you who live in weird places that don't have Orios, I feel sorry for you. They look like this, and they are fucking delicious with milk.&amp;quot; (B10)&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_9&amp;diff=2016</id>
		<title>Beginner C++ Game Programming Tutorial 9</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_9&amp;diff=2016"/>
				<updated>2019-09-27T00:29:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this video we make our first class and Chili teaches us about the birds and the bees and the static constexpr.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Creating a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; vs. &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; access&lt;br /&gt;
* &amp;lt;code&amp;gt;static&amp;lt;/code&amp;gt; member variables&lt;br /&gt;
* &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; variables&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* ClampScreen code recap [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=0m18s 0:18]&lt;br /&gt;
* The issue of the current Game data organization: [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=1m38s 1:38]&lt;br /&gt;
* Classes: OOP to the rescue [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=1m38s 2:25]&lt;br /&gt;
* Creating our own class [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=3m21s 3:21]&lt;br /&gt;
* Header guard: &amp;lt;code&amp;gt;#pragma once&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=3m40s 3:40]&lt;br /&gt;
* Letting other files know about our class: including headers [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=5m52s 5:52]&lt;br /&gt;
* Refactoring game code related to poo [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=6m56s 6:56]&lt;br /&gt;
* A little trick: Advanced find + replace with regex enabled [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=7m8s 7:08]&lt;br /&gt;
* Adding an implementation file (.cpp) for Poo class [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=9m5s 9:05]&lt;br /&gt;
* Advantages of the new poo object oriented code [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=12m7s 12:07]&lt;br /&gt;
* Initializing poos' velocities [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=14m12s 14:12]&lt;br /&gt;
* Factoring out common attributes from class objects: &amp;lt;code&amp;gt;static&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=14m41s 14:41]&lt;br /&gt;
* Difference between &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=16m8s 16:08]&lt;br /&gt;
* Accessing static class members [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=16m40s 16:40]&lt;br /&gt;
* Class member access restrictions: &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; vs &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=17m20s 17:20]&lt;br /&gt;
* Summing up what we have learned and a couple of tips [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=19m12s 19:12]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=20m3s 20:03]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Make the Dude entity into a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; as well. It's up to you to decide what member functions you should give it. Might want to add another function to &amp;lt;code&amp;gt;Poo&amp;lt;/code&amp;gt; as well (hint hint hint!).&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/b4FjV2R9jy0 this video].&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T9-Starting-Code.zip T9 Starting Code]&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 9 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 9 Homework Solution Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 10|Next in series (Tutorial 10)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_9&amp;diff=2015</id>
		<title>Beginner C++ Game Programming Tutorial 9</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_9&amp;diff=2015"/>
				<updated>2019-09-27T00:24:21Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this video we make our first class and Chili teaches us about the birds and the bees and the static constexpr.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Creating a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; vs. &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; access&lt;br /&gt;
* &amp;lt;code&amp;gt;static&amp;lt;/code&amp;gt; member variables&lt;br /&gt;
* &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; variables&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* ClampScreen code recap [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=0m18s 0:18]&lt;br /&gt;
* The issue of the current Game data organization: [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=1m38s 1:38]&lt;br /&gt;
* Classes: OOP to the rescue [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=1m38s 2:25]&lt;br /&gt;
* Creating our own class [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=3m21s 3:21]&lt;br /&gt;
* Header guard: &amp;lt;code&amp;gt;#pragma once&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=3m40s 3:40]&lt;br /&gt;
* Letting other files know about our class: including headers [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=5m52s 5:52]&lt;br /&gt;
* Refactoring game code related to poo [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=6m56s 6:56]&lt;br /&gt;
* A little trick: Advanced find + replace with regex enabled [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=7m8s 7:08]&lt;br /&gt;
* Adding an implementation file (.cpp) for Poo class [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=9m5s 9:05]&lt;br /&gt;
* Advantages of the new poo object oriented code [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=12m7s 12:07]&lt;br /&gt;
* Initializing poos' velocities [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=14m12s 14:12]&lt;br /&gt;
* Factoring out common attributes from class objects: &amp;lt;code&amp;gt;static&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=14m41s 14:41]&lt;br /&gt;
* Difference between &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=16m8s 16:08]&lt;br /&gt;
* Accessing static class members [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=16m40s 16:40]&lt;br /&gt;
* Class member access restrictions: &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; vs &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=17m20s 17:20]&lt;br /&gt;
* Summing up what we have learned and a couple of tips [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=19m12s 19:12]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=20m3s 20:03]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Make the Dude entity into a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; as well. It's up to you to decide what member functions you should give it. Might want to add another function to &amp;lt;code&amp;gt;Poo&amp;lt;/code&amp;gt; as well (hint hint hint!).&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/b4FjV2R9jy0 this video].&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T9-Starting-Code.zip T9 Starting Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 10|Next in series (Tutorial 10)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_9&amp;diff=2014</id>
		<title>Beginner C++ Game Programming Tutorial 9</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_9&amp;diff=2014"/>
				<updated>2019-09-27T00:22:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this video we make our first class and Chili teaches us about the birds and the bees and the static constexpr.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Creating a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;public&amp;lt;/code&amp;gt; vs. &amp;lt;code&amp;gt;private&amp;lt;/code&amp;gt; access&lt;br /&gt;
* &amp;lt;code&amp;gt;static&amp;lt;/code&amp;gt; member variables&lt;br /&gt;
* &amp;lt;code&amp;gt;constexpr&amp;lt;/code&amp;gt; variables&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* ClampScreen code recap [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=0m18s 0:18]&lt;br /&gt;
* The issue of the current Game data organization: [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=1m38s 1:38]&lt;br /&gt;
* Classes: OOP to the rescue [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=1m38s 2:25]&lt;br /&gt;
* Creating our own class [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=3m21s 3:21]&lt;br /&gt;
* Header guard: #pragma once [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=3m40s 3:40]&lt;br /&gt;
* Letting other files know about our class: including headers [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=5m52s 5:52]&lt;br /&gt;
* Refactoring game code related to poo [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=6m56s 6:56]&lt;br /&gt;
* A little trick: Advanced find + replace with regex enabled [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=7m8s 7:08]&lt;br /&gt;
* Adding an implementation file (.cpp) for Poo class [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=9m5s 9:05]&lt;br /&gt;
* Advantages of the new poo object oriented code [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=12m7s 12:07]&lt;br /&gt;
* Initializing poos' velocities [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=14m12s 14:12]&lt;br /&gt;
* Factoring out common attributes from class objects: static and constexpr [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=14m41s 14:41]&lt;br /&gt;
* Difference between constexpr and const [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=16m8s 16:08]&lt;br /&gt;
* Accessing static class members [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=16m40s 16:40]&lt;br /&gt;
* Class member access restrictions: public vs private [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=17m20s 17:20]&lt;br /&gt;
* Summing up what we have learned and a couple of tips [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=19m12s 19:12]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=Wwgyw69MiEU&amp;amp;t=20m3s 20:03]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Make the Dude entity into a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt; as well. It's up to you to decide what member functions you should give it. Might want to add another function to &amp;lt;code&amp;gt;Poo&amp;lt;/code&amp;gt; as well (hint hint hint!).&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/b4FjV2R9jy0 this video].&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T9-Starting-Code.zip T9 Starting Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 10|Next in series (Tutorial 10)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_8&amp;diff=2013</id>
		<title>Beginner C++ Game Programming Tutorial 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_8&amp;diff=2013"/>
				<updated>2019-09-25T05:56:13Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We make our first game. So goddamn sweet. Not shitty at all.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* &amp;lt;code&amp;gt;+=&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-=&amp;lt;/code&amp;gt; operators&lt;br /&gt;
* Writing code in a constructor&lt;br /&gt;
* &amp;lt;code&amp;gt;#include &amp;lt;header&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using &amp;lt;code&amp;gt;std::mt19973&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;std::uniform_int_distribution&amp;lt;int&amp;gt;&amp;lt;/code&amp;gt; to generate random numbers&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Basic game plan [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=0m30s 0:30]&lt;br /&gt;
* Setting up member variables for entities: dude and poo [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=0m50s 0:50]&lt;br /&gt;
* Dude and poo graphics [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=2m20s 2:20]&lt;br /&gt;
* Creating Draw functions for Dude and Poo [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=4m8s 4:08]&lt;br /&gt;
* Quick note on sprite coordinate origins [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=5m20s 5:20]&lt;br /&gt;
* Screen clamping functions [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=6m20s 6:20]&lt;br /&gt;
* Movement code for Dude [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=8m9s 8:09]&lt;br /&gt;
* Collision test code [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=9m3s 9:03]&lt;br /&gt;
* Win condition and Gameover screen [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=11m54s 11:54]&lt;br /&gt;
* Title Screen [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=13m20s 13:20]&lt;br /&gt;
* Randomizing poo positions [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=15m7s 15:07]&lt;br /&gt;
* A little bit on constructors [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=16m11s 16:11]&lt;br /&gt;
* Creating random number generator object [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=16m50s 16:50]&lt;br /&gt;
* Specifying a range for random numbers [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=18m23s 18:23]&lt;br /&gt;
* Random device: The importance of a seed [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=20m55s 20:55]&lt;br /&gt;
* Why we don't use random device as a random number generator [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=22m9s 22:09]&lt;br /&gt;
* Summing up what we have learned [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=23m4s 23:04]&lt;br /&gt;
* An important message from the power rangers [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=23m50s 23:50]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=7yqV2hyv9Cc&amp;amp;t=26m33s 26:33]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Make the poos move around the screen and rebound when they hit the edges.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/KIw8MX7HfqU this video].&lt;br /&gt;
&lt;br /&gt;
== Image to PutPixel Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/forum/viewtopic.php?f=3&amp;amp;t=925#p1011 fukbmp] - a barebones tool by Chili&lt;br /&gt;
* [http://www.planetchili.net/forum/viewtopic.php?f=3&amp;amp;t=991 Custom Sprites 1.5] - a nicer tool by LuX&lt;br /&gt;
* [http://forum.planetchili.net/viewtopic.php?f=3&amp;amp;t=3612 Tristan's PutPixel Puker] - another sexy tool by Tristan&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/Chili%20DirectX%20Framework.zip Framework Download]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T8-Goodies.zip PutPixel Sprites]&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 8 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 8 Homework Solution Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 9|Next in series (Tutorial 9)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_8&amp;diff=2012</id>
		<title>Beginner C++ Game Programming Tutorial 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_8&amp;diff=2012"/>
				<updated>2019-09-25T05:55:48Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We make our first game. So goddamn sweet. Not shitty at all.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* &amp;lt;code&amp;gt;+=&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-=&amp;lt;/code&amp;gt; operators&lt;br /&gt;
* Writing code in a constructor&lt;br /&gt;
* &amp;lt;code&amp;gt;#include &amp;lt;header&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using &amp;lt;code&amp;gt;std::mt19973&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;std::uniform_int_distribution&amp;lt;int&amp;gt;&amp;lt;/code&amp;gt; to generate random numbers&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
Coming soon!&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Make the poos move around the screen and rebound when they hit the edges.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/KIw8MX7HfqU this video].&lt;br /&gt;
&lt;br /&gt;
== Image to PutPixel Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/forum/viewtopic.php?f=3&amp;amp;t=925#p1011 fukbmp] - a barebones tool by Chili&lt;br /&gt;
* [http://www.planetchili.net/forum/viewtopic.php?f=3&amp;amp;t=991 Custom Sprites 1.5] - a nicer tool by LuX&lt;br /&gt;
* [http://forum.planetchili.net/viewtopic.php?f=3&amp;amp;t=3612 Tristan's PutPixel Puker] - another sexy tool by Tristan&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/Chili%20DirectX%20Framework.zip Framework Download]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T8-Goodies.zip PutPixel Sprites]&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 8 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 8 Homework Solution Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 9|Next in series (Tutorial 9)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_8&amp;diff=2011</id>
		<title>Beginner C++ Game Programming Tutorial 8</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_8&amp;diff=2011"/>
				<updated>2019-09-25T05:55:28Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Downloads */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We make our first game. So goddamn sweet. Not shitty at all.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* &amp;lt;code&amp;gt;+=&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;-=&amp;lt;/code&amp;gt; operators&lt;br /&gt;
* Writing code in a constructor&lt;br /&gt;
* &amp;lt;code&amp;gt;#include &amp;lt;header&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Using &amp;lt;code&amp;gt;std::mt19973&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;std::uniform_int_distribution&amp;lt;int&amp;gt;&amp;lt;/code&amp;gt; to generate random numbers&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
Coming soon!&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Make the poos move around the screen and rebound when they hit the edges.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/KIw8MX7HfqU this video].&lt;br /&gt;
&lt;br /&gt;
== Image to PutPixel Tools ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/forum/viewtopic.php?f=3&amp;amp;t=925#p1011 fukbmp] - a barebones tool by Chili&lt;br /&gt;
* [http://www.planetchili.net/forum/viewtopic.php?f=3&amp;amp;t=991 Custom Sprites 1.5] - a nicer tool by LuX&lt;br /&gt;
* [http://forum.planetchili.net/viewtopic.php?f=3&amp;amp;t=3612 Tristan's PutPixel Puker] - another sexy tool by Tristan&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/Chili%20DirectX%20Framework.zip Framework Download]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T8-Goodies.zip PutPixel Sprites]&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 3 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 3 Homework Solution Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [https://www.patreon.com/planetchili Planet Chili Patreon]&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 9|Next in series (Tutorial 9)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_7&amp;diff=2010</id>
		<title>Beginner C++ Game Programming Tutorial 7</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_7&amp;diff=2010"/>
				<updated>2019-09-23T23:10:31Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mr. DeBugger is a real sir.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Using the Visual Studio debugger&lt;br /&gt;
&lt;br /&gt;
== Chili's Dank Meta Nugs ==&lt;br /&gt;
* Don't binge watch the tutorials--space that shit out&lt;br /&gt;
* Practice and experiment with C++ on your own initiative&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Introducing the Debugger [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=0m31s 0:31]&lt;br /&gt;
* Setting up the debugger [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=1m41s 1:41]&lt;br /&gt;
* Running in debug mode [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=2m25s 2:25]&lt;br /&gt;
* The call stack [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=2m45s 2:45]&lt;br /&gt;
* Finding debug windows [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=3m17s 3:17]&lt;br /&gt;
* Release vs Debug mode: assertions [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=3m50s 3:50]&lt;br /&gt;
* Autos [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=4m56s 4:56]&lt;br /&gt;
* Debugging second solution: setting your own breakpoints, stepping over and stepping into [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=6m38s 6:38]&lt;br /&gt;
* Locals [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=9m30s 9:30]&lt;br /&gt;
* Step out [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=10m39s 10:39]&lt;br /&gt;
* Continue [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=11m33s 11:33]&lt;br /&gt;
* Advice from Chili [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=12m10s 12:10]&lt;br /&gt;
* Chili's Dank Meta Nugs [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=12m45s 12:45]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=h2l2D0ud7DY&amp;amp;t=16m35s 16:35]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
There are three problems to solve in three separate solutions. The solutions are all based on the code used in the tutorial video (the code from the Tutorial 6 homework) Download the zip of the solutions below in the Downloads section.&lt;br /&gt;
# Assertion fails! Find the bug! Also, there's another bug hiding if you solve the first one. Try making the boxes collide and see what happens (or what doesn't happen...). Note that I don't talk about this second bug in the solution video. Check out the Solution Errata below for the answer.&lt;br /&gt;
# Assertion fails! Find the bug!&lt;br /&gt;
# Moving the cursor to the bottom of the screen is bad news bears...&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://www.youtube.com/watch?v=reTJUqZspYs this video].&lt;br /&gt;
&lt;br /&gt;
=== Solution Errata ===&lt;br /&gt;
Read the below (click Expand) only after attempting the problem yourself.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:700px&amp;quot;&amp;gt;&lt;br /&gt;
In the solution video, we see that the bug in the second homework problem is actually the same bug as in the tutorial video. The reason for this is that Chili fucked up and put the bug he intended to go in the second problem into the first problem. So the first problem has two bugs, and the second problem only has the bug from the tutorial.&lt;br /&gt;
&lt;br /&gt;
Now the bug in the second problem is something that Chili has mentioned before. It is a mix-up between the &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt; operators. Specifically, it is as follows (error on line 64 of Game.cpp):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot; line start=&amp;quot;64&amp;quot;&amp;gt;&lt;br /&gt;
	colliding == &lt;br /&gt;
		OverlapTest( x_fixed0,y_fixed0,x_mobile,y_mobile ) ||&lt;br /&gt;
		OverlapTest( x_fixed1,y_fixed1,x_mobile,y_mobile ) ||&lt;br /&gt;
		OverlapTest( x_fixed2,y_fixed2,x_mobile,y_mobile ) ||&lt;br /&gt;
		OverlapTest( x_fixed3,y_fixed3,x_mobile,y_mobile );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.planetchili.net/downloads/T7-TutCode.zip Tutorial Code]&lt;br /&gt;
* [http://www.planetchili.net/downloads/T7-Homework.zip Homework Code]&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 8|Next in series (Tutorial 8)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=1949</id>
		<title>Beginner C++ Game Programming Tutorial 6</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=1949"/>
				<updated>2019-09-22T15:32:50Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to make member functions. That is all.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Declaring and defining member functions&lt;br /&gt;
* Function return values&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Current code recap [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=0m26s 0:26]&lt;br /&gt;
* Making our first function (very emotional moment) [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=1m18s 1:18]&lt;br /&gt;
* Refactoring, making our function more versatile, function parameters [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=4m46s 4:46]&lt;br /&gt;
* Revisiting collision test code because of all the touching [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=8m21s 8:21]&lt;br /&gt;
* More refactoring, collision function [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=9m20s 9:20]&lt;br /&gt;
* More boxes [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=14m17s 14:17]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=16m57s 16:57]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
There are two levels of difficulty.&lt;br /&gt;
# Create a function(s) to limit the targeting box to within the screen drawing region.&lt;br /&gt;
# Same as above, but you are not allowed to use the &amp;lt;code&amp;gt;x_mobile&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;y_mobile&amp;lt;/code&amp;gt; member variables directly in the bodies of the functions.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/_mBq68B7_08 this video].&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 6 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 6 Homework Solution Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 7|Next in series (Tutorial 7)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=1948</id>
		<title>Beginner C++ Game Programming Tutorial 6</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=1948"/>
				<updated>2019-09-22T15:30:19Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to make member functions. That is all.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Declaring and defining member functions&lt;br /&gt;
* Function return values&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Current code recap [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=0m26s 0:26]&lt;br /&gt;
* Making our first function (very emotional moment) [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=1m18s 1:18]&lt;br /&gt;
* Refactoring, making our function more versatile, function parameters [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=4m46s 4:46]&lt;br /&gt;
* Revisiting collision test code because of all the touching [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=8m21s 8:21]&lt;br /&gt;
* More refactoring, collision function [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=9m20s 9:20]&lt;br /&gt;
* More boxes [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=14m17s 14:17]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=16m57s 16:57]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
There are two levels of difficulty.&lt;br /&gt;
# Create a function(s) to limit the targeting box to within the screen drawing region.&lt;br /&gt;
# Same as above, but you are not allowed to use the &amp;lt;code&amp;gt;x_mobile&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;y_mobile&amp;lt;/code&amp;gt; member variables directly in the bodies of the functions.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/_mBq68B7_08 this video].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 7|Next in series (Tutorial 7)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=1947</id>
		<title>Beginner C++ Game Programming Tutorial 6</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=1947"/>
				<updated>2019-09-22T15:29:24Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: Undo revision 1946 by Ap (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How to make member functions. That is all.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Declaring and defining member functions&lt;br /&gt;
* Function return values&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
Coming soon!&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
There are two levels of difficulty.&lt;br /&gt;
# Create a function(s) to limit the targeting box to within the screen drawing region.&lt;br /&gt;
# Same as above, but you are not allowed to use the &amp;lt;code&amp;gt;x_mobile&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;y_mobile&amp;lt;/code&amp;gt; member variables directly in the bodies of the functions.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/_mBq68B7_08 this video].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 7|Next in series (Tutorial 7)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=1946</id>
		<title>Beginner C++ Game Programming Tutorial 6</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_6&amp;diff=1946"/>
				<updated>2019-09-22T15:25:33Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* Current code recap [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=0m26s 0:26]&lt;br /&gt;
* Making our first function (very emotional moment) [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=1m18s 1:18]&lt;br /&gt;
* Refactoring, making our function more versatile, function parameters [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=4m46s 4:46]&lt;br /&gt;
* Revisiting collision test code because of all the touching [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=8m21s 8:21]&lt;br /&gt;
* More refactoring, collision function [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=9m20s 9:20]&lt;br /&gt;
* More boxes [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=14m17s 14:17]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=kJUjegbqFag&amp;amp;t=16m57s 16:57]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_3&amp;diff=1945</id>
		<title>Beginner C++ Game Programming Tutorial 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_3&amp;diff=1945"/>
				<updated>2019-09-22T14:39:13Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We learn how to control the flow of execution using [[If Statement|&amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements]], we learn about a new [[variable]] type called [[variable#bool|&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;]], and we learn how to use the [[Chili Framework]] to get [[Keyboard (Chili Framework)|keyboard]] input. All this, plus the dankest memes from 2007.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* [[If_Statement|&amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statement]]&lt;br /&gt;
* [[variable#bool|&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;]] variable type&lt;br /&gt;
* Using return values from function calls&lt;br /&gt;
* [[Keyboard (Chili Framework)|&amp;lt;code&amp;gt;Keyboard&amp;lt;/code&amp;gt;]] (Chili Framework-specific concept)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/xWLcp_yOpww 0:00]&lt;br /&gt;
* Homework solution [https://youtu.be/xWLcp_yOpww?t=0m29s 0:29]&lt;br /&gt;
* Sprite origin (base position) [https://youtu.be/xWLcp_yOpww?t=1m30s 1:30]&lt;br /&gt;
* Order of statement execution [https://youtu.be/xWLcp_yOpww?t=5m10s 5:10]&lt;br /&gt;
* Branching (conditional flow control) [https://youtu.be/xWLcp_yOpww?t=6m40s 6:40]&lt;br /&gt;
* &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statement / &amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt; type [https://youtu.be/xWLcp_yOpww?t=7m52s 7:52]&lt;br /&gt;
* Keyboard input / objects inside other objects [https://youtu.be/xWLcp_yOpww?t=12m06s 12:06]&lt;br /&gt;
* Function return values [https://youtu.be/xWLcp_yOpww?t=15m55s 15:55]&lt;br /&gt;
* Virtual key codes [https://youtu.be/xWLcp_yOpww?t=17m27s 17:27]&lt;br /&gt;
* &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; statement [https://youtu.be/xWLcp_yOpww?t=19m33s 19:33]&lt;br /&gt;
* &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else if&amp;lt;/code&amp;gt; chaining [https://youtu.be/xWLcp_yOpww?t=20m35s 20:35]&lt;br /&gt;
* Nesting &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements [https://youtu.be/xWLcp_yOpww?t=22m05s 22:05]&lt;br /&gt;
* Homework assignment [https://youtu.be/xWLcp_yOpww?t=23m48s 23:48]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Using the concepts taught so far, create a program that allows you to position the reticle in one of 9 positions (regular 3x3 grid) by holding the arrow keys, change its color by holding the control key, and change its shape by holding the shift key. The solution is given in [https://youtu.be/lTSaoRYo430 this video].&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 3 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 3 Homework Solution Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 4|Next in series (Tutorial 4)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_2&amp;diff=1944</id>
		<title>Beginner C++ Game Programming Tutorial 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_2&amp;diff=1944"/>
				<updated>2019-09-22T14:38:59Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial is all about making sweet ass boxes ([[variable|variables]]) to jam your hot numbers into and using [[operator|operators]] (addition and subtraction) to add and subtract shit.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Commenting (adding comments to) code / commenting out lines of code&lt;br /&gt;
* [[variable|Variables]] (specifically &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;)&lt;br /&gt;
* [[operator|Operators]] (specifically addition &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; and subtraction &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/qqlUztlgNA4 0:00]&lt;br /&gt;
* Homework Solution / Translation Transformation VapeNation [https://youtu.be/qqlUztlgNA4?t=0m20s 0:20]&lt;br /&gt;
* Comments (of the non-YouTube variety) [https://youtu.be/qqlUztlgNA4?t=2m36s 2:36]&lt;br /&gt;
* Variables (specifically &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;) [https://youtu.be/qqlUztlgNA4?t=4m24s 4:24]&lt;br /&gt;
* [[variable#The const Specifier|&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;]]-ipation and &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;-correctness [https://youtu.be/qqlUztlgNA4?t=9m22s 9:22]&lt;br /&gt;
* Rules for naming variables [https://youtu.be/qqlUztlgNA4?t=10m13s 10:13]&lt;br /&gt;
* Operators (addition &amp;amp; subtraction) [https://youtu.be/qqlUztlgNA4?t=13m55s 13:55]&lt;br /&gt;
* Homework assignment [https://youtu.be/qqlUztlgNA4?t=17m05s 17:05]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
The homework for this lesson is to modify the reticle drawing code so that you can change the position of the reticle by only changing two numbers (literal constants) in the code. Make sure you uncomment the lines that were commented, or you'll get a pretty shitty excuse for a reticle. The solution will be given in the beginning of the next tutorial.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 2 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 2 Homework Solution Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 3|Next in series (Tutorial 3)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_1&amp;diff=1943</id>
		<title>Beginner C++ Game Programming Tutorial 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_1&amp;diff=1943"/>
				<updated>2019-09-22T14:38:38Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial mainly deals with how to call a [[function]] in C++ and basic syntax rules. We also talk about pixels, intellisense and other dumb bullshit.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
This is not the first tutorial in the series (programmers start counting from 0 ;)). Get the first tutorial here: [[Beginner C++ Game Programming Tutorial 0]]&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Function calls&lt;br /&gt;
* Basic C++ syntax&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/6VMq_2lH-Qo 0:00]&lt;br /&gt;
* Pixels and coordinates [https://youtu.be/6VMq_2lH-Qo?t=0m24s 0:24]&lt;br /&gt;
* &amp;lt;code&amp;gt;PutPixel()&amp;lt;/code&amp;gt; parameter meanings [https://youtu.be/6VMq_2lH-Qo?t=2m11s 2:11]&lt;br /&gt;
* Drawing outside of the screen and escaping debugger limbo [https://youtu.be/6VMq_2lH-Qo?t=4m00s 4:00]&lt;br /&gt;
* Function call concept and syntax [https://youtu.be/6VMq_2lH-Qo?t=6m16s 6:16]&lt;br /&gt;
* Intellisense and Autocompletion [https://youtu.be/6VMq_2lH-Qo?t=9m10s 9:10]&lt;br /&gt;
* Fixing syntax errors [https://youtu.be/6VMq_2lH-Qo?t=11m37s 11:37]&lt;br /&gt;
* C++ doesn't care about whitespace [https://youtu.be/6VMq_2lH-Qo?t=14m34s 14:34]&lt;br /&gt;
* Visualizing pixel image from code challenge [https://youtu.be/6VMq_2lH-Qo?t=15m56s 15:56]&lt;br /&gt;
* Changing image position challenge (homework) [https://youtu.be/6VMq_2lH-Qo?t=16:37m24s 16:37]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
The homework for this lesson is to modify the code to move the pixel image to the bottom right corner of the screen. The solution will be given at the beginning of the next tutorial.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 1 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 1 Homework Solution Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 2|Next in series (Tutorial 2)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=1942</id>
		<title>Beginner C++ Game Programming Tutorial 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=1942"/>
				<updated>2019-09-22T14:38:01Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Download Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comparison and Boolean logic operators. Operators galore! Make &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements great again! Let the &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; dick measuring contests begin! Also, collision detection between rectangles, which is useful for stuff.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Comparison operators (&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Boolean operators (&amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Using parentheses to change order of evaluation (effectively changing what an operator works on)&lt;br /&gt;
* Collision (overlap) detection of rectangular regions (in the homework)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* A few remarks on drawing pixels outside window bounds [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=1m19s 1:19]&lt;br /&gt;
* Debug configuration, assertion failures [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=2m4s 2:04]&lt;br /&gt;
* Comparison operators [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=3m11s 3:11]&lt;br /&gt;
* Logical operators [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=12m41s 12:41]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=19m0s 19:00]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Draw two targeting boxes, one controlled with the arrow keys and one stationary, and have the color of the mobile targeting box change whenever the targeting boxes overlap.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/Uxca1CD5ifk this video].&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 5 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 5 Homework Solution Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 6|Next in series (Tutorial 6)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=1941</id>
		<title>Beginner C++ Game Programming Tutorial 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=1941"/>
				<updated>2019-09-22T14:37:29Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comparison and Boolean logic operators. Operators galore! Make &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements great again! Let the &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; dick measuring contests begin! Also, collision detection between rectangles, which is useful for stuff.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Comparison operators (&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Boolean operators (&amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Using parentheses to change order of evaluation (effectively changing what an operator works on)&lt;br /&gt;
* Collision (overlap) detection of rectangular regions (in the homework)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* A few remarks on drawing pixels outside window bounds [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=1m19s 1:19]&lt;br /&gt;
* Debug configuration, assertion failures [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=2m4s 2:04]&lt;br /&gt;
* Comparison operators [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=3m11s 3:11]&lt;br /&gt;
* Logical operators [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=12m41s 12:41]&lt;br /&gt;
* Homework [https://www.youtube.com/watch?v=UREKHWvg9ko&amp;amp;t=19m0s 19:00]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Draw two targeting boxes, one controlled with the arrow keys and one stationary, and have the color of the mobile targeting box change whenever the targeting boxes overlap.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/Uxca1CD5ifk this video].&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 5 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 5 Homework Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 6|Next in series (Tutorial 6)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=1940</id>
		<title>Beginner C++ Game Programming Tutorial 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=1940"/>
				<updated>2019-09-22T14:17:30Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comparison and Boolean logic operators. Operators galore! Make &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements great again! Let the &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; dick measuring contests begin! Also, collision detection between rectangles, which is useful for stuff.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Comparison operators (&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Boolean operators (&amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Using parentheses to change order of evaluation (effectively changing what an operator works on)&lt;br /&gt;
* Collision (overlap) detection of rectangular regions (in the homework)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/UREKHWvg9ko&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* A few remarks on drawing pixels outside window bounds [https://youtu.be/UREKHWvg9ko&amp;amp;t=1m19s 1:19]&lt;br /&gt;
* Debug configuration, assertion failures [https://youtu.be/UREKHWvg9ko&amp;amp;t=2m4s 2:04]&lt;br /&gt;
* Comparison operators [https://youtu.be/UREKHWvg9ko&amp;amp;t=3m11s 3:11]&lt;br /&gt;
* Logical operators [https://youtu.be/UREKHWvg9ko&amp;amp;t=12m41s 12:41]&lt;br /&gt;
* Homework [https://youtu.be/UREKHWvg9ko&amp;amp;t=19m0s 19:00]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Draw two targeting boxes, one controlled with the arrow keys and one stationary, and have the color of the mobile targeting box change whenever the targeting boxes overlap.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/Uxca1CD5ifk this video].&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 5 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 5 Homework Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 6|Next in series (Tutorial 6)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=1939</id>
		<title>Beginner C++ Game Programming Tutorial 5</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_5&amp;diff=1939"/>
				<updated>2019-09-22T13:44:45Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Timestamp Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comparison and Boolean logic operators. Operators galore! Make &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements great again! Let the &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt; dick measuring contests begin! Also, collision detection between rectangles, which is useful for stuff.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Comparison operators (&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;==&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;gt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;&amp;lt;=&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!=&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Boolean operators (&amp;lt;code&amp;gt;&amp;amp;&amp;amp;&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;||&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Using parentheses to change order of evaluation (effectively changing what an operator works on)&lt;br /&gt;
* Collision (overlap) detection of rectangular regions (in the homework)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/UREKHWvg9ko&amp;amp;t=0m0s 0:00]&lt;br /&gt;
* A few remarks on drawing pixels outside window bounds [https://youtu.be/UREKHWvg9ko&amp;amp;t=1m19s 1:19]&lt;br /&gt;
* Debug configuration, assertion failures [https://youtu.be/UREKHWvg9ko&amp;amp;t=2m4s 2:04]&lt;br /&gt;
* Comparison operators [https://youtu.be/UREKHWvg9ko&amp;amp;t=3m11s 3:11]&lt;br /&gt;
* Logical operators [https://youtu.be/UREKHWvg9ko&amp;amp;t=12m41s 12:41]&lt;br /&gt;
* Homework [https://youtu.be/UREKHWvg9ko&amp;amp;t=19m0s 19:00]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Draw two targeting boxes, one controlled with the arrow keys and one stationary, and have the color of the mobile targeting box change whenever the targeting boxes overlap.&lt;br /&gt;
&lt;br /&gt;
The solution is given in [https://youtu.be/Uxca1CD5ifk this video].&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 6|Next in series (Tutorial 6)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_4&amp;diff=1938</id>
		<title>Beginner C++ Game Programming Tutorial 4</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_4&amp;diff=1938"/>
				<updated>2019-09-22T10:22:49Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this tutorial we explore the idea of animation in computer graphics and we make the reticle move freely around the screen. Along the way we learn about classes and objects, how to add member variables to objects/&amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;es, about .h (header) and .cpp (source) files, and about the short harsh lives of local variables (scope).&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Animation and the game loop&lt;br /&gt;
* Variable scope&lt;br /&gt;
* The concept of objects&lt;br /&gt;
* Classes and their relation to objects&lt;br /&gt;
* Data members (member variables) and member functions&lt;br /&gt;
* Difference between .h and .cpp files&lt;br /&gt;
* Adding data members to a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Separating logic and drawing code&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* [https://www.youtube.com/watch?v=HYiPoRk5ngY Part 1]&lt;br /&gt;
** Intro [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=0m0s 0:00]&lt;br /&gt;
** Keyboard ghosting: Keypress combination limits [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=1m47s 1:47]&lt;br /&gt;
** The problem of reticle movement from Tutorial 3 [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=2m21s 2:21]&lt;br /&gt;
** The game loop [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=4m29s 4:29]&lt;br /&gt;
** Stepping through the game loop using the debugger [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=7m21s 7:21]&lt;br /&gt;
** Scope of a variable: A problem of persisting reticle position across loop cycles [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=12m10s 12:10]&lt;br /&gt;
** Nested scopes and variables of the same name [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=15m12s 15:12]&lt;br /&gt;
* [https://www.youtube.com/watch?v=ry_zHxnPn8A Part 2]&lt;br /&gt;
** Intro [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=0m0s 0:00]&lt;br /&gt;
** Objects [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=0m24s 0:24]&lt;br /&gt;
** Classes [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=2m05s 2:05]&lt;br /&gt;
** How classes define objects: data members and member functions [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=5m19s 5:19]&lt;br /&gt;
** Header files (.h) and source files (.cpp) [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=8m59s 8:59]&lt;br /&gt;
** Persisting reticle position across loop cycles: The solution [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=11m44s 11:44]&lt;br /&gt;
** Quick note: Drawing pixels outside the window bounds [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=16m25s 16:25]&lt;br /&gt;
* [https://www.youtube.com/watch?v=zG-v7-1FN-U Part 3]&lt;br /&gt;
** Intro [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=0m0s 0:00]&lt;br /&gt;
** Old homework tasks [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=1m11s 1:11]&lt;br /&gt;
** Separate drawing code from game logic [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=2m13s 2:13]&lt;br /&gt;
** Control reticle velocity instead of movement [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=9m31s 9:31]&lt;br /&gt;
** Prevent reticle from ballin' outta control [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=12m18s 12:18]&lt;br /&gt;
** Summing up Tutorial 4 [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=17m5s 17:05]&lt;br /&gt;
&lt;br /&gt;
== Bonus Advice Video ==&lt;br /&gt;
The bonus video mentioned at the end of Part 3 with advice for beginners hasn't been made yet. Wait first eh! It will be made in due time, and when it is you will get a notification if you put good old Chili in your notification list for YouTube. I'll put the link here as well when the video gets made and uploaded. Until then, don't take any wooden nickels or whatever.&lt;br /&gt;
&lt;br /&gt;
== Homework Questions ==&lt;br /&gt;
This lesson's homework is to answer the following questions. When you think you have the answer, click &amp;quot;expand&amp;quot; to reveal the correct answer.&lt;br /&gt;
&lt;br /&gt;
1. What symbols are a common indicator of the scope of a local variable?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: The curly braces &amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
2. What are the two types of members that define a class?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: Data members and member functions.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3. What is the relationship between classes and objects.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: Classes are like a template or a blueprint that specifies the shape of an object. Objects are data structures in memory that are created, shaped, and which behave based on how they are specified in their class. We say that an object is an ''instance'' of a class.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
4. How do we achieve the movement of the reticle.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: We achieve movement of the reticle by making the variables &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; member variables of &amp;lt;code&amp;gt;class Game&amp;lt;/code&amp;gt;. In doing so, we no longer lose the values of these variables from frame to frame (when they are local variables, they are destroyed after exiting the &amp;lt;code&amp;gt;ComposeFrame()&amp;lt;/code&amp;gt; function, i.e. after each frame).&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
5. How are the members &amp;lt;code&amp;gt;gfx&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wnd&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;class Game&amp;lt;/code&amp;gt; different?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: &amp;lt;code&amp;gt;Game::gfx&amp;lt;/code&amp;gt; is an object which is embedded directly into objects of the &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; class, whereas &amp;lt;code&amp;gt;Game::wnd&amp;lt;/code&amp;gt; is a reference to a &amp;lt;code&amp;gt;MainWindow&amp;lt;/code&amp;gt; object that exists outside of and is independent of the &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; object.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
* In Part 1 at 6:00 there is a mistake in the diagram where Chili shows the concept of animation from one frame to the next. The &amp;quot;frame 2&amp;quot;: &amp;quot;draw 2nd object&amp;quot; (blue triangle) should have the blue triangle drawn to the right as it is shown in &amp;quot;draw 3rd object&amp;quot;.&lt;br /&gt;
* In Part 3 when we make the &amp;lt;code&amp;gt;gb&amp;lt;/code&amp;gt; variable a member variable, it will maintain its value from frame to frame. So if we don't reset it every frame, then the first time we press CTRL and set it to 255, it will forever after be stuck at 255, which is probably not desired behavior. ;)&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* If you get a crash when the reticle goes off the screen when Chili can make his reticle wrap from right to left, make sure your build configuration is set to &amp;lt;code&amp;gt;Release&amp;lt;/code&amp;gt; and not &amp;lt;code&amp;gt;Debug&amp;lt;/code&amp;gt;.&lt;br /&gt;
* This is version 2 of this tutorial. Version 1 was released back in August 2016, but it caused a lot of people to lose their shit and give up on the awesomeness that is C++, so Chili remade it. It's now over twice as long, and jam packed full of juicy knowledge, with a liberal smattering of memes as well.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 4.2 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 4.3 Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 5|Next in series (Tutorial 5)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_3&amp;diff=1937</id>
		<title>Beginner C++ Game Programming Tutorial 3</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_3&amp;diff=1937"/>
				<updated>2019-09-22T10:21:28Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We learn how to control the flow of execution using [[If Statement|&amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements]], we learn about a new [[variable]] type called [[variable#bool|&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;]], and we learn how to use the [[Chili Framework]] to get [[Keyboard (Chili Framework)|keyboard]] input. All this, plus the dankest memes from 2007.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* [[If_Statement|&amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statement]]&lt;br /&gt;
* [[variable#bool|&amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt;]] variable type&lt;br /&gt;
* Using return values from function calls&lt;br /&gt;
* [[Keyboard (Chili Framework)|&amp;lt;code&amp;gt;Keyboard&amp;lt;/code&amp;gt;]] (Chili Framework-specific concept)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/xWLcp_yOpww 0:00]&lt;br /&gt;
* Homework solution [https://youtu.be/xWLcp_yOpww?t=0m29s 0:29]&lt;br /&gt;
* Sprite origin (base position) [https://youtu.be/xWLcp_yOpww?t=1m30s 1:30]&lt;br /&gt;
* Order of statement execution [https://youtu.be/xWLcp_yOpww?t=5m10s 5:10]&lt;br /&gt;
* Branching (conditional flow control) [https://youtu.be/xWLcp_yOpww?t=6m40s 6:40]&lt;br /&gt;
* &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statement / &amp;lt;code&amp;gt;bool&amp;lt;/code&amp;gt; type [https://youtu.be/xWLcp_yOpww?t=7m52s 7:52]&lt;br /&gt;
* Keyboard input / objects inside other objects [https://youtu.be/xWLcp_yOpww?t=12m06s 12:06]&lt;br /&gt;
* Function return values [https://youtu.be/xWLcp_yOpww?t=15m55s 15:55]&lt;br /&gt;
* Virtual key codes [https://youtu.be/xWLcp_yOpww?t=17m27s 17:27]&lt;br /&gt;
* &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else&amp;lt;/code&amp;gt; statement [https://youtu.be/xWLcp_yOpww?t=19m33s 19:33]&lt;br /&gt;
* &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; ... &amp;lt;code&amp;gt;else if&amp;lt;/code&amp;gt; chaining [https://youtu.be/xWLcp_yOpww?t=20m35s 20:35]&lt;br /&gt;
* Nesting &amp;lt;code&amp;gt;if&amp;lt;/code&amp;gt; statements [https://youtu.be/xWLcp_yOpww?t=22m05s 22:05]&lt;br /&gt;
* Homework assignment [https://youtu.be/xWLcp_yOpww?t=23m48s 23:48]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
Using the concepts taught so far, create a program that allows you to position the reticle in one of 9 positions (regular 3x3 grid) by holding the arrow keys, change its color by holding the control key, and change its shape by holding the shift key. The solution is given in [https://youtu.be/lTSaoRYo430 this video].&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 3 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 3 Homework Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 4|Next in series (Tutorial 4)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_2&amp;diff=1936</id>
		<title>Beginner C++ Game Programming Tutorial 2</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_2&amp;diff=1936"/>
				<updated>2019-09-22T10:20:25Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial is all about making sweet ass boxes ([[variable|variables]]) to jam your hot numbers into and using [[operator|operators]] (addition and subtraction) to add and subtract shit.&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Commenting (adding comments to) code / commenting out lines of code&lt;br /&gt;
* [[variable|Variables]] (specifically &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;)&lt;br /&gt;
* [[operator|Operators]] (specifically addition &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt; and subtraction &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/qqlUztlgNA4 0:00]&lt;br /&gt;
* Homework Solution / Translation Transformation VapeNation [https://youtu.be/qqlUztlgNA4?t=0m20s 0:20]&lt;br /&gt;
* Comments (of the non-YouTube variety) [https://youtu.be/qqlUztlgNA4?t=2m36s 2:36]&lt;br /&gt;
* Variables (specifically &amp;lt;code&amp;gt;int&amp;lt;/code&amp;gt;) [https://youtu.be/qqlUztlgNA4?t=4m24s 4:24]&lt;br /&gt;
* [[variable#The const Specifier|&amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;]]-ipation and &amp;lt;code&amp;gt;const&amp;lt;/code&amp;gt;-correctness [https://youtu.be/qqlUztlgNA4?t=9m22s 9:22]&lt;br /&gt;
* Rules for naming variables [https://youtu.be/qqlUztlgNA4?t=10m13s 10:13]&lt;br /&gt;
* Operators (addition &amp;amp; subtraction) [https://youtu.be/qqlUztlgNA4?t=13m55s 13:55]&lt;br /&gt;
* Homework assignment [https://youtu.be/qqlUztlgNA4?t=17m05s 17:05]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
The homework for this lesson is to modify the reticle drawing code so that you can change the position of the reticle by only changing two numbers (literal constants) in the code. Make sure you uncomment the lines that were commented, or you'll get a pretty shitty excuse for a reticle. The solution will be given in the beginning of the next tutorial.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 2 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 2 Homework Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 3|Next in series (Tutorial 3)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_1&amp;diff=1935</id>
		<title>Beginner C++ Game Programming Tutorial 1</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_1&amp;diff=1935"/>
				<updated>2019-09-22T10:19:48Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial mainly deals with how to call a [[function]] in C++ and basic syntax rules. We also talk about pixels, intellisense and other dumb bullshit.&lt;br /&gt;
&lt;br /&gt;
== Note ==&lt;br /&gt;
This is not the first tutorial in the series (programmers start counting from 0 ;)). Get the first tutorial here: [[Beginner C++ Game Programming Tutorial 0]]&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Function calls&lt;br /&gt;
* Basic C++ syntax&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* Intro [https://youtu.be/6VMq_2lH-Qo 0:00]&lt;br /&gt;
* Pixels and coordinates [https://youtu.be/6VMq_2lH-Qo?t=0m24s 0:24]&lt;br /&gt;
* &amp;lt;code&amp;gt;PutPixel()&amp;lt;/code&amp;gt; parameter meanings [https://youtu.be/6VMq_2lH-Qo?t=2m11s 2:11]&lt;br /&gt;
* Drawing outside of the screen and escaping debugger limbo [https://youtu.be/6VMq_2lH-Qo?t=4m00s 4:00]&lt;br /&gt;
* Function call concept and syntax [https://youtu.be/6VMq_2lH-Qo?t=6m16s 6:16]&lt;br /&gt;
* Intellisense and Autocompletion [https://youtu.be/6VMq_2lH-Qo?t=9m10s 9:10]&lt;br /&gt;
* Fixing syntax errors [https://youtu.be/6VMq_2lH-Qo?t=11m37s 11:37]&lt;br /&gt;
* C++ doesn't care about whitespace [https://youtu.be/6VMq_2lH-Qo?t=14m34s 14:34]&lt;br /&gt;
* Visualizing pixel image from code challenge [https://youtu.be/6VMq_2lH-Qo?t=15m56s 15:56]&lt;br /&gt;
* Changing image position challenge (homework) [https://youtu.be/6VMq_2lH-Qo?t=16:37m24s 16:37]&lt;br /&gt;
&lt;br /&gt;
== Homework ==&lt;br /&gt;
The homework for this lesson is to modify the code to move the pixel image to the bottom right corner of the screen. The solution will be given at the beginning of the next tutorial.&lt;br /&gt;
&lt;br /&gt;
== Download Links ==&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 1 Code] (WORK IN PROGRESS)&lt;br /&gt;
* [https://wiki.planetchili.net/ Tutorial 1 Homework Code] (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 2|Next in series (Tutorial 2)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_4&amp;diff=1934</id>
		<title>Beginner C++ Game Programming Tutorial 4</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Beginner_C%2B%2B_Game_Programming_Tutorial_4&amp;diff=1934"/>
				<updated>2019-09-22T07:41:35Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Video Index */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In this tutorial we explore the idea of animation in computer graphics and we make the reticle move freely around the screen. Along the way we learn about classes and objects, how to add member variables to objects/&amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;es, about .h (header) and .cpp (source) files, and about the short harsh lives of local variables (scope).&lt;br /&gt;
&lt;br /&gt;
== Concepts Taught ==&lt;br /&gt;
* Animation and the game loop&lt;br /&gt;
* Variable scope&lt;br /&gt;
* The concept of objects&lt;br /&gt;
* Classes and their relation to objects&lt;br /&gt;
* Data members (member variables) and member functions&lt;br /&gt;
* Difference between .h and .cpp files&lt;br /&gt;
* Adding data members to a &amp;lt;code&amp;gt;class&amp;lt;/code&amp;gt;&lt;br /&gt;
* Separating logic and drawing code&lt;br /&gt;
&lt;br /&gt;
== Video Timestamp Index ==&lt;br /&gt;
* [https://www.youtube.com/watch?v=HYiPoRk5ngY Part 1]&lt;br /&gt;
** Intro [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=0m0s 0:00]&lt;br /&gt;
** Keyboard ghosting: Keypress combination limits [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=1m47s 1:47]&lt;br /&gt;
** The problem of reticle movement from Tutorial 3 [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=2m21s 2:21]&lt;br /&gt;
** The game loop [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=4m29s 4:29]&lt;br /&gt;
** Stepping through the game loop using the debugger [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=7m21s 7:21]&lt;br /&gt;
** Scope of a variable: A problem of persisting reticle position across loop cycles [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=12m10s 12:10]&lt;br /&gt;
** Nested scopes and variables of the same name [https://www.youtube.com/watch?v=HYiPoRk5ngY&amp;amp;t=15m12s 15:12]&lt;br /&gt;
* [https://www.youtube.com/watch?v=ry_zHxnPn8A Part 2]&lt;br /&gt;
** Intro [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=0m0s 0:00]&lt;br /&gt;
** Objects [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=0m24s 0:24]&lt;br /&gt;
** Classes [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=2m05s 2:05]&lt;br /&gt;
** How classes define objects: data members and member functions [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=5m19s 5:19]&lt;br /&gt;
** Header files (.h) and source files (.cpp) [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=8m59s 8:59]&lt;br /&gt;
** Persisting reticle position across loop cycles: The solution [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=11m44s 11:44]&lt;br /&gt;
** Quick note: Drawing pixels outside the window bounds [https://www.youtube.com/watch?v=ry_zHxnPn8A&amp;amp;t=16m25s 16:25]&lt;br /&gt;
* [https://www.youtube.com/watch?v=zG-v7-1FN-U Part 3]&lt;br /&gt;
** Intro [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=0m0s 0:00]&lt;br /&gt;
** Old homework tasks [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=1m11s 1:11]&lt;br /&gt;
** Separate drawing code from game logic [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=2m13s 2:13]&lt;br /&gt;
** Control reticle velocity instead of movement [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=9m31s 9:31]&lt;br /&gt;
** Prevent reticle from ballin' outta control [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=12m18s 12:18]&lt;br /&gt;
** Summing up Tutorial 4 [https://www.youtube.com/watch?v=zG-v7-1FN-U&amp;amp;t=17m5s 17:05]&lt;br /&gt;
&lt;br /&gt;
== Bonus Advice Video ==&lt;br /&gt;
The bonus video mentioned at the end of Part 3 with advice for beginners hasn't been made yet. Wait first eh! It will be made in due time, and when it is you will get a notification if you put good old Chili in your notification list for YouTube. I'll put the link here as well when the video gets made and uploaded. Until then, don't take any wooden nickels or whatever.&lt;br /&gt;
&lt;br /&gt;
== Homework Questions ==&lt;br /&gt;
This lesson's homework is to answer the following questions. When you think you have the answer, click &amp;quot;expand&amp;quot; to reveal the correct answer.&lt;br /&gt;
&lt;br /&gt;
1. What symbols are a common indicator of the scope of a local variable?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: The curly braces &amp;lt;code&amp;gt;{}&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
2. What are the two types of members that define a class?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: Data members and member functions.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
3. What is the relationship between classes and objects.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: Classes are like a template or a blueprint that specifies the shape of an object. Objects are data structures in memory that are created, shaped, and which behave based on how they are specified in their class. We say that an object is an ''instance'' of a class.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
4. How do we achieve the movement of the reticle.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: We achieve movement of the reticle by making the variables &amp;lt;code&amp;gt;x&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; member variables of &amp;lt;code&amp;gt;class Game&amp;lt;/code&amp;gt;. In doing so, we no longer lose the values of these variables from frame to frame (when they are local variables, they are destroyed after exiting the &amp;lt;code&amp;gt;ComposeFrame()&amp;lt;/code&amp;gt; function, i.e. after each frame).&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
5. How are the members &amp;lt;code&amp;gt;gfx&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;wnd&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;class Game&amp;lt;/code&amp;gt; different?&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsed mw-collapsible&amp;quot; style=&amp;quot;width:450px&amp;quot;&amp;gt;&lt;br /&gt;
A: &amp;lt;code&amp;gt;Game::gfx&amp;lt;/code&amp;gt; is an object which is embedded directly into objects of the &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; class, whereas &amp;lt;code&amp;gt;Game::wnd&amp;lt;/code&amp;gt; is a reference to a &amp;lt;code&amp;gt;MainWindow&amp;lt;/code&amp;gt; object that exists outside of and is independent of the &amp;lt;code&amp;gt;Game&amp;lt;/code&amp;gt; object.&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Errata ==&lt;br /&gt;
* In Part 1 at 6:00 there is a mistake in the diagram where Chili shows the concept of animation from one frame to the next. The &amp;quot;frame 2&amp;quot;: &amp;quot;draw 2nd object&amp;quot; (blue triangle) should have the blue triangle drawn to the right as it is shown in &amp;quot;draw 3rd object&amp;quot;.&lt;br /&gt;
* In Part 3 when we make the &amp;lt;code&amp;gt;gb&amp;lt;/code&amp;gt; variable a member variable, it will maintain its value from frame to frame. So if we don't reset it every frame, then the first time we press CTRL and set it to 255, it will forever after be stuck at 255, which is probably not desired behavior. ;)&lt;br /&gt;
&lt;br /&gt;
== Notes ==&lt;br /&gt;
* If you get a crash when the reticle goes off the screen when Chili can make his reticle wrap from right to left, make sure your build configuration is set to &amp;lt;code&amp;gt;Release&amp;lt;/code&amp;gt; and not &amp;lt;code&amp;gt;Debug&amp;lt;/code&amp;gt;.&lt;br /&gt;
* This is version 2 of this tutorial. Version 1 was released back in August 2016, but it caused a lot of people to lose their shit and give up on the awesomeness that is C++, so Chili remade it. It's now over twice as long, and jam packed full of juicy knowledge, with a liberal smattering of memes as well.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
* [[Beginner C++ Game Programming Tutorial 5|Next in series (Tutorial 5)]]&lt;br /&gt;
* [[Beginner C++ Game Programming Series]]&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	<entry>
		<id>https://wiki.planetchili.net/index.php?title=Tools_%26_Resources&amp;diff=1933</id>
		<title>Tools &amp; Resources</title>
		<link rel="alternate" type="text/html" href="https://wiki.planetchili.net/index.php?title=Tools_%26_Resources&amp;diff=1933"/>
				<updated>2019-09-22T02:51:13Z</updated>
		
		<summary type="html">&lt;p&gt;Ap: /* Windows productivity apps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Useful Tools &amp;amp; Resources (WORK IN PROGRESS)&lt;br /&gt;
&lt;br /&gt;
== How to contribute ==&lt;br /&gt;
These are all links to external and publicly available sources, no guarantees / responsibility inferred.&lt;br /&gt;
If there are resources you like and would like to recommend, post them on the Discord and mention r_vdw.&lt;br /&gt;
&lt;br /&gt;
== Windows productivity apps ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|FrHed&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Versatile binary file / hex editor&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://sourceforge.net/projects/frhed/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|HxD&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Good freeware hex and disk editor&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://mh-nexus.de/en/hxd/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Slidytip&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|ShareX&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Screen capture / file sharing&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://getsharex.com/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Notepad++&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Source code editor and Notepad replacement&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://notepad-plus-plus.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Codeshare&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Handy tool to share code snippets&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://codeshare.io/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Self destructs in 24 hrs&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Gimp&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Cross-platform image editor (GNU/Linux,OS X,Windows,...&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.gimp.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|-&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Pyxel Edit&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Pixel art editor (make tilesets, levels,animations) by Daniel Kvarfordt &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://pyxeledit.com/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|AP tip&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Vim&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Source code editor, Notepad++ alternative &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.vim.org/download.php&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Will make you shit bricks real good&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Online compiling / testing / visualization ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Compiler Explorer&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Matt Godbolt&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://godbolt.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Analyze and compare the way C++ code compiles across different compilers&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Ideone&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Online compiler and debugger (~60 languages)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.ideone.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Wandbox&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Online compilation service&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://wandbox.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Data structure and algorithm visualization&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|USFCA / CS / David Galles&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.cs.usfca.edu/~galles/visualization/Algorithms.html&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|see it and you'll understand&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Active GitHub Forks&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|See who forked (&amp;amp;last committed) out of date GitHub libs/projects&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://techgaun.github.io/active-forks/index.html&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== C++ Libraries ==&lt;br /&gt;
=== Game tooling / engines ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|SFML&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Simple and Fast Multimedia Library&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.sfml-dev.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Easy to use, good functionality. Chili grabs it in Intermediate 25 (I25)&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Eigen&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|C++ template library for linear algebra &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://eigen.tuxfamily.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|chilitip&lt;br /&gt;
|}&lt;br /&gt;
=== Productivity ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|fmtlib &lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|Open-source formatting library&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://fmt.dev/latest/index.html&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|fast/easy, Slidytip&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== AI/ML ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|DLib&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|C++ toolkit containing machine learning algorithms&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|http://dlib.net/&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
=== Categorized / aggregation sites ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|cppreference libraries&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|As suggested by cppreference users&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://en.cppreference.com/w/cpp/links/libs&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|boost C++ libraries&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|boost your shit&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.boost.org/doc/libs/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Reference sites ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|cppreference.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Most comprehensve reference site&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://en.cppreference.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Hardccore&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|cplusplus.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Good reference site&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.cplusplus.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Softcore&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Stack Overflow&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Good reference site&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://stackexchange.com/sites#&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Very active community&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|ISOcpp&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|The home of standard C++&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://isocpp.org/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|For those purists&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Literature (books, blogs, papers, written shit)==&lt;br /&gt;
=== Programming Fundamentals ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#DDF;color:black;font-weight:bold;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;&amp;quot;|Name&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;&amp;quot;|Description&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;&amp;quot;|Link&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|What's so great?&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#ddf;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Structure and Interpretation of Computer Programs&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Harold Abelson et al. (2nd ed. 1996), MIT Press&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://web.mit.edu/alexmv/6.037/sicp.pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Just a classic&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Clean Code&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Robert C. Martin (14th ed. 2015), Prentice Hall&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://ptgmedia.pearsoncmg.com/images/9780132350884/samplepages/9780132350884.pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Sample chapter, then just buy it&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C++ Fundamentals ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|C++ Primer, 5th Edition&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Stanley B. Lippman et al&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|http://www.charleshouserjr.com/Cplus2.pdf&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Standard work, rewritten for C++11. Approachable for beginners&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|C++ Core Guidelines&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Bjarne Stroustrup, Herb Sutter&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|http://isocpp.github.io/CppCoreGuidelines&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Pure discipline, by the masters themselves&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Programming Abstractions in C++&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Eric S. Roberts (2012), Stanford CS106B&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Solid and well thought through intro to C++&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C++ Peculiarities ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Exploring std::string&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|Nice blog that looks under the hood&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://shaharmike.com/cpp/std-string/&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|a tip from Slidy&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Game programming ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Game Programming Patterns&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Robert Nystrom&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://gameprogrammingpatterns.com &lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Contains lots of different coding patterns and describes them in detail&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Game Engine Architecture&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Jason Gregory (3rd ed. 2018)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://www.gameenginebook.com/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Talks about various components that make up a game engine and how they tie together&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 3D Computer Graphics ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|The Book of Shaders&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Patricio Gonzalez Vivo and Jen Lowe&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://thebookofshaders.com (pdf can be generated)&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Tricks of the 3D Game Programming Gurus&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by André LaMothe, 2003&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|lagout&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Mathematics for 3D Game Programming and Computer Graphics&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Eric Lengyel (3rd ed.)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Need those math skills&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by James M. Van Verth, Lars M. Bishop (2nd ed.)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Math yo&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Vector Math for 3D Computer Graphics Tutorial&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Bradley Kjell&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://chortle.ccsu.edu/vectorlessons/vectorindex.html &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Demon liked it&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Computing Euler angles from a rotation matrix&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Gregory G. Slabaugh&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.gregslabaugh.net/publications/euler.pdf&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Chilitip&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|D3D/OpenGL  tutorial: A trip through the Graphics Pipeline &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Fabian Giesen&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Learn OpenGL&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Joey de Vries &lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://learnopengl.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Specific to OpenGL but well written and presented (Slidy)&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|Real-time Rendering&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|by Tomas Akenine-Möller et al (4th ed. 2018)&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;text-align:left;&amp;quot;|http://www.realtimerendering.com&lt;br /&gt;
| style=&amp;quot;border:1px solid grey;&amp;quot;|Good reference for learning about a wide variety of topics/techniques used in real-time rendering (Slidy)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== DirectX ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|DirectX Developer  Blog&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by msft&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://devblogs.microsoft.com/directx/&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
=== Operating systems ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Modern Operating Systems&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Andrew S. Tanenbaum &amp;amp; Herbert Bos (4th ed. 2015)&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|Google using filetype:pdf&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Standard work&lt;br /&gt;
|}&lt;br /&gt;
=== AI ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border:1px solid grey;border-collapse:collapse;width:100%;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;border:1px solid grey;background-color:#667;color:#c1c1c1;text-align:center;&amp;quot;&lt;br /&gt;
| style=&amp;quot;width:35%;border:1px solid grey;text-align:left;&amp;quot;|Paradigms of Artificial Intelligence Programming&lt;br /&gt;
| style=&amp;quot;width:30%;border:1px solid grey;text-align:left;&amp;quot;|by Peter Norvig&lt;br /&gt;
| style=&amp;quot;width:20%;border:1px solid grey;text-align:left;&amp;quot;|https://github.com/norvig/paip-lisp&lt;br /&gt;
| style=&amp;quot;width:15%;border:1px solid grey;&amp;quot;|Standard work, gotta love common lisp!&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Other good shit ==&lt;br /&gt;
* Blender Guru [https://youtu.be/TPrnSACiTJ4 beginner series]&lt;br /&gt;
&lt;br /&gt;
== ChiliWidsom ==&lt;br /&gt;
* &amp;quot;If you're building with warnings, you gotta re-evaluate your life choices&amp;quot; (I11hw)&lt;br /&gt;
* &amp;quot;Get your privates in order&amp;quot;&lt;/div&gt;</summary>
		<author><name>Ap</name></author>	</entry>

	</feed>