<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Kauress</title>
    <description>The latest articles on Forem by Kauress (@kauresss).</description>
    <link>https://forem.com/kauresss</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F46116%2Fc0268a1c-90a1-45eb-a0cd-bd33cdf903e5.jpg</url>
      <title>Forem: Kauress</title>
      <link>https://forem.com/kauresss</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kauresss"/>
    <language>en</language>
    <item>
      <title>🧠 💻 The Programmer's Brain: 3 types of confusion when you're learning a new tech</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Wed, 29 Dec 2021 18:58:13 +0000</pubDate>
      <link>https://forem.com/kauresss/the-programmers-brain-3-types-of-confusion-when-youre-learning-a-new-tech-2o5</link>
      <guid>https://forem.com/kauresss/the-programmers-brain-3-types-of-confusion-when-youre-learning-a-new-tech-2o5</guid>
      <description>&lt;p&gt;Hi everyone!, &lt;/p&gt;

&lt;p&gt;Been a while since I posted on here. Want to share a great resource/book that I've been reading. The book is called &lt;strong&gt;The Programmer's Brain&lt;/strong&gt; and it can be found here &lt;a href="https://www.manning.com/books/the-programmers-brain"&gt;here&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;highly recommended&lt;/strong&gt;. If you have a background in &lt;strong&gt;neuroscience&lt;/strong&gt;, you will enjoy it a lot! The author &lt;strong&gt;Felienne Hermans&lt;/strong&gt;  does a great job of explaining the cognitive processes involved in learning to code and what happens in your brain as you actively code. &lt;/p&gt;

&lt;p&gt;I made a small video explaining more &lt;a href="https://youtu.be/ohMAwevxeZc"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm huge into &lt;strong&gt;learning, meta-learning so&lt;/strong&gt; just sharing some of my notes from this book as well!&lt;/p&gt;

&lt;h3&gt;
  
  
  Types of confusion
&lt;/h3&gt;

&lt;p&gt;When learning try to recognize the type of confusion you're facing. Knowing what type of confusion you are facing can help you to overcome it. Confusion can be classified into 3 types&lt;/p&gt;

&lt;h3&gt;
  
  
  Confusion #1: Lack of knowledge
&lt;/h3&gt;

&lt;p&gt;This is caused by alack of domain knowledge in your LTM/Long term memory. So you're a complete newbie and are encountering a concept for the first time and have no idea what &lt;code&gt;var&lt;/code&gt;, &lt;code&gt;int&lt;/code&gt; or&lt;code&gt;function&lt;/code&gt; mean.&lt;/p&gt;

&lt;h3&gt;
  
  
  Confusion #2: Lack of information
&lt;/h3&gt;

&lt;p&gt;This is caused due to lack of information while solving/reading over a problem, for example about a certain method. So you know what methods are and how to use them but you might be lacking information on a certain method appropriate a code snippet for example&lt;code&gt;toString()&lt;/code&gt;. Code nowadays uses packages, modules etc therefore, confusion due to lack of information is common. And this type of confusion is associated with your STM/Short term memory which can only store about 2-6 items at one time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Confusion #3:Lack of processing power
&lt;/h3&gt;

&lt;p&gt;This is caused by an issue in your working memory. Working memory is used in the execution of cognitive tasks such as coding/programming. It holds new information in your current attention so that the brain can work with it. The working memory will try and connect this with other information stored in your LTM/Long term memory.&lt;/p&gt;

&lt;h3&gt;
  
  
  LTM: Long Term Memory
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;First cognitive process that you rely on when coding &lt;/li&gt;
&lt;li&gt;Holds facts and info for a long time &lt;/li&gt;
&lt;li&gt;For example knowledge about what a variable is or what a certain keyword means is stored here &lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  STM: Short Term Memory
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Second cognitive process that you rely on when coding &lt;/li&gt;
&lt;li&gt;It holds information briefly as it comes into your brain this is the memory that is first activated when you read code &lt;/li&gt;
&lt;li&gt;For example someone telling you their phone number is held briefly in your STM and unless you actively memorize it and put it into your LTM the information is forgotten because the STM has a very limited size and can only hold. 2-6 things &lt;/li&gt;
&lt;li&gt;For example public static void main (int n) here your STM holds the fact that n refers to an integer and you continue working &lt;/li&gt;
&lt;li&gt;The STM holds info like what the name of a certain method is or a variable name &lt;/li&gt;
&lt;li&gt;LTM and STM work together &lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Working memory
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Third cognitive process that you use when coding &lt;/li&gt;
&lt;li&gt;This is where the actual thinking happens &lt;/li&gt;
&lt;li&gt;So this is where you come up with solutions, thoughts and ideas &lt;/li&gt;
&lt;li&gt;When you’re reading code you’re trying to figure out what’s happening and you’re mentally trying to execute the code this is called tracing &lt;/li&gt;
&lt;li&gt;Tracing is the mental compiling and execution of code&lt;/li&gt;
&lt;li&gt;For example when writing some code you might be figuring out how to filter names of customers starting with the letter “a” or deciding an index is too low
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  The 3 types of memories interact with each other and work together
&lt;/h3&gt;

&lt;p&gt;All 3 cognitive processes are involved when you are thinking or doing any task. So if you read that a variable name or parameter is &lt;code&gt;i&lt;/code&gt;your brain searches it’s LTM for knowledge,  and if you don’t know what it means, then your working memory will try and figure it out. If you know what it means you will store this letter &lt;code&gt;i&lt;/code&gt; in your STM while you work through the code&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tutorial</category>
      <category>discuss</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Some virtual reality experiments  ⭐</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Thu, 09 Sep 2021 00:21:46 +0000</pubDate>
      <link>https://forem.com/kauresss/some-virtual-reality-experiments-2npa</link>
      <guid>https://forem.com/kauresss/some-virtual-reality-experiments-2npa</guid>
      <description>&lt;p&gt;I'm having lots of FUN doing game development. I've been using Unity and phaser.js which is exclusively for browser games. &lt;/p&gt;

&lt;p&gt;Unity has an XR interaction toolkit which makes it easier to do things like teleporting,  interacting with objects (grabbing, pushing etc):&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/jlbvRr7QMpM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/d_928RXa5to"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>virtual</category>
      <category>reality</category>
      <category>vr</category>
      <category>unity3d</category>
    </item>
    <item>
      <title>❣️The Cute Weekend Guide to Phaser.js🐻</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Sat, 05 Jun 2021 21:32:44 +0000</pubDate>
      <link>https://forem.com/kauresss/the-cute-weekend-guide-to-phaser-js-27fn</link>
      <guid>https://forem.com/kauresss/the-cute-weekend-guide-to-phaser-js-27fn</guid>
      <description>&lt;h3&gt;
  
  
  Just some weekend learning fun
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmg3se9e6td43k3szkdoq.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmg3se9e6td43k3szkdoq.jpg" alt="The Cute Weekend Guide to Phaser.js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi52osnz8ey7ybl0js26h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi52osnz8ey7ybl0js26h.jpg" alt="The Cute Weekend Guide to Phaser.js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlk05kvkpvsd0zua3i08.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlk05kvkpvsd0zua3i08.jpg" alt="The Cute Weekend Guide to Phaser.js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fveidm2dh9d3d6hsr3wns.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fveidm2dh9d3d6hsr3wns.jpg" alt="The Cute Weekend Guide to Phaser.js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffvqzg4cga0d04l0rrj7l.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffvqzg4cga0d04l0rrj7l.jpg" alt="The Cute Weekend Guide to Phaser.js"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo09ebfyl4t4ggwt4mfc1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo09ebfyl4t4ggwt4mfc1.jpg" alt="The Cute Weekend Guide to Phaser.js"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>phaser</category>
      <category>javascript</category>
      <category>web</category>
      <category>games</category>
    </item>
    <item>
      <title> Upwork blaj</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Sat, 06 Mar 2021 00:21:07 +0000</pubDate>
      <link>https://forem.com/kauresss/getting-paid-less-to-do-the-same-work-on-upwork-34mb</link>
      <guid>https://forem.com/kauresss/getting-paid-less-to-do-the-same-work-on-upwork-34mb</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fttyrsww9y9uoc7mm5772.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fttyrsww9y9uoc7mm5772.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ps: I'm the one getting paid less. &lt;/p&gt;

&lt;p&gt;Upwork has its ups and downs. So far I am top rated on there and for the most part enjoy the platform.  I got my first nightmare client recently. The company (1 or 2  grouchy people) want to emulate Codecademy so they hired for a JavaScript curriculum developer and author to write chapters (500 words max) and coding exercises.&lt;/p&gt;

&lt;p&gt;I wrote a sample chapter upon which they hired me. In fact they hired me two times and paid me, before all this nonsense started. &lt;/p&gt;

&lt;p&gt;So far I have been dealing with making editorial changes so that chapters fit into their platform seamlessly, this means giving .md, .pdf and .html files. Which is all ok! but they haven't given me access to their platform!&lt;/p&gt;

&lt;p&gt;I have never seen their platform. Since the work is getting outsourced on Upwork (the person I am dealing with on Upwork isn't the main client), all the important documentation has been stripped off so as to conceal the identity of the main client. All I get are copy pasted comments in a very poorly formatted document. &lt;/p&gt;

&lt;p&gt;Moreover, now they want a chapter summary to be added and a whole bunch of other changes never mentioned previously.&lt;/p&gt;

&lt;p&gt;All this has been extremely stressful for me as I am dealing more with the formatting to fit their platform (without ever having seen it) rather than creating content itself. &lt;/p&gt;

&lt;p&gt;Their feedback is rude and pretty nasty as well, considering they have asked me to format and make changes about 7-8 times now. &lt;/p&gt;

&lt;p&gt;Their most recent feedback, after a month of changes (19+ changes) is about how the output of the console.log statements has double quotes around the strings... WTF&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frf962aj8ycudr5kuoht2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frf962aj8ycudr5kuoht2.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Their exact feedback is"r people who can create a JavaScript course for beginners and need to know JavaScript. Your cover letter states that you know JavaScript well. But from the chapters and assignments written, we can conclude that you know JavaScript at a fairly low level. If we take the last chapters she submitted as an example and looked at chapter 2.1, "JavaScript Syntax." In this chapter, we will look at the tasks you have completed and the “result” expected after your code runs. You will get just text without quotes after using console.log, but all your "output" has been quoted."&lt;/p&gt;

&lt;p&gt;I'm unsure why they expect the output of the console.log of a string data type to be without quotes? Btw I checked on codepen since I don't have access to their platform:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzhp89496w5ieamhxl4y.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzzhp89496w5ieamhxl4y.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It's not possible to work with people who want the behavior of JavaScript to change according to their platform!&lt;/p&gt;

&lt;p&gt;I'm unsure of how to deal with this because I don't want my Upwork score affected. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>Game development with Unity3D NEWBIE series</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Sat, 23 Jan 2021 22:00:10 +0000</pubDate>
      <link>https://forem.com/kauresss/game-development-with-unity3d-newbie-series-536n</link>
      <guid>https://forem.com/kauresss/game-development-with-unity3d-newbie-series-536n</guid>
      <description>&lt;p&gt;So I decided to kickstart my youtube channel with Unity3D game dev tutorials for newbies&lt;a href="https://www.youtube.com/channel/UCqKOx3BuRotITRi99hT2yAw"&gt;here&lt;/a&gt;. I felt there was cohesiveness missing in  a lot of the tutorials such as not really explaining the Unity3D Scripting API, Monobehaviour events etc. &lt;/p&gt;

&lt;h3&gt;
  
  
  The Unity3D scripting API is a collection of namespaces.
&lt;/h3&gt;

&lt;p&gt;API stands for Application Programming Interface.  It allows 2 applications to talk to each other.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ffp7tnJE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0ykuysbgp6fckntm5udy.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ffp7tnJE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0ykuysbgp6fckntm5udy.PNG" alt="Alt Text" width="810" height="725"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A namespace is a collection of classes,  events, enumerations, delegates, interfaces etc that handle a specific task each. So each namespace will handle a specific task each.&lt;/p&gt;

&lt;h3&gt;
  
  
  The most common namespaces are:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;UnityEngine: collection of pre-built classes, events, interfaces etc that allow us to &lt;strong&gt;work with the Unity3D engine.&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;UnityEditor:  *&lt;strong&gt;*UnityEditor namespace is a collection of pre-built classes, events, structures, enumerations, delegates, interfaces etc that allow us to **extend the functionality of the Unity3D editor.&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;System namespace:  part of the .NET framework which is used behind the scenes by the Unity3d game engine. It is a  is a collection of, events, interfaces, delegates , structures, enumerations etc that allow us to &lt;strong&gt;create and use common data structures&lt;/strong&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Essentially namespaces are like containers for classes and we can access all the classes of these namespaces in our script. &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QK2wpeTl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/szp9h5xrknw7zdbl1thx.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QK2wpeTl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/szp9h5xrknw7zdbl1thx.PNG" alt="Alt Text" width="880" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;YouTube: &lt;iframe width="710" height="399" src="https://www.youtube.com/embed/981Yv_inrSw"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;//using imports a namespace&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Collections&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;System.Collections.Generic&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;UnityEngine&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CubeController&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;MonoBehaviour&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Start is called before the first frame update&lt;/span&gt;
    &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;Start&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="c1"&gt;// Update is called once per frame&lt;/span&gt;
    &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;Update&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I've noticed more and more web devs getting into games and unity3D, maybe it's the excitement of VR and AR that's pushing us lot. &lt;/p&gt;

&lt;p&gt;If anyone else is also doing game dev  please say hi!&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>game</category>
      <category>gamedev</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Hello world in Virtual Reality</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Sat, 16 Jan 2021 20:41:44 +0000</pubDate>
      <link>https://forem.com/kauresss/vr-lessons-for-newbies-42a2</link>
      <guid>https://forem.com/kauresss/vr-lessons-for-newbies-42a2</guid>
      <description>&lt;p&gt;Note: higer resolution images &lt;a href="https://www.notion.so/kauress/Oculus-Quest-2-My-first-Hello-World-in-Virtual-Reality-63d15e33fa074edab880f259af9f7c47" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This tutorial will guide you through creating your first program in VR. This tutorial uses the following hardware:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Oculus headset.&lt;/li&gt;
&lt;li&gt;In addition you must have the windows OS running&lt;/li&gt;
&lt;li&gt;a PC strong enough to handle VR&lt;/li&gt;
&lt;li&gt;Oculus link cable (you can also use the Oculus charger however, it is much slower)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Note: You can get  a USB-C to USB-A converter if need be&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Software requirements:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unity3D version 2019.3.11f1 and above&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Note: Make sure that the &lt;code&gt;Android Build Support&lt;/code&gt; module is included in your installation. If it is you will see the Android icon. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: Oculus is an android device&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;![pic](&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ff04zjm6hk3jt9ty0rvbe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ff04zjm6hk3jt9ty0rvbe.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If not then you can add it by clicking on the 3 &lt;code&gt;...&lt;/code&gt;dots to the upper right corner of the dialogue box and then &lt;code&gt;Add module → Android Build Support&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;![setting up](&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw0b98d36x62v6wz55rsg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw0b98d36x62v6wz55rsg.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  1. XR Interaction toolkit
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@0.9/manual/index.html" rel="noopener noreferrer"&gt;https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@0.9/manual/index.html&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;In order to build VR experiences quickly and easily it is advised to use the &lt;strong&gt;XR Interaction Toolkit&lt;/strong&gt; which allows you to handle basic VR capabilities such as grabbing objects, locomotion, gestures, pushing, pulling and more. This makes your workflow faster as you do not now have to code common everyday functionalities from scratch and can instead focus on coding functionalities that are unique to your game/experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is it and what does it do?
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;The XR interaction toolkit is a framework that allows you to build cross-platform AR and VR experiences. It simplifies interactions in VR by allowing plug-n-play functionality. This allows developers,designers and novices to build AR and VR experiences more easily&lt;/li&gt;
&lt;li&gt;The XR interaction Toolkit is available as a package that is available from Unity3D's package manager&lt;/li&gt;
&lt;li&gt;Once you download the toolkit you will see the XR Plugin Management component this will allow you to add and manage more plugins such as the Oculus XR plugin,  ARCore plugin etc&lt;/li&gt;
&lt;li&gt;Some of these cross-platform XR components are:&lt;/li&gt;
&lt;li&gt;XR controllers: left and right controllers&lt;/li&gt;
&lt;li&gt;XR rig: This represents the player, provides room scale tacking. It allows you to move around a room, look around the world, look at the controllers in 3D an so on&lt;/li&gt;
&lt;li&gt;XR interactables: These are objects that an interactor can interact with. For example Grabbing, pushing , pulling&lt;/li&gt;
&lt;li&gt;XR interactors:These components handle actions such as hovering over an object and selecting objects&lt;/li&gt;
&lt;li&gt;Gestures: these are gestures such as swiping, pinching&lt;/li&gt;
&lt;li&gt;Interaction manager: Responsible for sending information between the interactable and interactor&lt;/li&gt;
&lt;li&gt;XRUI input module: allows you to capture input from XR devices such as the Oculus Quest&lt;/li&gt;
&lt;li&gt;Tracked device graphic raycaster: Allows you to select UI components in 3D example buttons&lt;/li&gt;
&lt;li&gt;AR components: AR interactables and interactors&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  2. Setting up the Oculus Quest app
&lt;/h1&gt;

&lt;h3&gt;
  
  
  ⭐STEP 1: Download the Oculus app and connect your Oculus Quest 2
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Download the Oculus phone app. Switch on your bluetooth. In your app connect your Oculus&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F12svt21oywo3juols802.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F12svt21oywo3juols802.jpg" alt="Oculus app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ⭐STEP 2: Tap More Settings
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Once connected, click on &lt;code&gt;More Settings&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxdjxp6l7qcpn1ioeudef.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fxdjxp6l7qcpn1ioeudef.jpg" alt="Oculus app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ⭐STEP 3: Go to Developer Mode
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Now go to &lt;code&gt;Developer Mode&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fv7todz747unnt8yd0y3w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fv7todz747unnt8yd0y3w.jpg" alt="Oculus app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ⭐STEP 4: Switch on Developer mode
&lt;/h3&gt;

&lt;p&gt;Switch on &lt;code&gt;Developer Mode&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fed9s2bbsq03dammh9rw4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fed9s2bbsq03dammh9rw4.jpg" alt="Oculus app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Plug Oculus Quest into your PC using the link cable
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0lsq0ealczdcnczffcin.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F0lsq0ealczdcnczffcin.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to your Oculus app on your Desktop and follow these steps: &lt;a href="https://support.oculus.com/632287656943461/" rel="noopener noreferrer"&gt;https://support.oculus.com/632287656943461/&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  4. Setting up for VR with Unity3D + Oculus
&lt;/h1&gt;

&lt;h2&gt;
  
  
  ⭐STEP 1: Download plugins
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Now we will be downloading the 3 plugins that we need for our project&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make a new Unity3D project and save it in the drive of your choice&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to &lt;code&gt;Window → Packages&lt;/code&gt; &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6jirm6owwk55qpmzrce6.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6jirm6owwk55qpmzrce6.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download the following packages:&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;XR Plugin Management and XR Interaction toolkit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6d2s5xutnasxh3olny92.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F6d2s5xutnasxh3olny92.png" alt="XR Plugin "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download Oculus Integration Plugin&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fi9uo23cvjbk2cmvhq1mp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fi9uo23cvjbk2cmvhq1mp.png" alt="Oculus Integration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;In &lt;code&gt;File → Build Settings →  add the current scene to Build → Run Device and choose your Oculus Device → Build&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Change Graphic API. Go to &lt;code&gt;File → Build Settings  → Player Settings → Player → Graphic Apis&lt;/code&gt; and  drag &lt;code&gt;OpenGLES3&lt;/code&gt; to the top&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwgl3hj126yeqzbm0eotd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwgl3hj126yeqzbm0eotd.png" alt="Settings for VR"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5.Go to &lt;code&gt;File → Build Settings → Player Settings → Player → Minimum APILevel&lt;/code&gt; and change the &lt;code&gt;APILevel&lt;/code&gt; so that it is &lt;code&gt;23&lt;/code&gt; or higher&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwfw0pj27npo6a1f53328.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fwfw0pj27npo6a1f53328.png" alt="Settings for VR"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose Oculus under XR plugin Management in the Player settings&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Foxc12jkfkfqgvya1ityi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Foxc12jkfkfqgvya1ityi.png" alt="Settings for VR"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choose the current scene to Build, make sure your Oculus is plugged in and under Run Device choose your Device&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnowakqh7n20ev47xs1y6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fnowakqh7n20ev47xs1y6.png" alt="Build"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;5: Make the game world&lt;/strong&gt;
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Now let's go ahead and make the game work for our first Hello World experience in VR. If you don't have any Unity3D experience don't worry we will start from scratch&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Let's create the ground for our game world. Just like we have the ground on which we stand on, the same way let's create a ground for our VR world. To do this click on &lt;code&gt;GameObject → 3D Object → Plane&lt;/code&gt; This will create a plane in our scene. You can adjust the scale of the plane within the Inspector window to the right&lt;/li&gt;
&lt;/ol&gt;


&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fr36ro5m08ru2jdibsc9e.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fr36ro5m08ru2jdibsc9e.gif" alt="Game world"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Change the position of the plane that we just added to &lt;code&gt;x: 0, y : 0 and z : 0&lt;/code&gt; in the &lt;code&gt;Inspector Window&lt;/code&gt; to the right. Also change the name to &lt;code&gt;Ground&lt;/code&gt; or &lt;code&gt;Floor&lt;/code&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm4ohmsxpiee9zkxqcqsp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm4ohmsxpiee9zkxqcqsp.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Now let's add some color to our &lt;code&gt;Ground&lt;/code&gt; . Make a folder called &lt;code&gt;Materials&lt;/code&gt; inside the main &lt;code&gt;Assets&lt;/code&gt; folder. &lt;code&gt;Right click on Assets → Create → Folder&lt;/code&gt; Rename the folder as &lt;code&gt;Material&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Double click on the Materials folder to open it and now create a new material by Right clicking inside the &lt;code&gt;Material folder → Create → Material&lt;/code&gt;. Rename the newly created material as &lt;code&gt;Ground&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftuoldygh1caht85u3t8e.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ftuoldygh1caht85u3t8e.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Click on &lt;code&gt;Ground&lt;/code&gt; and from the right side in the Inspector window choose a color of your liking from the color wheel&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqolfl3107cdifeuf8nxu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fqolfl3107cdifeuf8nxu.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Now let's apply the Ground material to the 3D Ground object in the scene. By  Clicking on it and dragging it onto the Ground 3D plane object&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm0qjeesicb778wjxf8el.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fm0qjeesicb778wjxf8el.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Now go ahead and add some more 3D objects onto the ground such as cubes and spheres. And then within the Material folder create some materials to apply on your 3D objects. You will be repeating steps &lt;code&gt;1, 2, 5 and 6&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;You can create the Hello World text the same ways as you created other 3D objects. Go to &lt;code&gt;GameObject in the menu bar → 3D Object → 3D Text&lt;/code&gt;. You can play around with it's position settings in the &lt;code&gt;Inspector window&lt;/code&gt; to the right. Make sure it is selected first&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flv5yg6xulk8fxokm0qxb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flv5yg6xulk8fxokm0qxb.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  6: Add Room Scale XR rig
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;In this part we will be adding a room scale XR rig. The Room-Scale XR Rig will allow you to move around in VR as though you were in a room.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To do that &lt;code&gt;right click anywhere in  the empty space  in the Hierarchy window and then click on Xr and then Room-Scale XR Rig&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fa09ic4j4lzd9m7ujr4b4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fa09ic4j4lzd9m7ujr4b4.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;With the Room-Scale Rig selected on the right in the Hierarchy window you can see where it is on your plane&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fttj7k1osjdbwy8knfgl5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fttj7k1osjdbwy8knfgl5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The &lt;code&gt;XR Interaction Manager&lt;/code&gt; and &lt;code&gt;Event System&lt;/code&gt; are added to the &lt;code&gt;Hierarchy window&lt;/code&gt; when you add the &lt;code&gt;Room-Scale XR Rig&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flg0kwgtkclavdxhzqcua.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flg0kwgtkclavdxhzqcua.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; In the &lt;code&gt;Hierarchy window&lt;/code&gt; if you &lt;code&gt;click on dropdown icon of Room-Scale XR Rig → Camera Offset&lt;/code&gt; You will see the &lt;code&gt;Main Camera&lt;/code&gt;, &lt;code&gt;Left-Hand Controller&lt;/code&gt; and &lt;code&gt;Right-Hand Controller&lt;/code&gt; components. We don't need to change anything there. The &lt;code&gt;Tracked Pose Component&lt;/code&gt; inside the &lt;code&gt;Main Camera&lt;/code&gt; component will  get information about your pose from Oculus and be tracking your eyes as you move around the game world and changing the view of the world accordingly&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw8sobexbeudqdu5vhl4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fw8sobexbeudqdu5vhl4v.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Save your game  by clicking on &lt;code&gt;File → Save&lt;/code&gt; or  &lt;code&gt;CTRL + S&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  6: Inside Oculus Quest 2
&lt;/h1&gt;

&lt;h3&gt;
  
  
  ⭐STEP 1: Go to the Oculus Quest Dashboard and click on the icon
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flq6kni26zlum3r9f9id8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Flq6kni26zlum3r9f9id8.jpg" alt="Oculus quest"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ⭐STEP 2: Select Unknown Sources and  select your VR experience from the menu
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fguvzetszk6z9kmjtxdvj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fguvzetszk6z9kmjtxdvj.jpg" alt="Oculus quest"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ⭐STEP 4: Play your VR experience
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://s3.us-west-2.amazonaws.com/secure.notion-static.com/f34e3b2e-b27a-4c25-a277-6448a82d3de1/vrhelloworld.gif?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;amp;X-Amz-Credential=AKIAT73L2G45O3KS52Y5%2F20210116%2Fus-west-2%2Fs3%2Faws4_request&amp;amp;X-Amz-Date=20210116T204029Z&amp;amp;X-Amz-Expires=86400&amp;amp;X-Amz-Signature=908550b0bbd6ac24f26c821601fd0e96af612348ec0b84718fd4ded02c114a31&amp;amp;X-Amz-SignedHeaders=host&amp;amp;response-content-disposition=filename%20%3D%22vrhelloworld.gif%22" rel="noopener noreferrer"&gt;play experience&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>gamedev</category>
      <category>vr</category>
      <category>virtualreality</category>
    </item>
    <item>
      <title>Testing  WebRTC in Chrome</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Sat, 26 Dec 2020 13:39:23 +0000</pubDate>
      <link>https://forem.com/kauresss/testing-webrtc-in-chrome-14eb</link>
      <guid>https://forem.com/kauresss/testing-webrtc-in-chrome-14eb</guid>
      <description>&lt;p&gt;Enable the webcam in your browser temporarily when not using HTTPS&lt;/p&gt;

&lt;p&gt;&lt;em&gt;chrome://flags/#unsafely-treat-insecure-origin-as-secure&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;That's all. Thanks Dev.to you the best notepad.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🎮UNITY3D course coming soon!</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Sat, 12 Sep 2020 09:38:31 +0000</pubDate>
      <link>https://forem.com/kauresss/unity3d-course-coming-soon-n0g</link>
      <guid>https://forem.com/kauresss/unity3d-course-coming-soon-n0g</guid>
      <description>&lt;p&gt;Note: I am aware of the current injustices in the world. This post does not intend to undermine the lives/issues of other humans currently #blacklivesmatter #1984genocide. Where ever we are on the planet we must live with kindness&lt;/p&gt;

&lt;p&gt;{ Hello World! }&lt;/p&gt;

&lt;p&gt;I'm super excited to be making a Unity3D course with Newline! Newline formerly known as Fullstack.io is an online publisher for wholesome and cohesive content. They are known for their fullstack series (fullstack react, vue etc). The course will be centered around learning game development with Unity3D by building a social simulation game similar to Animal Crossing.&lt;/p&gt;

&lt;p&gt;Yes! No FPS (first person shooter), platformer or sword fighting game!  Instead build a social simulation game with game mechanics such as :&lt;/p&gt;

&lt;p&gt;talk to other characters in the game&lt;br&gt;
 build the game world&lt;br&gt;
grow   flowers or candy   (I'm undecided, maybe I just need more sugar in my system)&lt;br&gt;
 character customization&lt;br&gt;
 character animation&lt;br&gt;
 game day-night cycle&lt;br&gt;
 game inventory&lt;br&gt;
More! (seriously, like AI navigation)&lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; &lt;/p&gt;

&lt;p&gt; PLEARN PRIME!&lt;br&gt;
Play + Learn&lt;br&gt;
 Learning while playing something: Example learning English words while playing  hangman.  This is called Play learning, put together the word is Plearn. In this case you're not building the hangman game, but rather increasing English skills while playing it.&lt;br&gt;
  Plearn Prime: Learning something new while building something and repeatedly  play testing. Something like MineCraft or Roblox where you build 3D worlds,  but more contextual keeping in mind it's for a more grown up audience. In this case you learn how to build the game world and game mechanics by building it out and then play in it.  The same as in when you're learning to build apps by coding apps. The difference being that a game engine is much more different than a code editor. Also you're creating your own mechanics.&lt;/p&gt;

&lt;p&gt;Note: I didn't actually come up with the term 'Plearn'. The closest Google search for this term shows that it is 'Personalized Learning'. However, I've just changed the definition&lt;/p&gt;

&lt;p&gt;Instruction with intent&lt;/p&gt;

&lt;p&gt;Instruction with intent is important. It's one thing to give all the information in a cohesive manner following a curriculum. And another thing to build a curriculum with intent and have a clear-cut/defined goal of exactly what a learner will be able to build after the course.  Spending time on curriculum building is important. Else the course ends up being a wiki on the topic.&lt;/p&gt;

&lt;p&gt;The intent of this course is to:&lt;/p&gt;

&lt;p&gt;Fully bootstrap a learner into making games with Unity3D. The course is focused on  game play mechanics more than design.  The design assets are given to the learner so that they can start building with Unity3D. Design tools are different from game mechanic tools in the Unity3D editor. Example Cinema 4D,  3DMax are all design tools.&lt;br&gt;
Have a completed project for their portfolio. Important if you're looking to get into the industry or maybe land a freelance gig.&lt;br&gt;
Move on to learning virtual reality (VR) and augmented reality (AR) with Unity3D. Super exciting time for spatial computing coming up!&lt;/p&gt;

&lt;p&gt;ps: the picture of the space kitty is a sticker I have by coco&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>gamedev</category>
      <category>beginners</category>
      <category>game</category>
    </item>
    <item>
      <title>💻 The JavaScript Technical Interview Workbook (400+ questions)</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Mon, 06 Jul 2020 07:19:31 +0000</pubDate>
      <link>https://forem.com/kauresss/the-javascript-technical-interview-guide-400-questions-1h7f</link>
      <guid>https://forem.com/kauresss/the-javascript-technical-interview-guide-400-questions-1h7f</guid>
      <description>&lt;p&gt;ps: Update: &lt;a href="https://gum.co/JieDN" rel="noopener noreferrer"&gt;pre-sale here&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Hi devs especially &lt;strong&gt;junior&lt;/strong&gt; devs! For the past 5 months I've been super focused on writing a technical interview guide for juniors who want to break into the web-development industry. Since a solid grounding in JavaScript is paramount to clearing interviews focused on web applications, I wanted to write a guide that would help junior developers learn and practice at the same time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;I've been a coding bootcamp instructor for the past 4 years, and some of the questions that I've been asked concerning job opportunities and employment are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Will I get a job after this?&lt;/li&gt;
&lt;li&gt;How many projects do I need to complete in order to start   interviewing?&lt;/li&gt;
&lt;li&gt;How can I test my JavaScript knowledge?&lt;/li&gt;
&lt;li&gt;How should I prepare for technical interviews? What will I be asked?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Circumventing life issues to get employed!
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The best way for junior developers to circumvent the issue of not having enough experience/projects and still get employed is to do plenty of coding exercises (including on old and newer ES features) without having done whole projects on them.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This demonstrates a practical understanding of core and advanced JavaScript concepts.&lt;/p&gt;

&lt;p&gt;Often people have to balance multiple things while they learn to code including part-time jobs. Therefore, they're on a time crunch and may or may not be able to commit to doing projects. I've faced this with students before. They have committed to learning to code but life just gets in the way.&lt;/p&gt;

&lt;p&gt;There are also people who leave everything including employment in order to learn how to code. The more time they spend out of web-dev employment status means the more they dip into their savings and deplete their bank balances. &lt;/p&gt;

&lt;p&gt;So this technical guide is focused on circumventing these issues in a practical and straightforward way.&lt;/p&gt;

&lt;p&gt;Each section of each chapter has about 70 - 90 coding exercises + underlying theory. The basic premise is that you read a section, practice the coding exercises and &lt;strong&gt;then&lt;/strong&gt; move on to the next section. &lt;/p&gt;

&lt;p&gt;Therefore solidifying your base at each step. Moving you from basic to advanced concepts. &lt;/p&gt;

&lt;h2&gt;
  
  
  Check it out here
&lt;/h2&gt;

&lt;p&gt;If you'd like to read more on the guide please check it out &lt;a href="https://mailchi.mp/513fa2e96130/jstechinterview" rel="noopener noreferrer"&gt;here&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Topic outline&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Foundation&lt;/li&gt;
&lt;li&gt;Objects&lt;/li&gt;
&lt;li&gt;Arrays&lt;/li&gt;
&lt;li&gt;Functions&lt;/li&gt;
&lt;li&gt;The DOM&lt;/li&gt;
&lt;li&gt;Data Structures and Algorithms&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fn3n1h074ahb6mnobdbdk.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fn3n1h074ahb6mnobdbdk.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3xh9l3oxzbg4f4bpthne.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F3xh9l3oxzbg4f4bpthne.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffzq1m5ubvygmk3u4xfvg.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Ffzq1m5ubvygmk3u4xfvg.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fh2rrp2dvuoaze7guka7s.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fh2rrp2dvuoaze7guka7s.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F41eagwflpn9eejp4miay.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2F41eagwflpn9eejp4miay.PNG" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>jobs</category>
    </item>
    <item>
      <title>🎮I'm creating a UNITY3D animal crossing type course!</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Thu, 11 Jun 2020 02:25:35 +0000</pubDate>
      <link>https://forem.com/kauresss/unity3d-course-coming-soon-47bg</link>
      <guid>https://forem.com/kauresss/unity3d-course-coming-soon-47bg</guid>
      <description>&lt;p&gt;Note: &lt;em&gt;I am aware of the current injustices in the world. This post does not intend to undermine the lives/issues of other humans currently #blacklivesmatter #1984genocide. Where ever we are on the planet we must live with kindness&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  { Hello World! }
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0A89NDnH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hpeu0ohaod6fr1qympjo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0A89NDnH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/hpeu0ohaod6fr1qympjo.png" alt="Alt Text" width="880" height="1093"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I'm super excited to be making a Unity3D course with Newline!&lt;/strong&gt; &lt;a href="https://www.newline.co/"&gt;Newline&lt;/a&gt; formerly known as Fullstack.io is an online publisher for wholesome and cohesive content. They are known for their fullstack series (fullstack react, vue etc). The course will be centered around learning game development with Unity3D by building a social simulation game similar to Animal Crossing.&lt;/p&gt;

&lt;p&gt;Yes! No FPS (first person shooter), platformer or sword fighting game! Instead build a social simulation game with &lt;strong&gt;game mechanics&lt;/strong&gt; such as:&lt;/p&gt;

&lt;p&gt;☁️talk to other characters in the game&lt;br&gt;
🌍build the game world&lt;br&gt;
🌷/🍡 grow   flowers or candy   (I'm undecided, maybe I just need more sugar in my system)&lt;br&gt;
👘character customization&lt;br&gt;
✨character animation&lt;br&gt;
🌒game day-night cycle&lt;br&gt;
📦game inventory&lt;br&gt;
💌 More! (seriously, like AI navigation)&lt;/p&gt;

&lt;h2&gt;
  
  
  PLEARN PRIME!
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Play + Learn
&lt;/h3&gt;

&lt;p&gt;1.&lt;strong&gt;Learning while playing something:&lt;/strong&gt; Example learning English words while playing  hangman.  This is called Play learning, put together the word is Plearn. In this case you're not building the hangman game, but rather increasing English skills while playing it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Plearn Prime:&lt;/strong&gt; Learning something new while building something and repeatedly  play testing. Something like MineCraft or Roblox where you build 3D worlds,  but more contextual keeping in mind it's for a more grown up audience. In this case you learn how to build the game world and game mechanics by building it out and then play in it.  The same as in when you're learning to build apps by coding apps. The difference being that a game engine is much more different than a code editor. Also you're creating your own mechanics.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note:&lt;em&gt;I didn't actually come up with the term 'Plearn'. The closest Google search for this term shows that it is 'Personalized Learning'. However, I've just changed the definition&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Instruction with intent
&lt;/h2&gt;

&lt;p&gt;Instruction with intent is important. It's one thing to give all the information in a cohesive manner following a curriculum. And another thing to build a curriculum with intent and have a clear-cut/defined goal of exactly what a learner will be able to build after the course.  Spending time on curriculum building is important. Else the course ends up being a wiki on the topic.&lt;/p&gt;

&lt;h3&gt;
  
  
  The intent of this course is to:
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Fully bootstrap&lt;/strong&gt; a learner into making games with Unity3D. The course is focused on  game play mechanics more than design.  The design assets are given to the learner so that they can start building with Unity3D. Design tools are different from game mechanic tools in the Unity3D editor. Example Cinema 4D,  3DMax are all design tools.&lt;/li&gt;
&lt;li&gt;Have a completed project for their &lt;strong&gt;portfolio&lt;/strong&gt;. Important if you're looking to get into the industry or maybe land a freelance gig.&lt;/li&gt;
&lt;li&gt;Move on to learning &lt;strong&gt;virtual reality (VR) and augmented reality (AR) with Unity3D&lt;/strong&gt;. Super exciting time for spatial computing coming up!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;ps: the picture of the space kitty is a sticker I have by cocogleez!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BAB1VqRl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0fmxr6r84utzcexqblxw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BAB1VqRl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/0fmxr6r84utzcexqblxw.jpg" alt="Kitty pic" width="880" height="765"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>unity3d</category>
      <category>gamedev</category>
      <category>beginners</category>
      <category>game</category>
    </item>
    <item>
      <title>The Code Cadet Outfit for women devs</title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Sun, 10 May 2020 13:42:54 +0000</pubDate>
      <link>https://forem.com/kauresss/the-code-cadet-outfit-for-women-devs-168</link>
      <guid>https://forem.com/kauresss/the-code-cadet-outfit-for-women-devs-168</guid>
      <description>&lt;p&gt;I've always wanted a dev tech outfit for myself. Imposter syndrome aside, coding is a lifestyle. A lifestyle where you sit for long periods of time and it's really irritating to pull up your pants so that they don't scrunch at your knees when you sit down :) I wanted to make it official, nothing wrong with jeans, track pants and t-shirts. But I was aiming for something more affirmative. Coding is creative, hard, joyful and gratifying all at the same time in different amounts. There's athletic wear for people into crossfit, running etc. So now I present to you ✨ dev wear for devs!&lt;/p&gt;

&lt;p&gt;The embellishments on the outfit are patches and embroidery. The pants are to have deep pockets. I've gotten some feedback about front pockets not being that favorable so i might just remove the pocket and leave the patch. And put side pockets on the top itself. The sleeves are loose as well so that your elbows can move in whatever way that you type&lt;/p&gt;

&lt;p&gt;And yes, that's a 🐱 cat code editor 💻&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--R42XURlc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6vyls6g10ryi45qc1vbo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--R42XURlc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6vyls6g10ryi45qc1vbo.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>womenintech</category>
      <category>developer</category>
    </item>
    <item>
      <title>Machine learning implemented in JavaScript with ml5.js </title>
      <dc:creator>Kauress</dc:creator>
      <pubDate>Mon, 20 Apr 2020 04:58:24 +0000</pubDate>
      <link>https://forem.com/kauresss/javascript-implementation-of-machine-learning-with-ml5-js-for-newbies-3kfp</link>
      <guid>https://forem.com/kauresss/javascript-implementation-of-machine-learning-with-ml5-js-for-newbies-3kfp</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_kn6W51k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.imgur.com/FrbPgTr.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_kn6W51k--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.imgur.com/FrbPgTr.gif" alt="sailormoon gif" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Introduction
&lt;/h3&gt;

&lt;p&gt;I'm glad there are machine learning implementations in JavaScript. Abstracts a lot of the complexities associated with training &amp;amp; using machine learning models. I just hope &lt;a href="https://ml5js.org"&gt;ml5.js&lt;/a&gt; doesn't become obsolete tomorrow or the next month! Python has been the modern de-facto language for #machinelearning. And there are tons of python libraries to implement machine learning tasks. However, JavaScript implementations of machine learning are fairly recent.&lt;/p&gt;

&lt;p&gt;I chose this ml5.js for my &lt;a href="https://sailormoonlogin.herokuapp.com/"&gt;"SailorMoon Pose Sign/Login"&lt;/a&gt;project because you can start just by making a reference to the library via a CDN and use it's inbuilt methods. Similar to making a reference to other libraries such as JQuery. There is no installation required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Include ml5.js in project
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;head&amp;gt;
&amp;lt;script src="https://unpkg.com/ml5@0.1.1/dist/ml5.min.js"&amp;gt;
&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ml5.js
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://ml5js.org"&gt;ml5.js&lt;/a&gt; is a browser based wrapper around tensorflow.js. It describes itself as &lt;b&gt;"friendly machine learning for the web".&lt;/b&gt; ml5.js provides pre-trained models in the browser. If you were attempting machine learning from scratch you would probably train a model on your own. So for example feed lots of input(for example human poses) to a neural network. And, over time the neural network due to receiving simulation/lots of input becomes sophisticated enough to give a predictable intelligible output due to recognition of patterns. This is akin to synapses in the brain that get strengthened over time with repeated stimuli. This &lt;a href="https://medium.com/tensorflow/real-time-human-pose-estimation-in-the-browser-with-tensorflow-js-7dd0bc881cd5"&gt;article&lt;/a&gt; elaborates a bit further on the technical side of things.&lt;/p&gt;

&lt;p&gt;Pre-trained models such as MobileNet which is used to classify images are used with ml5.js by passing it as an argument to the &lt;code&gt;ml5.ImageClassifier()&lt;/code&gt; method of the &lt;code&gt;ml5&lt;/code&gt;object, along with a callback function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ml5.imageClassifier(MobileNet,callbackFunction);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The MobileNet model has been trained with 15 million images so you can image how useful it is to use a pre-trained model rather than create one of your own. Ml5.js references this library in the cloud, and therefore you can use it in your own projects.&lt;/p&gt;

&lt;p&gt;Some other pre-trained models available for you to use with ml5.js are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;PoseNet (to detect poses)&lt;/li&gt;
&lt;li&gt;BodyPix&lt;/li&gt;
&lt;li&gt;FaceAPI&lt;/li&gt;
&lt;li&gt;YOLO&lt;/li&gt;
&lt;li&gt;And others&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;While using ml5.js it's important to note that: "ml5.js supports both error-first callbacks and Promises in all methods.". Let's deconstruct:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Error-first callback&lt;/li&gt;
&lt;li&gt;Promise&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Error first callback
&lt;/h3&gt;

&lt;p&gt;A callback function is a function that is executed aka called-back after another function has finished executing. In JavaScript a function is an object. Which means you can pass a function as an argument to another function. This function that receives the callback function as an argument is called a higher order function.&lt;/p&gt;

&lt;p&gt;By using callback functions you ensure that a block of code contained within the callback function doesn't execute unless it's parent function runs. This idea helps us create asynchronous code/applications.&lt;/p&gt;

&lt;p&gt;Read this worksheet if you'd like to practice/learn more about callbacks:&lt;br&gt;
 &lt;iframe height="600" src="https://codepen.io/Kauress/embed/ZRjGxr?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;p&gt;common syntax/example is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function main(argument1, callbackFxn(){
}
}//end of main function
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or you can reference a named callback function:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function main(argument1, hello());
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ml5.js which uses an error-first callback pattern to handle asynchronicity. The callback function will be executed once the async operation ends with the 1st argument being an error object. It looks like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ml5.methodName(ModelName, function(errorObj, someData)
{if(errorObj){
//Error executes first
} 
//some Data is returned from the pre-trained model
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If no error occurs, then &lt;code&gt;errorObj&lt;/code&gt; object is set to null and some data is returned. &lt;/p&gt;

&lt;h3&gt;
  
  
  Promises
&lt;/h3&gt;

&lt;p&gt;Promises in JavaScript are used to handle asynchronous operations. They are objects that reference a value to be received in the future. Promises were introduced as part of the ES6 specification. Async operations as you read above can be accomplished by callback functions. However,nesting of multiple callback functions is messy and can cause what is known as  callback hell. The intent of this logical construct is to run a function if a condition is fulfilled in the future.There are 3 states of a promise:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Pending (promise state is on-going)&lt;/li&gt;
&lt;li&gt;Resolved (promise was successful)&lt;/li&gt;
&lt;li&gt;Rejected (promise was unsuccessful)&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Construct a promise
&lt;/h3&gt;

&lt;p&gt;Use a promise constructor to make a new promise. The promise will take as an argument a callback function, to which 2 arguments are passed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let goodnight = new Promise(function(resolve, reject){

});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The callback function passed to the promise object &lt;code&gt;goodnight&lt;/code&gt; is called an executor. &lt;code&gt;resolve&lt;/code&gt; and &lt;code&gt;reject&lt;/code&gt; are functions that will execute depending on the result.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let time = new Date().getHours();
let goodnight = new Promise(function(resolve, reject){
  if(time &amp;gt;= 20){
    resolve();
  }else{
    reject();
  }
});

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the condition is fulfilled then the result will be passed to the resolve function which will execute else the reject function which takes an error object as an argument will execute.&lt;/p&gt;

&lt;p&gt;The resolve() and reject() functions do not execute immediately. In  order to do something with the true/false result received from the callback functions,we use the .then() and .catch() methods&lt;/p&gt;

&lt;h4&gt;
  
  
  then and catch
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;goodnight
  .then(function(){
  alert('Goodnight')
})
 .catch(function(){
  alert('Not bedtime')
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Methods are functions associated with objects. And as promises are objects we can attach the .then() and .catch() methods to our newly created &lt;code&gt;goodnight&lt;/code&gt; object. These will "then" do something. If time is &amp;gt;= 8 pm then, the anonymous callback function within &lt;code&gt;then&lt;/code&gt; will alert 'Goodnight'. Else 'Not bedtime' will be alerted.&lt;/p&gt;

&lt;h3&gt;
  
  
  Back to ml5.js
&lt;/h3&gt;

&lt;p&gt;Coming back to ml5.js as mentioned it provides access to various image, video, sound and text machine learning pre-trained models. You can see most of them in the left nav-bar &lt;a href="https://learn.ml5js.org/docs/#/reference/image-classifier"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Each one of these pre-trained models comes with:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Parameters: passed during initialization of a pre-trained model.The name of the pre-trained model is required. For example, MobileNet, PoseNet. Other parameters such as a callback function,a video, image etc are optional and depend upon the model you chosen&lt;/li&gt;
&lt;li&gt;Properties:These are optional&lt;/li&gt;
&lt;li&gt;Methods: These are used to do something with the data for example.detect() will detect a face. The PoseNet model uses an event-handler method to detect new poses .on(pose,callbackFxn)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To use them:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Initialize a pre-trained model:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let posenet = ml5.nameOfMethod(nameOfPreTrainedModel,callbackFxn)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Define callback function:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function callbackFxn(){
console.log('model loaded successfully')
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Use the model referenced by the variable in #1 to do something:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;poseNet.on('pose', function(results){
//do something with the results
pose1 = results;

});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;a callback function is passed to the method so that we can do something with the result/data received.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
