<?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>DEV Community: Esther</title>
    <description>The latest articles on DEV Community by Esther (@rehtsestudio).</description>
    <link>https://dev.to/rehtsestudio</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%2F461823%2Fd3db7cdc-8662-4402-8b49-d8ff60255f26.jpg</url>
      <title>DEV Community: Esther</title>
      <link>https://dev.to/rehtsestudio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rehtsestudio"/>
    <language>en</language>
    <item>
      <title>VR Unity Tips | May 3 2022</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Tue, 03 May 2022 14:11:13 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/vr-unity-tips-may-3-2022-1127</link>
      <guid>https://dev.to/rehtsestudio/vr-unity-tips-may-3-2022-1127</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;VR TIP #1&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Download &lt;em&gt;XR Interaction Toolkit&lt;/em&gt; On Unity 2021 LTS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Package Manager -&amp;gt; Add Package by name -&amp;gt; type com.unity.xr.interaction.toolkit -&amp;gt; Click Add&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KZKPvFqh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6f1uy4v2w2c3lnqbvdae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KZKPvFqh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6f1uy4v2w2c3lnqbvdae.png" alt="Image description" width="364" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nyhDSLah--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qokl1xkf4cscyld3yygz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nyhDSLah--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qokl1xkf4cscyld3yygz.png" alt="Image description" width="320" height="72"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;VR TIP #2&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Debugging Better On Unity Using The Oculus Quest Without Putting A Tape On The Sensor&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;By removing the sensor this will allowed you to remove your headset when using Unity and the VR input will not stop.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Download Oculus Developer Hub -&amp;gt; Device Manager -&amp;gt; Turn off Proximity Sensor&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--OLBgDLce--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hrowocismvt6b41s3jlt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--OLBgDLce--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hrowocismvt6b41s3jlt.png" alt="Image description" width="423" height="382"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SR_mVTSn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s5ilvdqsmjk2p2mucn6w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SR_mVTSn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s5ilvdqsmjk2p2mucn6w.jpg" alt="Image description" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GkmPA9Fu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1571bdujsi0sx1bu5hy3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GkmPA9Fu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1571bdujsi0sx1bu5hy3.png" alt="Image description" width="388" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>vr</category>
      <category>gamedev</category>
      <category>unity3d</category>
    </item>
    <item>
      <title>3rd Person Controller Using Cinemachine Virtual Camera On Mobile</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Thu, 02 Dec 2021 16:26:01 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/3rd-person-controller-using-cinemachine-virtual-camera-on-mobile-1224</link>
      <guid>https://dev.to/rehtsestudio/3rd-person-controller-using-cinemachine-virtual-camera-on-mobile-1224</guid>
      <description>&lt;p&gt;Going to share the approach I’m using in having a 3rd person controller using Cinemachine Virtual Camera by controlling it using mobile Input.&lt;/p&gt;

&lt;p&gt;YouTube: &lt;a href="https://youtu.be/88855QY4CXk"&gt;https://youtu.be/88855QY4CXk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/rehtse-studio/Cinemachine_MobileInput"&gt;https://github.com/rehtse-studio/Cinemachine_MobileInput&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Starter Assets — Third Person Character Controller: &lt;a href="https://assetstore.unity.com/packages/essentials/starter-assets-third-person-character-controller-196526"&gt;https://assetstore.unity.com/packages/essentials/starter-assets-third-person-character-controller-196526&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;What Do We Have On This Project?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Um2hErZo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0063ibuzn936uldib7dw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Um2hErZo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0063ibuzn936uldib7dw.png" alt="Image description" width="690" height="744"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the Hierarchy I have a the Player GameObject called &lt;em&gt;PlayerWithVirtualCamera&lt;/em&gt;, on it you will find components like the Animator, SphereCollider and a Rigidbody; it is also hold the script called _PlayerControllerWithVirtualCamera _. I also have the PlayerInput component that will allows me to use the Input Actions called VCamera3rdPersonInputActions from Unity’s New Input System.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xufNPdMK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/80zs58yd64prht38bg8c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xufNPdMK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/80zs58yd64prht38bg8c.png" alt="Image description" width="798" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The VirtualCamera_UI GameObject hold two UI Canvas: UI_Standard and UI_Mobile&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i6jDCGbM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7w2mzvufjfuf4548zd93.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i6jDCGbM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7w2mzvufjfuf4548zd93.png" alt="Image description" width="690" height="696"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;UI_Standard canvas hold the buttons to make the effect that I’m turning the Mobile Input ON or OFF.&lt;/p&gt;

&lt;p&gt;UI_Mobile canvas has the necessary UI GameObject that hold the Mobile Input logics. A UI Panel called LookTouchPanel hold the script UITouchPanel that will create the necessary value X and Y to control the camera on mobile.&lt;/p&gt;

&lt;p&gt;A UI Image called JoystickContainer has a script that create the X and Y value to move the player, the script is called UIVirtualJoystick.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RdC-NCaW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lvoj4m3isifsfzbu5f07.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RdC-NCaW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lvoj4m3isifsfzbu5f07.png" alt="Image description" width="688" height="739"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is another UI Image named RunAction that has the On-ScreenButton script from the new Input System and it will behave like a GamePad LeftTrigger establish by the Control Path.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QTOFIquI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dhidigksheblgi0srb13.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QTOFIquI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dhidigksheblgi0srb13.png" alt="Image description" width="691" height="698"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Inside the players GameObject I’m holding the Cinemachine Virtual Camera and a empty GameObject CameraTargetObject. The CameraTargetObject is the LookAt and the Follow of the CinemachineVirtualCamera that will allow me from the script to rotate; this empty game object is near the chest area of the player.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DmDZ3CSV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p4yyquzbe7p1p8drjm5w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DmDZ3CSV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p4yyquzbe7p1p8drjm5w.png" alt="Image description" width="880" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_-gg1nCN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ea5g0r6deh07sldadvge.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_-gg1nCN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ea5g0r6deh07sldadvge.png" alt="Image description" width="688" height="825"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Scripts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;PlayerControllerWithVirtualCamera&lt;/em&gt;&lt;br&gt;
On the script I have the necessary variables and reference to control my player and to get the inputs from the virtual joystick, the touch panel and from the new Input System.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4pa1SO9q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8pbpu6c3xz3ley6k8oi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4pa1SO9q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/k8pbpu6c3xz3ley6k8oi.png" alt="Image description" width="880" height="2013"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UIVirtualJoystick&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;NOTE: The logic for the Joystick was studying using Unity’s New Asset that has different mobile environment for Input&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yk8xvLwt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7jb6j34uyp786537mvlu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yk8xvLwt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7jb6j34uyp786537mvlu.png" alt="Image description" width="880" height="1551"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;UITouchPanel&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LrY7MhlN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gcl3vhxigsy0wqx8x7dn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LrY7MhlN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gcl3vhxigsy0wqx8x7dn.png" alt="Image description" width="826" height="967"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the beginning of the article you have links for the Unity project and the video from YouTube.&lt;/p&gt;

&lt;p&gt;Hope it helps.&lt;/p&gt;

&lt;p&gt;To be continued 😎&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>unity3d</category>
      <category>gamedev</category>
      <category>mobile</category>
    </item>
    <item>
      <title>A Simple Wave System On Unity</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Sun, 17 Oct 2021 16:51:52 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/a-simple-wave-system-on-unity-4o1o</link>
      <guid>https://dev.to/rehtsestudio/a-simple-wave-system-on-unity-4o1o</guid>
      <description>&lt;p&gt;GitHub [ &lt;a href="https://github.com/rehtse-studio/SimpleWaveSystem" rel="noopener noreferrer"&gt;https://github.com/rehtse-studio/SimpleWaveSystem&lt;/a&gt; ]&lt;/p&gt;

&lt;p&gt;In this short article I’m going to walk you through on how the SimpleWaveSystem project works.&lt;/p&gt;

&lt;p&gt;The Unity project is very easy to navigate; it was done using Unity 2019.4.29f and in the Hierarchy windows we have a GameObject label WaveSystem that holds the necessary GameObjects that have the scripts to control the wave and a simple UI Canvas to display some text and buttons to start and restart the wave.&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%2Fkr6hh4788gn8f8l4bazv.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%2Fkr6hh4788gn8f8l4bazv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On the project window there’s a folder named SimpleWaveSystem, this folder has all the scripts, scriptable objects and basic enemy game objects to test and make the wave system work.&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%2Frvcvopif3v3k6vze60c8.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%2Frvcvopif3v3k6vze60c8.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Scriptable Object&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The Scriptable Object named WaveSystemOS is the one that will hold the necessary information to make the waves.&lt;br&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%2Fgumac94xzu8ej3zmrxmg.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%2Fgumac94xzu8ej3zmrxmg.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The script itself has a class called WaveSetUp, inside a class we have a public int property that will hold the ID of the GameObject you want to spawn and a public GameObject property to hold your Enemy or item game object.&lt;/p&gt;

&lt;p&gt;This class is turned into an array by calling it in the WaveSystemSO that inherits from ScriptableObject. By creating this array you can control what types of items or enemies are created on a specific wave and how many. We have an int that will determine how many items or enemies are being spawned in this wave.&lt;br&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%2Ftw18c2fu21vezxrpn0gp.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%2Ftw18c2fu21vezxrpn0gp.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have in mind that regardless of how many objects you’re using on the wave if the amountToSpawnOnThisWave variable is not higher than the items, all the items will not be used.&lt;/p&gt;

&lt;p&gt;The ReturnObjectType() method will be called by the SpawnManager; the method will return the ID of the object and the SpawnManager will use this ID to call the necessary object from the PoolManager.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Managers&lt;/strong&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%2Fzjrpy1h3jmk1si9j4lk1.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%2Fzjrpy1h3jmk1si9j4lk1.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;WaveSystemManager&lt;/em&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%2Fbqmmx55inmyxbgtwoub3.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%2Fbqmmx55inmyxbgtwoub3.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This script is where you’re going to hold the reference of each wave you create. The WaveSystemManager is the one that is going to share the necessary properties to the PoolManager and to the SpawnManager. By having just one script to share this type of data you can change the wave at any giving moment and the system will still work.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;PoolManager&lt;/em&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%2Ffrjcb605nbu84f3iou9y.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%2Ffrjcb605nbu84f3iou9y.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
The PoolManager is going to create a list of the necessary objects you put on the waves; this list is put inside a Dictionary, it will use the objects ID to use it as the Key Reference to later call a specific list object. For each list the PoolManager will create 20 of each object, by doing this the SpawnManager will spawn the object of the select list. Keep in mind that you can change the pool size on the script; if you increase the spawn item on the wave and it is higher than the pool size you must increase the pool size.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;SpawnManager&lt;/em&gt;&lt;br&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%2Fu52y6a9pamzzy7trl2ys.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%2Fu52y6a9pamzzy7trl2ys.png" alt="Image description"&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%2Fw3xtbomvkkjjg8me64lm.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%2Fw3xtbomvkkjjg8me64lm.png" alt="Image description"&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%2F4kglx2vrbdogx5mme33m.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%2F4kglx2vrbdogx5mme33m.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The SpawnManager is the one that will call the object using the PoolManager and it will also control the time between each spawn object or the time between each wave. This script controls the position on where you want the object to spawn; you can change the position to your linking using the public method called ObjectPositionToSpawn().&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reminder&lt;/strong&gt;&lt;br&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%2Fmppljryyzkqlz4mzqpuw.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%2Fmppljryyzkqlz4mzqpuw.png" alt="Image description"&gt;&lt;/a&gt;&lt;br&gt;
Since the object (item, enemies, etc) are spawn using the PoolManager and can be reused; remember to turn off (SetActive(false)) the object, do not destroy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How To Create Waves?&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  1
&lt;/h1&gt;

&lt;p&gt;Right Clicking on the Project Window -&amp;gt; Create -&amp;gt; Rehtse Studio Simple Wave System -&amp;gt; Create New Wave&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%2F5urdj1a6rkh39andcmcn.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%2F5urdj1a6rkh39andcmcn.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  2
&lt;/h1&gt;

&lt;p&gt;Assets -&amp;gt; Create -&amp;gt; Rehtse Studio Simple Wave System -&amp;gt; Create New Wave&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%2F8inop2ohzohnznd12hwh.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%2F8inop2ohzohnznd12hwh.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hope you like the repo, if you see something strange or a error please let me know and you can make whatever changes you want on the code😁&lt;/p&gt;

&lt;p&gt;To be continued 😎&lt;/p&gt;

</description>
      <category>programming</category>
      <category>unity3d</category>
      <category>gamedev</category>
    </item>
    <item>
      <title>My First Technical Interview Experience</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Fri, 06 Aug 2021 12:02:25 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/my-first-technical-interview-experience-n8n</link>
      <guid>https://dev.to/rehtsestudio/my-first-technical-interview-experience-n8n</guid>
      <description>&lt;p&gt;Four weeks ago I had my first “Technical Interview” with the Tech Director from Space Ape Game.&lt;/p&gt;

&lt;p&gt;This experience was a really fun one but I was REALLY nervous 😅.&lt;br&gt;
Since my article are about game dev I think is proper to make this small article so other can see that is okay to be nervous in this process.&lt;/p&gt;

&lt;p&gt;Lets begin.&lt;/p&gt;

&lt;p&gt;What is a Technical interview?&lt;br&gt;
It will vary for positions but:&lt;br&gt;
Technical interviews are typically conducted by employers who are hiring computer science, engineering, IT or other technical professionals. Technical interviews allow interviewers to assess candidates’ technical skills, problem-solving skills and critical thinking skills.&lt;/p&gt;

&lt;p&gt;Before the interview I tried to prepared myself, I said tried because I was so nervous that I literally could not concentrate anything related to code 😂 but I did prepared myself in other ways.&lt;/p&gt;

&lt;p&gt;First, I google the one was going to interviewed me.&lt;br&gt;
Why I did that? because I had no freaking clue what a Tech Director dose in a game studio. I found out that the position actually varies by company so in a way I already had a idea that his question will be focus on the requirements for the position I am applying.&lt;/p&gt;

&lt;p&gt;I also ask for a one-on-one with another developer that has more experience and he help me with some of the question I had ( Ill share some pointers later 😁)&lt;br&gt;
The interview process went really well in my opinion.&lt;/p&gt;

&lt;p&gt;At the start he was friendly and explain the whole process, how the question are gonna be and since the interview was going to last 45 minutes he told me what the first 20 minutes where going to be and how the other 20 minutes questions were aim at.&lt;br&gt;
As you guest it, the last question were aim at programing……the question were not hard but I say that is very import to understand how everything works.&lt;/p&gt;

&lt;p&gt;I got ask question only about c#, and yes I got the famous question about the difference between a Struct and a Class😂.&lt;br&gt;
Then game the question more aim at Unity syntax and methods.&lt;br&gt;
There were stuff that I did not know and I made it clear and some stuff I have heard but I have never used.  All the time I was being me, I did express other stuff that I know that he may not ask but there where more on the side of the question.&lt;/p&gt;

&lt;p&gt;At the end of the interview I was ask if I had any question and I did ask him what was his role as a Tech Director since the position can vary and he did answer it.  I’m still waiting for the reply in how I did to see if I will go to the next phase but just wanted to share this so others can learn.&lt;/p&gt;

&lt;p&gt;Now Some Tips&lt;/p&gt;

&lt;p&gt;REVIEW YOUR WOKR AND ASK YOUR SELF WHY DID YOU APROACH IT THIS WAY&lt;br&gt;
When you know your going to be interviewed you will try to get ready but your brains have other ideas😂. If your are nervous and you tried to learn new stuff for the interview this is not a good approach, stick with your work and just review what you have already know.&lt;/p&gt;

&lt;p&gt;CHECK THE REQUIREMNT ON THE POSITION YOU APPLIED&lt;br&gt;
As game developer we think that as long as we know how to handle Unity and C# we are okay, but is more than that. Some requirement will hint you at some question your going to be ask. You may not be a master on a skill but if you know what there are referring and you share how you will approach it in a project then you have a idea on what to answered.&lt;/p&gt;

&lt;p&gt;BE YOUR SELF&lt;br&gt;
Don't lie. If you do not know the answer just answer truthfully. We are developer but we don’t have the documentation on our brains. If you do not know what there asking just say it and share in what you will do in order to find a answer.&lt;/p&gt;

&lt;p&gt;DON’T BE AFRAID TO ASK QUESTION&lt;br&gt;
When your working on games you will find out about other skill that are necessary in making game. You will try to learn it or just ask for help. By doing this you are learning some terminologies that the industry are using: Rigging, Animation, Game designer, etc. Don't be afraid to ask in how your roll will help the other member of the company or just ask what each roll do on the studio.&lt;/p&gt;

&lt;p&gt;BE GRATEFULL&lt;br&gt;
Give a thanks to the one having the interview with you for is time and for the process. Each process, if you passed or not, will help you. This will add up to your experience that you can use in other interviews.&lt;/p&gt;

&lt;p&gt;Hope this article helps out.&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED 😎&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Testing Unity WebGL Build On Your PC Before Uploading</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Thu, 22 Apr 2021 16:38:02 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/testing-unity-webgl-build-on-your-pc-before-uploading-5g0e</link>
      <guid>https://dev.to/rehtsestudio/testing-unity-webgl-build-on-your-pc-before-uploading-5g0e</guid>
      <description>&lt;p&gt;You have finished your game.&lt;/p&gt;

&lt;p&gt;You're building your WebGL game.&lt;/p&gt;

&lt;p&gt;You can’t test it on your PC but that's okay, you can just upload it to itch.io or to simmer.io and give the links to all my friends.&lt;/p&gt;

&lt;p&gt;You upload your build and when you least expect a HUGE BUG appears that you have no idea it was there.&lt;/p&gt;

&lt;p&gt;How can we avoid this?  Simple, test your WebGL on your PC.&lt;/p&gt;

&lt;p&gt;By default even if you select your index html file from the build folder you will get the following errors 👇regardless of the web browser you choose:&lt;/p&gt;

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

&lt;p&gt;By nature WebGL can only run on a hosting server like itch.io or simmer.io and to run your WebGL game we must tell our PC to act like a server.&lt;/p&gt;

&lt;p&gt;But how? Using Xampp&lt;/p&gt;

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

&lt;p&gt;Xampp is a web developer tool, in small words, that tells your PC to act like a hosting server to run web applications locally instead of testing everything from a paid services hosting; using this allows web developers to test applications before uploading, we can do the same with our WebGL game.&lt;/p&gt;

&lt;p&gt;To start you must install Xampp:&lt;/p&gt;

&lt;p&gt;Download application:&lt;br&gt;
&lt;a href="https://www.apachefriends.org/download.html"&gt;https://www.apachefriends.org/download.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you need help installing Xampp, follow this guide:&lt;br&gt;
&lt;a href="https://www.wikihow.com/Install-XAMPP-for-Windows"&gt;https://www.wikihow.com/Install-XAMPP-for-Windows&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have everything set up you must locate the folder that Xampp create called “htdocs”, in there you will put / place your WebGL build folder:&lt;/p&gt;

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

&lt;p&gt;Before testing your game you must activate Xampp and turn on Apache server:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_gB8L1h6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lbtspf05trnchf36r6gx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_gB8L1h6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lbtspf05trnchf36r6gx.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you have everything running using the web browser of your choice you will put the following on the search bar:&lt;/p&gt;

&lt;p&gt;localhost/{name of the WebGL folder build}&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JtC7Erk5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywmwabzd291i6z57mr9k.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JtC7Erk5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ywmwabzd291i6z57mr9k.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And with that you can play your WebGL game and test it before uploading.&lt;/p&gt;

&lt;p&gt;Hope this helps.&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED 😎&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>unity3d</category>
    </item>
    <item>
      <title>GameDevHQ Intensive Training Week 08 Recap Final Week 📝</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Wed, 14 Apr 2021 18:42:42 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-08-recap-final-week-3ek8</link>
      <guid>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-08-recap-final-week-3ek8</guid>
      <description>&lt;p&gt;Recap time.&lt;/p&gt;

&lt;p&gt;Yes I know that I skip week 7 😅but trying to recap Paypal experience is going to take some time BUT another developer did a EXCELLENT job explanation Paypal API and I will leave a link below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://schatzeder.medium.com/decoding-documentation-paypal-integration-in-unity-bdf1004fd0ca"&gt;https://schatzeder.medium.com/decoding-documentation-paypal-integration-in-unity-bdf1004fd0ca&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For week 7 I really enjoy the whole idea to learn to make Paypal API functional on Unity. Lots of ideas actually came during week 7 and just need to sit down and put it into practice. &lt;/p&gt;

&lt;p&gt;One thing I was clear about, thanks to week 7 Unity no longer is just a game engine for me.&lt;/p&gt;

&lt;p&gt;Week 8 started as a practice week for mockup jobs interviews and mockups game projects.  Each of the candidates were giving 2 projects in order to complete it in 48 hours. I was the following two: Game AI &amp;amp; Closest Target&lt;/p&gt;

&lt;p&gt;GAME AI&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uqeyj3S5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7d798b7pf3scsus1609x.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uqeyj3S5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7d798b7pf3scsus1609x.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was given the task to make a simple AI in which a Sphere will be rotating in a circle with 10 waypoints and the cube will be moving at random inside this drawn circle.  At first I was a little worried since to make the circle we need to use two mathf properties that i have never used, mathf.Sin() and mathf.Cos().&lt;/p&gt;

&lt;p&gt;Once I read the instructions I decided to tackle first the circle with the 10 waypoints.  &lt;/p&gt;

&lt;p&gt;First search I did was to understand what mathf.Sin() and mathf.Cos() does; I jumped straight to unity documentation. For both mathf Sin and Cos unity uses the same code example and ironically it shows how to draw from the center of your choosing a line to the end of the sin and cos calculation.&lt;/p&gt;

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

&lt;p&gt;Once I debug what was the example doing I then jump to change some value to get desire result in drawing a circle with 10 waypoint&lt;/p&gt;

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

&lt;p&gt;Doing the changes I was able to locate my 10 waypoint and store it in a Vector 3 List.  This list I will be using it to move my sphere and to draw my circle.  To move my sphere I was introduced with the concept of Seek and Steering. Seek and Steering is a Vectors math calculation that allows you to move your GameObject and make a sterling effect so it won’t snap to the next position. For this I follow I explanation in how to determine the seek depending on the velocity and the next position for the GameObject, this calculation was not writing to Unity c# but following the logic I was able to incorporate on my project.&lt;/p&gt;

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

&lt;p&gt;Another alumni of the training use the same resource / payper I used and is explanation for the Seek and Steering was to the point; Ii will paste that link below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://bjmercier.medium.com/simple-ai-behaviors-seeking-5d546c182c76"&gt;https://bjmercier.medium.com/simple-ai-behaviors-seeking-5d546c182c76&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To incorporate the cube was easy; need to use the same logic to draw a line the only thing is that is random position was using Random.insideUnitySphere, with this i am able to give him a random position inside a fake circle and he will not go further from the radius I told him to stay.&lt;/p&gt;

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

&lt;p&gt;CLOSEST TARGET&lt;/p&gt;

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

&lt;p&gt;Closest target was my second project, the title gives a pretty good idea on what I need to do. If an enemy is near to the player, dot in blue, the enemy will turn green now if another enemy is the closest to the player this will turn green and the other enemy turn back to red. The enemy and the player will move randomly in the scene using a NavMesh agent.  &lt;/p&gt;

&lt;p&gt;To light the enemy green when it was near the player I prototype 3 to 4 different ways. &lt;br&gt;
Since I alway ended up repeating some section of the code I decided to approach it using LINQ. Since all of my enemies were stored on an array, using the namespace System.LINQ, I decided to order the enemy list to the near one to the further of the player. This allows me to alway have the enemy.[0] has the near one to the player.&lt;/p&gt;

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

&lt;p&gt;This has been a wonderful experience, since this blog post is a little long will make another one for what I am doing since I finished the intensive training and my thought of the process😊&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED 😎&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Can I Also Do AR???</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Fri, 02 Apr 2021 20:55:23 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/can-i-also-do-ar-3jhh</link>
      <guid>https://dev.to/rehtsestudio/can-i-also-do-ar-3jhh</guid>
      <description>&lt;p&gt;Well well well….it seems I will be adding something new to my skill set😄&lt;/p&gt;

&lt;p&gt;Long story short…….&lt;/p&gt;

&lt;p&gt;When I started to take the intensive training from GameDevHQ we were told that we can do ANYTHING with the project as long as we completed the task of that week. Being given the permission I decided to make the project / game playable on mobile, but I wanted to take a little more step; I wanted to be able to play the game as a AR game.&lt;/p&gt;

&lt;p&gt;And that's easier said than done😅&lt;/p&gt;

&lt;p&gt;I had never programmed for AR before on unity so before thinking in making the game AR friendly I needed to start from the ground up.&lt;/p&gt;

&lt;p&gt;Getting information was easy using Unity’s documentation, the tricky part is the following:&lt;/p&gt;

&lt;p&gt;how do I approach AR on unity?&lt;/p&gt;

&lt;p&gt;Why do I ask the question? Simple, there's different ways you can approach AR on unity and I will name just 2 since dose will be the ones I will be focusing on.&lt;/p&gt;

&lt;p&gt;To make AR application / games on Unity you can use: Vuforia or AR Foundation&lt;/p&gt;

&lt;p&gt;Vuforia is a plug in / package outside of Unity that you can add to and to your project and automatically has tools you can use to work on your AR application. You can go to Vuforia web site and see the documentation to set Unity to work with Vuforia and see the extra features. Some of the features are: image tracking, object tracking, etc. It is a nice tool.&lt;/p&gt;

&lt;p&gt;AR Foundation is the build package that Unity provides with EVERYTHING you need to do AR application regardless of the devices you will use. Now, if I am not mistaken, AR Foundation is friendly for Android and iOS but iOS has another set of programs that you need to download since you can also use Unity MARS that only works for iOS.&lt;/p&gt;

&lt;p&gt;Now finding out that I have different ways to approach AR I need to test, on a small scale, both Vuforia and AR Foundation and decide which will be the main tool I will use in my path to become an AR developer.&lt;/p&gt;

&lt;p&gt;I started with Vuforia and in an instance I noticed some negative stuff that I did not like.&lt;/p&gt;

&lt;p&gt;I started with Vuforia because part of the courses that GameDevHQ provides there's a course focused on making mobile applications using Unity and in one section it is shown how to make an AR application with image targeting using Vuforia.&lt;/p&gt;

&lt;p&gt;I saw just the necessary videos to have an idea how to integrate the AR camera to use image targeting and to run a simple asset animation. Where I found the negative stuff was when I decided to make my own Image targets.&lt;/p&gt;

&lt;p&gt;Vuforia already gives you images you can use to test out the application but you need to print out the images in order to test it. At the moment I was using Vuforia I was lacking on color ink so i decided to just make my own image, black and white, and use that for testing; that's when i nocete the flaw / negative of Vuforia.&lt;/p&gt;

&lt;p&gt;When you go to Vuforia Documentation it tells you the steps to make your own image target and this involve to make a developers account with them; once you have this account you need to create a key, this key will be attach to your application / game and then you can create your database of image targeting. &lt;/p&gt;

&lt;p&gt;Doing this I notice that Vuforia has a limit in how you can use your key since Vuforia is not a fully free system, it all depends on how you use your application / game and how it communicates to Vuforia servers. &lt;/p&gt;

&lt;p&gt;Creating image targets at first was easy but that's when you notice the hiccups.  &lt;/p&gt;

&lt;p&gt;Since i am not a artist / graphic designer it seems Vuforias ask for specific details that your images must have to be able to be accepted as a target image, even if you try to use your image and you see it on unity it will not work since Vuforia database did not give the OKAY. I created my image following the same pixel size as the example Vuforia images but it seems i was missing something because it did not work and did not pass the OKAY test.&lt;/p&gt;

&lt;p&gt;As a last resort i ended up using Vuforia images but using my phone to show the images on the camera and test my application.&lt;/p&gt;

&lt;p&gt;I may be going hard on Vuforia since I don't see a specific detailed documentation on how to fill the target images fields to make my original images as target images. I will give it another go but I also found out that there's a limit on what you can do if your developer account is free, so I need to dig more on this.&lt;/p&gt;

&lt;p&gt;The next step will be to test out AR Foundation since it is part of unity and all features are Free but i will test it out once i am finished with Vuforia.&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED 😎&lt;/p&gt;

</description>
    </item>
    <item>
      <title>GameDevHQ Intensive Training Week 06 Recap 📝</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Fri, 02 Apr 2021 19:33:19 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-06-recap-48fp</link>
      <guid>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-06-recap-48fp</guid>
      <description>&lt;p&gt;My apologies for the late post😁.&lt;/p&gt;

&lt;p&gt;Like always, thanks to this training, week 6 was a really nice learning experience.  The main focus for week 6 was to create our own custom editor windows for our game project.&lt;/p&gt;

&lt;p&gt;Custom editor windows are its own rabbit whole. I was able to learn that there two types of custom editors you can make on unity:&lt;/p&gt;

&lt;p&gt;Editors Windows &lt;/p&gt;

&lt;p&gt;Editors inspectors&lt;/p&gt;

&lt;p&gt;Both of them you can do a lot, will give a brief explanation on what is the difference and then will share on the one I made 😉&lt;/p&gt;

&lt;p&gt;EDITORS WINDOWS &lt;br&gt;
Custom editors windows are tools you create to make workflow related tasks simple for all those that are working on a project.  These are projected with a unity window that you can access on unity’s window bar.&lt;/p&gt;

&lt;p&gt;EDITORS INSPECTORS &lt;br&gt;
This custom inspector editor resembles the inspector window that appears when you select a game object from the editor scene. But you have the opportunity to make your own and add fields that are not available with the default inspectors.&lt;/p&gt;

&lt;p&gt;The custom editor that I created was an editor window that allowed a game tester to play the game without interacting with the game itself.&lt;/p&gt;

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

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1mZX5b7mEy9ALaCQhhMxbim6rUclOSuxI/view?usp=sharing"&gt;https://drive.google.com/file/d/1mZX5b7mEy9ALaCQhhMxbim6rUclOSuxI/view?usp=sharing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was able to show how many bases / spots there are on the game and it will automatically fill if you add more bases / spots to the game itself.&lt;/p&gt;

&lt;p&gt;Once you hit play on the editor more options appear that will allow you to start the game, pause, fast forward and play it at normal speed.&lt;/p&gt;

&lt;p&gt;You can select the weapon you want to place and then you can select the base you want the weapon to be. Once the weapon is on the spot you can upgrade the weapon or dismantle it.&lt;/p&gt;

&lt;p&gt;When I started to make this custom editor there was a point that I had doubt on myself since I was not clear how to communicate with my scripts; once you learn that is mostly the same way you do it when creating the game and communicating with your script with a simple GetComponent or GameObject.Find then everything start to make sense.&lt;/p&gt;

&lt;p&gt;Working with GUI.Layout was a bit confusing; in order to actually make sense in how to use it I decided to look at it like when you're making a website. If you're working with a website and you're using HTML and bootstrap you need to put everything in a proper order to make it work and especially when you want to make a so called layout group that they will react at the same time with a command.&lt;/p&gt;

&lt;p&gt;There's still a lot of stuff you can do:&lt;br&gt;
Change the color of the text&lt;br&gt;
Add a pictures&lt;br&gt;
Add a banner&lt;br&gt;
Etc&lt;/p&gt;

&lt;p&gt;Custom editors tool is really something else you can make a profit out of. In one of the calls with my instructor he told me that in game dev studios sometimes they ask for specific developers that only focus on tool making and that is actually cool.&lt;/p&gt;

&lt;p&gt;Week 6 opened my mind to another side of Unity that I thought I was not going to learn it but once you take it step by step you see a lot of possibilities 🤩.&lt;/p&gt;

&lt;p&gt;Next up is week 7&lt;/p&gt;

&lt;p&gt;Week 7 post will be a long one😄&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED 😎&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>unity3d</category>
      <category>mobile</category>
    </item>
    <item>
      <title>GameDevHQ Intensive Training Week 05 Recap 📝</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Mon, 22 Mar 2021 13:40:27 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-05-recap-1c9e</link>
      <guid>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-05-recap-1c9e</guid>
      <description>&lt;p&gt;Week 5 of the intensive training has come to an end.&lt;/p&gt;

&lt;p&gt;Week 5 Video Recap:&lt;br&gt;
&lt;a href="https://www.youtube.com/watch?v=_SBh5lJklFM"&gt;https://www.youtube.com/watch?v=_SBh5lJklFM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week 5 felt more like a breather; the tasks were more to give the final details of the UI to interact with our project and to give the enemy a health bar on top of them.  I already had half of the tasks done in the prior weeks which involve the UI to display the WarFund the player has and the player lifes. &lt;/p&gt;

&lt;p&gt;The new task for me was to add functionality to the Play, Fast Forward and Pause button UI and to change the Color of the UI depending on the health of the player.&lt;/p&gt;

&lt;p&gt;Play, Fast, Forward&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aauF6pyu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2aoi5cx4fv3hxu0wyt2q.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aauF6pyu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2aoi5cx4fv3hxu0wyt2q.gif" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This task took me about 15 to 20 minutes to implement. In order to have the “effect” of a pause or the fast forward event you need to use Time.timeScale:&lt;/p&gt;

&lt;p&gt;Time.timeScale = 0 meant to put a pause to the game / project. This will not affect the sound / music you have on your game.&lt;/p&gt;

&lt;p&gt;Time.timeScale = 1 is how normally your game / project runs on the editor and has a standalone build.&lt;/p&gt;

&lt;p&gt;Time.timeScale = 2 this will give the effect of a fast forward on your game. It will behave normally with the logic of the game but with 2x speed.&lt;/p&gt;

&lt;p&gt;Color Change Overlay&lt;/p&gt;

&lt;p&gt;Additional to have a text to display the life of the player we also change the color of the UI depending how much life the player has:&lt;/p&gt;

&lt;p&gt;Above 60 life : UI is Blue / Cyan&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3piLyrs9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jplej51u20djw07so63g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3piLyrs9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jplej51u20djw07so63g.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Above 20 life : UI is Yellow&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WmxjT4fJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4q43taks58qf7xjv5d9y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WmxjT4fJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4q43taks58qf7xjv5d9y.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Below 20: UI is Red&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--evCRK3VJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hv3gep638emdf6ze86b5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--evCRK3VJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hv3gep638emdf6ze86b5.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enemy Health Bar&lt;/p&gt;

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

&lt;p&gt;The health bar of the enemy was the one that took me some time to investigate. Ideally I wanted to aim in using a UI scroll bar and control the slide depending on the health of the enemy BUT I remember that one time I read that if you had multiple UI that involves to move accordingly to 3D object your performance was going to suffer; this was also acknowledged by one of the resource giving to us that using a Multiple canvas for a health UI is a BIG NO NO. So I decided to aim using a shader graph health bar.&lt;/p&gt;

&lt;p&gt;Let me remind you that the only experience I had with Shader Graph was with the dissolve effect so this in my head felt a little uff but I was willing to give it a go. Once of the resource had a example is how to do it but using Shader Graph code……..I say Nope to that 😅&lt;/p&gt;

&lt;p&gt;At first I played around with some properties and values on Shader Graph but did not get the necessary result and I knew I was close.  Another student taking the training mention he was able to do it using Shader Graph, I ask what resource he used since I thought I was missing some properties; he share a tutorial and comparing it to what I had I was missing A LOT of properties / nodes but the basic log that i had was the same, I was not that far away 😋&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devsplorer.wordpress.com/2020/05/18/creating-a-3d-progress-bar-with-shader-graph-devlog-tutorial/"&gt;https://devsplorer.wordpress.com/2020/05/18/creating-a-3d-progress-bar-with-shader-graph-devlog-tutorial/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Having that done I decide to play around with the towers Upgrade and Dismantle UI. Since I was aiming at mobile the UI placement was all over the screen and did not make sense when they pop up.&lt;/p&gt;

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

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

&lt;p&gt;So the simple thing I added was to make the UI move to where the tower where and every time I selected another tower then the other UI will close and the new one will appear.&lt;/p&gt;

&lt;p&gt;The Biggest Mistake&lt;/p&gt;

&lt;p&gt;Now during this week a notice that Unity release a new LTS version, 2020 LTS…..I upgrade to that LTS….BIG MISTAKE.&lt;/p&gt;

&lt;p&gt;The game runs normally but I am experimenting with some bugs that make no sense, one of them is the camera controller. The camera you can move with using WASD but the camera will not move and I have written the script two times to fix it and on mobile; the device simulator shows that it works but once I make a build the touch input won’t do anything.&lt;/p&gt;

&lt;p&gt;So I have some bugs to fix and the next option will be to rebuke my project using 2019 LTS and see if the new 2020 LTS is the culprit. &lt;/p&gt;

&lt;p&gt;So that was week5.&lt;/p&gt;

&lt;p&gt;Now Week 6 has started with a surprise on its own……creation of Editor Windows for Unity, something out of my comfort area but eager to learn😉&lt;/p&gt;

&lt;p&gt;Lets keep coding,&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED 😎&lt;/p&gt;

</description>
    </item>
    <item>
      <title>GameDevHQ Intensive Training Week 04 Recap 📝</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Tue, 16 Mar 2021 13:27:12 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-04-recap-a51</link>
      <guid>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-04-recap-a51</guid>
      <description>&lt;p&gt;Another week of the intensive training done and I have gain more experience 😁&lt;/p&gt;

&lt;p&gt;Let's have a small recap shall we😉.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/9yF2NiyLgnI"&gt;https://youtu.be/9yF2NiyLgnI&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Week 4's task was to focus on the Tower upgrades, UI configuration and the blending animation for the enemy; we were also diving in, first time for me, to Shader Graph.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Tower Upgrades"

The ability to select an existing tower and upgrade it
UI System Connected (Just for tower placement, upgrade, and selling)

Apply Dissolve Shader to Mechs and clean them up beautifully 
Stage Duel Gatling Gun &amp;amp; Rocket Launcher

Allow Mechs to fire at Towers as they walk by (Blend Animation)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;The upgrades configuration and UI was a pretty straight forward process.  At first I was having some issues regarding the Towers that some of them did not want to activate the UI, the instructor was kind to help and share a tip to use Scriptable Objects to store a reference to the towers information and pass the information to the UI and called the necessary info to display it. Doing this allows me to use only one UI and just change the text, need to say that the advantage of the intensive training is that I was able to learn and properly use the Event System in Unity.&lt;/p&gt;

&lt;p&gt;In the past the way I managed my UI was to always get a reference of the component from the Player or the Enemy, this require to always use GetComponent&amp;lt;&amp;gt; and have a return public method in order to share a private variable that belongs to the Player or any GameObject.&lt;/p&gt;

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

&lt;p&gt;By using Events the only job of the UI manager is to only have reference of the UI on the canvas and turn them On or Off. The UI will be listestin or calling for any event that other script will shout out; meaning if something were to happen that by mistake a GameObject is being destroyed then error about Null Reference will almost not applied since my UI is not attached to any specific GameObject. By using the button component you can also turn On or Off specific UI objects without adding to the code and everything will turn out clean.&lt;/p&gt;

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

&lt;p&gt;The part to blend the animation took me roughly a few minutes, I was already comfortable around the unity animation feature. The blending process of two animations was a breeze to implement, the part that took me a while to fix was the rotation of the enemy to look at the gun once it enters the weapon collider. &lt;/p&gt;

&lt;p&gt;Since I was not aware about the axis of the waist of the enemy had once i called the rotation the enemy was making a 360 rotation to the floor; this issue help me to alway pay attention in how the GameObject axis are being display; if you called a Vector3.forward when your z axis(blue arrow) is looking down let me tell you your going to have a lot of issue. I learned to tackle this by putting a clean parent GameObject to hold the waist of the enemy and control the rotation from this new GameObject; this also gave you a small error about the misplaced bones to the animation but you can fix it by just writing where the bones are.&lt;/p&gt;

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

&lt;p&gt;Now, for me, the Biggest baddy of the week was the Shader Graph.&lt;/p&gt;

&lt;p&gt;Shader Graph was introduced to use this week to make a dissolve effect to our enemy once it dies to make the removal of the enemy more appealing to the players eyes. My first todo list to work on Shader Graph was to actually learn how to use Shader Graph since I have NEVER used it before (you can also see my last video, i take roughly 7 minutes telling my side of my shader graph experience).&lt;/p&gt;

&lt;p&gt;At first I was feeling comfortable following the documentation but I also am aware that I need to learn A LOT of the power that Shader Graph has. I’m not an artistic person and the concept about base maps, albedo, norma map, etc is very new to me.&lt;/p&gt;

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

&lt;p&gt;Using the resource to learn how to do the dissolve effect was easy once you learned how to make your own properties on the Shader Graph and how to connect the basic nodes to the corresponding output. &lt;/p&gt;

&lt;p&gt;Where I stumbled was in HOW to use the effect. That's when i notice that once you turn your Shader Graph to a material you can not called it like a regular component on or off, you literally need to make a Shader Graph to hold the texture and property of a GameObject / model and then put the effect and called the float on the script. This took me by surprise and I was already thinking about how to do this and internally I was screaming; thanks to a past student that took the intensive training we were provided with the necessary material to actually call the effect. I took the time and examined the Shader Graph and I understand how everything works but don’t ask me to make it just yet.&lt;/p&gt;

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

&lt;p&gt;What I take from week 4 is that there's different ways to work around a problem and everything can be scary at first but once you take your time and use the documentation to have a basic understanding about something then everything will fall into place. Shader Graph has his own level in the GameDev community and by doing this I have a very deep appreciation for all VFX artists. &lt;/p&gt;

&lt;p&gt;Now part of my goal is to understand this new tool and try it to apply it in whatever I can.&lt;/p&gt;

&lt;p&gt;Week 4 is DONE, now to dive in to Week 5😎&lt;/p&gt;

&lt;p&gt;Lets keep coding,&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED 😎&lt;/p&gt;

</description>
    </item>
    <item>
      <title>GameDevHQ Intensive Training Week 03 Recap 📝🤫</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Sun, 07 Mar 2021 22:25:08 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-03-recap-1cgp</link>
      <guid>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-03-recap-1cgp</guid>
      <description>&lt;p&gt;I think posting one a week about the intensive training is the way to go🤔&lt;/p&gt;

&lt;p&gt;For a quick idea of what i did on week 3, here my latest video of week 3 recap:&lt;br&gt;
&lt;a href="https://youtu.be/juMhkbUhjJg"&gt;https://youtu.be/juMhkbUhjJg&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, let's see how week 3 went.&lt;/p&gt;

&lt;p&gt;This week we were focusing on the Attack System For Towers, this where the following task:&lt;/p&gt;

&lt;p&gt;Attack System for Towers&lt;/p&gt;

&lt;p&gt;Modify existing code base to only fire when an object becomes in range&lt;br&gt;
Fire at the first target in radius and follow it till out of range. Then attack the next.&lt;br&gt;
Sort of Queue System&lt;br&gt;
If no targets in range, do not fire&lt;br&gt;
Destroy System (cleanup) &lt;br&gt;
Damage Enemies&lt;br&gt;
Play Death Animation&lt;br&gt;
Destroy after 5 seconds or end of wave&lt;/p&gt;

&lt;p&gt;At first it seems daunting but once you put in to practice breaking each task into little pieces and using pseudo code then you will see how to tackle it…….in my case i broke it in to microscopic piece in order to work on it😅&lt;/p&gt;

&lt;p&gt;At the beginning of the week you start off seeing the Week’s kick off video that will explain / show what to use in order to work on the task, during this I learn about the Queue System.&lt;/p&gt;

&lt;p&gt;The Queue System has the logic of first in first out, for the goal of this week I thought this was the way to go; turn out it wasn't.&lt;/p&gt;

&lt;p&gt;At first, when using the Queue system, the turret actually follows the first enemy regardless how many enter the attack range; once the first enemy leaves the attack range the turret will aim to the next on the queue list.&lt;/p&gt;

&lt;p&gt;Until now everything seem to work wonderfully 👆&lt;/p&gt;

&lt;p&gt;Once my code started to complicate more when adding to remove health that's when I was getting errors of empty Queue when the system knew it was empty it still was giving eros, I got so much code that I overpopulated the onTriggerStay() method.&lt;/p&gt;

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

&lt;p&gt;Once I talked to one of the instructors I was hinted to use a List and not a Queue System; I will be lying if i say that the change was smooth.&lt;/p&gt;

&lt;p&gt;At first I made the basic implementation of the turret following the enemy and it works, but there was a point trying to work the code from scratch / starting new that gave me like a small metal block and I was not able to see how can i target the active enemy if there's a second enemy on the attack range. Thanks to the Intensive Training community help I was able to make the weapon aim at the target and stay with the first that entered the attack range and now my code looks more  clean.&lt;/p&gt;

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

&lt;p&gt;I did use A LOT of events on my code, they're soooooooooo awesome to use.&lt;/p&gt;

&lt;p&gt;The missile weapon was the one that really got me mad. He can only remove enemy health if one of its missiles hit an enemy and Saturday night that logic was working; once I started to film my video for the recap it did not want to work. I cheated my way that the missile can remove health regardless who is the active target soooooo whatever enemy the missile hit will lose life...for me that's a win…..a cheat win but it work 😄&lt;/p&gt;

&lt;p&gt;Others of my group are doing OMG AWESOME and I am really happy with what they're doing. My personal aim for this game / training is to try and make it a AR application and enjoy the process of learning how to be better at code.&lt;/p&gt;

&lt;p&gt;I know my post needs to be more descriptive on how I work around the code logic and I will work on that😉.&lt;/p&gt;

&lt;p&gt;For now let's get ready for week 4.&lt;/p&gt;

&lt;p&gt;Lets keep coding,&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED 😎&lt;/p&gt;

</description>
    </item>
    <item>
      <title>GameDevHQ Intensive Training Week 02 [Day 11] And Week 1 Recap</title>
      <dc:creator>Esther</dc:creator>
      <pubDate>Thu, 25 Feb 2021 14:33:25 +0000</pubDate>
      <link>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-02-day-11-and-week-1-recap-278l</link>
      <guid>https://dev.to/rehtsestudio/gamedevhq-intensive-training-week-02-day-11-and-week-1-recap-278l</guid>
      <description>&lt;p&gt;Oops 😶&lt;/p&gt;

&lt;p&gt;I’m so sorry for the lack of blog post 😅 ; how should I Update you guys about it?🤔&lt;/p&gt;

&lt;p&gt;If you are a more visual individual I made a small recap on my YouTube channel here 👇:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=7fnJ_X8VrlU&amp;amp;t=176s"&gt;https://www.youtube.com/watch?v=7fnJ_X8VrlU&amp;amp;t=176s&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, week 1 is done………….but there is some stuff that I’m having troubles and I know is not my fault.&lt;/p&gt;

&lt;p&gt;Early to week 1 I was able to tackle all the tasks of week 1 in less than two to three days and then play around with ideas and everything was working wonderfully, but before the group coach call on Friday, the SpawnManager and Pooling Manager stopped working. &lt;br&gt;
How can it not be my fault? Simple, the spawn manager and pooling manager works every time I rewrite the script, but they lose communication from each other at once I turn off my computer, and when I boot it up again it stops working.&lt;/p&gt;

&lt;p&gt;Our First group coaching call shows us another approach, using scriptable object, to make our SpawnManager and Pooling Manager; personally I have hear about Scriptable Object but had a hard time to visualize how there used and in this training I was able to see how valuable they can be 😍. I tried implementing the Spawn system they showed us and it worked…….for a few hours...once i turn everything off and boot everything again the scripts loses communication; so it seems is an issue with unity and I may need to recreate the whole project and implement everything little by little.&lt;/p&gt;

&lt;p&gt;NOTE: The SpawnSystem I have implemented in my project it works but it only works since the pool system and spawn are inside a single script😅. The whole point is to have everything nice and tidy.&lt;/p&gt;

&lt;p&gt;ENTERING WEEK 2&lt;/p&gt;

&lt;p&gt;Now we are in week 2 and I’m still having trouble with my spawn BUT that is not the most intriguing part of week 2…….we had a lot of material to cover before starting week 2😮.&lt;/p&gt;

&lt;p&gt;To have access to week 2 you need to see a workshop / video of TWO hours in order to have access to week 2 now you can cheat and just press complete and continue but you will be hurting yourself if you skip a video, I don’t recompense to do that. &lt;/p&gt;

&lt;p&gt;This are the task for week two:&lt;/p&gt;

&lt;p&gt;Camera Controller:&lt;br&gt;
Smoother Moving Camera&lt;br&gt;
WSAD panning Controls&lt;br&gt;
Bounds respected for the playing field&lt;br&gt;
Zoom in/out using the scroll wheel&lt;br&gt;
Use the mouse to move up, down, left, right of the screen&lt;/p&gt;

&lt;p&gt;Tower Placement:&lt;br&gt;
Pre-defined positions&lt;br&gt;
Display tower in position when hovering over an available spot&lt;br&gt;
the turret should follow your mouse when placing towers&lt;br&gt;
Red/Green Radius displaying the field of coverage &lt;br&gt;
Red = not over a predefined spot&lt;br&gt;
Green = over the available spot&lt;br&gt;
Left-click to place tower&lt;br&gt;
​​​​​​​Require warFunds&lt;br&gt;
Right-click to stop placement&lt;br&gt;
System to support multiple tower types for selection&lt;br&gt;
Can't place tower on top of an existing tower&lt;br&gt;
When placing towers, play particles at available locations&lt;/p&gt;

&lt;p&gt;I was shocked when I saw the “Tower Placement” task is longer than the one for “Camera Controller”😂&lt;/p&gt;

&lt;p&gt;So before I tackle any task for week two I sit down and got caught up with all the material / videos to start week 2; on Tuesday since got a little bit of frustrated that I could not fix the spawn i decide to relax, so i tackle the “Camera Controller” task😄.&lt;/p&gt;

&lt;p&gt;It did not take me that much time to implement the CameraBehaviour, it took me some trial and errors to identify the X and Y of the camera. &lt;/p&gt;

&lt;p&gt;The camera is already in a giving position for the project so the axis are inverted; if you move the Camera GameObject on the X it moves up and down, if you move the camera on the Z it moves left and right and the Y behaves like a zoom feature. Before the individual coaching call I decide to use the Camera GameObject transformed to move it, then I was giving a hint to have the camera inside a regular game object and move the parent game object using the normal x and z axis😂 and it is a very good tip but I like how i approach it and leave it like that. &lt;/p&gt;

&lt;p&gt;For the zoom I decide to use the Camera FieldOfView when I move down and up the mouse wheel; this once was a fun one to work with. I declare two bools to identify if the scroll wheel was going up or down; if either was true will determine the min or max of the field of view and then add or remove from the fieldOfView of the camera.&lt;/p&gt;

&lt;p&gt;The following pic will show the camera controller script.&lt;/p&gt;

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

&lt;p&gt;Now to the “Tower Placement” task……..I got scared with this one😂. Once I saw the material I BRUTE FORCE my code and the system works😋, now I have to see I can make this more modular will also wait for the coaching call to see the tips my instructor give me but I AM PROUD in how it works.&lt;/p&gt;

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

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

&lt;p&gt;Now to wait for the group coaching call on Friday and implement the tips given to use to start to mentally prepare on Sunday for week 3.&lt;/p&gt;

&lt;p&gt;Lets keep coding,&lt;/p&gt;

&lt;p&gt;TO BE CONTINUED 😎&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
