<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>The Blog</title>
    <link>https://blog.dirtcity.ca/</link>
    <description>Recent content on The Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Mon, 08 May 2023 15:22:24 -0600</lastBuildDate><atom:link href="https://blog.dirtcity.ca/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Adventures in Hugo, Rust, and GitHub</title>
      <link>https://blog.dirtcity.ca/post/05082023/</link>
      <pubDate>Mon, 08 May 2023 15:22:24 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/05082023/</guid>
      <description>&lt;p&gt;Launched the new site this past week after some tweaking and managing a new Hugo template. Wanted to create a splash-like launchpad page that was eye-catching and simple!&lt;/p&gt;
&lt;p&gt;Luckily, this refreshed my memory on the whole GitHub procedure. I actually enjoy the process which keeps everything in sync and available on any machine with Internet.&lt;/p&gt;
&lt;p&gt;As well, I&amp;rsquo;ve gotten a bit of Rust programming in while I can, to try and fill in some knowledge gaps and keep up with new environments. It looks like a nice piece of kit, and the syntax is pretty decent, especially since it follows a familiar C-style approach. The really nice thing is the auto-documentation and the Crate system for libraries and packages which will be neat to see and contribute to!&lt;/p&gt;
&lt;p&gt;More to come!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Updates for 2022</title>
      <link>https://blog.dirtcity.ca/post/may312022/</link>
      <pubDate>Tue, 31 May 2022 13:10:56 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/may312022/</guid>
      <description>&lt;p&gt;This is me, building a Lego set in a few hours&amp;hellip; 44MB gif!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;post/images/LapseConnect.gif&#34; alt=&#34;legolapse&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>More invasion!</title>
      <link>https://blog.dirtcity.ca/post/jan6/</link>
      <pubDate>Wed, 06 Jan 2021 17:51:26 -0700</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/jan6/</guid>
      <description>&lt;p&gt;Applying the concepts in CMPUT 174, I&amp;rsquo;ve gotten to an &amp;ldquo;alpha&amp;rdquo; version of a popular arcade game. My version, Alien Invasion, is still a work-in-progress but has basic functionality. I suppose it is the minimum-viable-product version of this sort of arcade game.&lt;/p&gt;
&lt;p&gt;I definitely enjoyed the process. There are a few features that I&amp;rsquo;d like to add if I can find some time.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Explosion graphics when an alien/building is destroyed&lt;/li&gt;
&lt;li&gt;Player-owned buildings (that must survive)&lt;/li&gt;
&lt;li&gt;Aliens that can shoot (they are implemented as flashing objects but the shooting / damage effects are not implemented yet)&lt;/li&gt;
&lt;li&gt;Turret objects that &amp;ldquo;shoot&amp;rdquo; laser pulses when a shot registers and track the position of the cursor&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think I might be able to get a few more done before the next term starts and I run out of time.&lt;/p&gt;
&lt;p&gt;Here are some lessons learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Code can be re-factored with minor hassles but variable/attributes need to be watched very closely&lt;/li&gt;
&lt;li&gt;Code organization is a mess. The placement does matter in python, because it does a first-to-last interpretation of the code as written, but methods etc. can be rearranged at will within a class, finding a decent organization of those methods is maddening&amp;hellip;&lt;/li&gt;
&lt;li&gt;Github is an interesting and useful tool to track changes. I experimented with a main and an alpha branch to track and deal with commits, and when I am satisfied I will do a merge and see what happens there.&lt;/li&gt;
&lt;li&gt;Github is one solution that I&amp;rsquo;ve decided to use for coding projects; and I use SVN for this webpage, in order to keep up with different (similar) solutions.&lt;/li&gt;
&lt;li&gt;Classes take a bit of thinking and planning during creation. The hardest part is anticipating the needs for a class; what attributes are needed? What kind of methods will handle different aspects of the class? What needs to be in an &lt;code&gt;__init__&lt;/code&gt; function and what can be external?&lt;/li&gt;
&lt;li&gt;Time expenditure total is tough to pin down but I would say an average bug-fix takes maybe an hour or two, a method takes about 3-4 hours, and setting up git, doing a web update, doing some other changes takes another hour. This includes research, checking up on built-ins or other library documentation, creating comments, playtesting and making incremental changes, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In all I would say this has taken about 5 full days of work to get to this point; which is the longest I have worked on a programming specific project so far.&lt;/p&gt;
&lt;p&gt;Here&amp;rsquo;s the MVP version, soon to be released on github!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;post/images/2021-01-06_17-42-31_Trim.gif&#34; alt=&#34;aliens MVP&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Projects and Completions</title>
      <link>https://blog.dirtcity.ca/post/jan5/</link>
      <pubDate>Tue, 05 Jan 2021 13:52:20 -0700</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/jan5/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/aliens.gif&#34; alt=&#34;aliens!&#34;&gt;&lt;/p&gt;
&lt;p&gt;This is a w.i.p. for a popular game coded in pygame and using some of the things learned in CMPUT 174 at the University.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/memory.gif&#34; alt=&#34;concentration&#34;&gt;&lt;/p&gt;
&lt;p&gt;This is the resultant &amp;ldquo;mini&amp;rdquo; project for CMPUT 174 and it was definitely a challenge and fun to attempt!&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Working with Python</title>
      <link>https://blog.dirtcity.ca/post/oct142020/</link>
      <pubDate>Wed, 14 Oct 2020 12:34:25 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/oct142020/</guid>
      <description>&lt;p&gt;Today I will finish a few projects for my CMPUT174 class. Many of the projects are requiring much more time in the lab to produce. However, they are still scoped small enough that a one person team can create the finished product. This week is the beginning of a multi-week project called &amp;ldquo;Pong&amp;rdquo;, where we replicate the original home Atari version of Pong.&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>University Bound!</title>
      <link>https://blog.dirtcity.ca/post/sept_26_2020/</link>
      <pubDate>Sat, 26 Sep 2020 14:41:40 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/sept_26_2020/</guid>
      <description>&lt;p&gt;Back to school! Using some of the knowledge gained from the Udemy coursework, I have been working on a number of projects for the CMPUT174 course: Introduction to the Foundations of Computation I.&lt;/p&gt;
&lt;p&gt;The challenges have been:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Learning Python3 (again)&lt;/li&gt;
&lt;li&gt;Trying to maintain C# knowledge and language syntax (luckily, some factors like methods and function calls are identical)&lt;/li&gt;
&lt;li&gt;Staying focused on completing project work on-time&lt;/li&gt;
&lt;li&gt;Keeping up with the Udemy coursework as well&lt;/li&gt;
&lt;li&gt;Dealing with the other classes and coursework&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So far so good. Here are some recordings of the output of two mini-projects that I have completed for the class so far.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;post/images/2020-09-24_10-10-47_Trim.gif&#34; alt=&#34;wordpuzzle&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;post/images/2020-09-26_14-48-49_Trim.gif&#34; alt=&#34;guessing game&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Today: Intersections, lines, and planes</title>
      <link>https://blog.dirtcity.ca/post/aug172020/</link>
      <pubDate>Mon, 17 Aug 2020 11:36:33 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/aug172020/</guid>
      <description>&lt;p&gt;Creating a grid of cubes in 3D space to display a representation of a parametric plane between three different 3D points.&lt;/p&gt;
&lt;p&gt;Learnings:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For loops that use an incrementing operator (+=, eg.) that also include another incrementing operator (+=) on the same variable will double-dip.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;for (int i = 0; i &amp;lt; ValueVar; i += someIncrement){
moveObjectXPos = i;
i += someIncrement; //this guy isn&amp;#39;t required because it&amp;#39;s already happening in the for loop,
//your move object will double the value of the someIncrement
}
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;In my code for this project I&amp;rsquo;m entering an int value of how many cubes square I would like the planar representation to be; I have to do a division of 1 to normalize the spacing regardless of the positions of the 3 points that are defining the plane. So this can introduce some unwanted behaviour if there are rounding issues with the int value that&amp;rsquo;s entered. (For example, a 12x12 plane is instantiating 13 cubes because 1/12 is 0.0833 repeating and I think it&amp;rsquo;s .0011111 shy of fulfilling the For-loop &amp;lt; 1 requirement so it puts one more cube which throws it over the for-loop limit. In other words, I&amp;rsquo;m not using the limitation of 12; I&amp;rsquo;m using a translation of .0833 repeating until the for-loop limit is reached.&lt;/li&gt;
&lt;li&gt;Getting more familiar with class generation: in fact, I did learn how to override an operator +/- so that the Coords class that I made can perform addition and subtraction with other Coords objects instead of always breaking down the x,y,z class members and hand-coding that part.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Off to finish the rest of this module!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;post/images/aug-17-2020.gif&#34; alt=&#34;DCDE Planar Representation&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Delayed but not discouraged</title>
      <link>https://blog.dirtcity.ca/post/aug-12-2020/</link>
      <pubDate>Wed, 12 Aug 2020 12:37:59 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/aug-12-2020/</guid>
      <description>&lt;p&gt;Just a quick update today; this application was built a few weeks ago, but the summer beckoned and I was outside enjoying nature to the fullest.&lt;/p&gt;
&lt;p&gt;The gist of this software:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Recreate the mathematics for Euclidean coordinate systems from the Holistic3D lectures, from memory&lt;/li&gt;
&lt;li&gt;Create a minimalist UI with the Panel Grid (from the course as well, helpful for setting up quick status windows)&lt;/li&gt;
&lt;li&gt;Re-draw the axis lines from a previous lesson&lt;/li&gt;
&lt;li&gt;Create the vector representation lines for each game object (using a singleton method that can be accessed by any additional gameobjects if needed)&lt;/li&gt;
&lt;li&gt;Make sure all the math works out&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Things I learned:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Have to really revisit the design patterns to ensure that I&amp;rsquo;m doing the proper structuring of my code;&lt;/li&gt;
&lt;li&gt;Need to familiarize with creating custom classes with overrides, and constructors.&lt;/li&gt;
&lt;li&gt;I did learn how to use the /// summary feature within Visual Studio to annotate functions! Very helpful.&lt;/li&gt;
&lt;li&gt;There was a caveat using the Math library vs. the Mathf library. My assumption is that Math is more accurate, because most of the variables coming out were typed as doubles. So Mathf would be the float values that I am more used to. If I used the Math lib for the inverse cosine for the theta calculation of the angle between two vectors, a result that I expected to be 180 degrees was coming out as NaN and breaking the math.&lt;/li&gt;
&lt;li&gt;Did some practice with finding pre-existing game objects using Unity&amp;rsquo;s GameObject.Find(&amp;quot;&amp;quot;) feature, which helped with redrawing the lines that connect the cubes to the origin.&lt;/li&gt;
&lt;li&gt;More practice with creating GameObjects parametrically, and assigning Unity shaders and materials to get them to render properly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This week I will be completing the course and moving on to preparation for creating my first project!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;post/images/aug-12-2020.gif&#34; alt=&#34;DCDE Vector Visualization App&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>July 16 - My First (actual) Application</title>
      <link>https://blog.dirtcity.ca/post/jul16/</link>
      <pubDate>Thu, 16 Jul 2020 14:59:35 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/jul16/</guid>
      <description>&lt;p&gt;Wow! Today was the first actual, honest-to-goodness application that had tangible results, and tangible goals, and resulted in a positive outcome!&lt;/p&gt;
&lt;dl&gt;
&lt;dt&gt;Goal:&lt;/dt&gt;
&lt;dd&gt;Import a Google calendar into the Thunderbird email/productivity app.&lt;/dd&gt;
&lt;dt&gt;Issues:&lt;/dt&gt;
&lt;dd&gt;-publicly supplied calendars in read-only-mode do not provide an iCal subscription link;&lt;/dd&gt;
&lt;dd&gt;-public iCal calendars cannot be duplicated;&lt;/dd&gt;
&lt;dd&gt;-a large amount of events;&lt;/dd&gt;
&lt;dt&gt;Process:&lt;/dt&gt;
&lt;dd&gt;-determine what possibilities exist (manual entry, picking and choosing information, etc.);&lt;/dd&gt;
&lt;dd&gt;-discovery of Google Apps and the scripting language;&lt;/dd&gt;
&lt;dd&gt;-learning a bit of syntax regarding the GS code and javascript (C# knowledge of the . and other operators was extremely similar);&lt;/dd&gt;
&lt;dd&gt;-doing a quick search on Google to see if any solutions already existed;&lt;/dd&gt;
&lt;dd&gt;-filtering the stackexchange results and other search results;&lt;/dd&gt;
&lt;dd&gt;-reading others&amp;rsquo; code entries and deciphering the variables, functions, loop statements and syntax, and formatting;&lt;/dd&gt;
&lt;dt&gt;Decisions:&lt;/dt&gt;
&lt;dd&gt;-proceed with r&amp;amp;d on Google Apps and built-in functionality;&lt;/dd&gt;
&lt;dd&gt;-create preliminary test script with Logging and error reporting;&lt;/dd&gt;
&lt;dd&gt;-test with small test batches;&lt;/dd&gt;
&lt;dd&gt;-ensure no actual data is deleted or removed by accident;&lt;/dd&gt;
&lt;dd&gt;-write and iterate on code until a positive outcome is achieved;&lt;/dd&gt;
&lt;dt&gt;Run:&lt;/dt&gt;
&lt;dd&gt;-Run the code and see what happens;&lt;/dd&gt;
&lt;dt&gt;Revise:&lt;/dt&gt;
&lt;dd&gt;-Touch ups and revisions with some tagging features (i.e., adding the date of script execution to the event description, to enable quick error discovery);&lt;/dd&gt;
&lt;dt&gt;Future:&lt;/dt&gt;
&lt;dd&gt;-look at running the script weekly or bi-weekly via a job or cron-like schedule and entering in a non-static future date based on the current date instead.&lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;The results were effective and most importantly, performed the goal with minimal time expended on implementing the functionality!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;post/images/jul16-trim.gif&#34; alt=&#34;DCDE Calendar&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>July 9 - Vectors again</title>
      <link>https://blog.dirtcity.ca/post/jul-9/</link>
      <pubDate>Thu, 09 Jul 2020 14:23:01 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/jul-9/</guid>
      <description>&lt;p&gt;Today&amp;rsquo;s learning is all about vectors.&lt;/p&gt;
&lt;p&gt;A new idea is left-handed vs. right-handed rotations: that is, how is the 3d axis oriented in the system. Unity uses a left-handed orientation; so that means: Z axis (&amp;ldquo;into the screen&amp;rdquo;) is +; Z axis (&amp;ldquo;out of the screen&amp;rdquo;) is -; Y &amp;ldquo;up&amp;rdquo; aka. forward is toward the top of the screen+; Y &amp;ldquo;down&amp;rdquo; aka reverse is toward the bottom of the screen-; and the X is standard Right +, Left -.&lt;/p&gt;
&lt;p&gt;That means that any vector cross products that return a positive Z value (in 2D land right now) are going to be pointing into the screen space, and negatives are the reverse.&lt;/p&gt;
&lt;p&gt;So far I haven&amp;rsquo;t run into many issues, because all the objects on the field are currently at the same Z axis position, so I&amp;rsquo;m eager to see if that changes if I stagger them in the editor.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/dcde-jul9.png&#34; alt=&#34;DCDE Development - Vectors and Cross Products&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>July 5 - Inspiration Day</title>
      <link>https://blog.dirtcity.ca/post/jul5/</link>
      <pubDate>Sun, 05 Jul 2020 21:47:06 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/jul5/</guid>
      <description>&lt;p&gt;Today, I&amp;rsquo;ve taken some time off to relax with Cities: Skylines, which has been idle for a bit but has offered up some fun puzzle-style gameplay. Here&amp;rsquo;s a screenshot of the city from a community-supported addon that turns your in-game city into a realistic overhead &amp;ldquo;map&amp;rdquo;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Make an organic, &amp;ldquo;semi-planned&amp;rdquo; city layout;&lt;/li&gt;
&lt;li&gt;From experience: using a layout that distinctly separates the different sectors of the city (commercial, industrial, residential)&lt;/li&gt;
&lt;li&gt;Creating a scenic &amp;ldquo;university&amp;rdquo; district (large pink square with decorative streets layout in top-right)&lt;/li&gt;
&lt;li&gt;Creating walkable park paths and &amp;ldquo;parkland&amp;rdquo; separate from the built-in park assets that offer in-game benefits&lt;/li&gt;
&lt;li&gt;From experience: planning for and respecting traffic volumes and pre-planning for necessary throughput requirements (large arterial roads that terminate in empty space)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The next plots of land will be to the north and north-west for the valuable bay-side landscapes (beaches and waterfront along the river to the west).&lt;/p&gt;
&lt;p&gt;The aquifer-fed basin/geyser fed lake provides the freshwater source for the city; it also has a great airflow for lake-bound wind turbines for clean power for the city (pink squares in the circular lake).&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/SantaVegas-crop.png&#34; alt=&#34;Cities: Skylines - SantaVegas&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>July 3 - The Tank</title>
      <link>https://blog.dirtcity.ca/post/jul-3/</link>
      <pubDate>Fri, 03 Jul 2020 15:35:59 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/jul-3/</guid>
      <description>&lt;p&gt;Finishing up the Cartesian/location module in my Udemy course, I have just a few more tweaks to make to the code to finish off this project.&lt;/p&gt;
&lt;p&gt;Lessons learned today:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;input validation in the Unity GUI can be performed in the input box UI widget (via the Unity Editor interface), or alternatively, you can do &amp;ldquo;TryParse()&amp;rdquo; static function on a string to see if it can be converted to &amp;ldquo;int&amp;rdquo;, say.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;int n;
        if (int.TryParse(amt, out n))
        {
            energyAmount = energyAmountText.GetComponent&amp;lt;Text&amp;gt;();
            energyAmount.text = amt;
        }
		//if this is true, then set energyAmount.text to the entered value amt.
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;there is a feature in the Unity loop called &amp;ldquo;Awake&amp;rdquo;, which happens on initialization of the program before the Start function runs. I will need to look into the loop a bit further but I know it is posted on the Unity site. &lt;a href=&#34;https://docs.unity3d.com/Manual/ExecutionOrder.html&#34;&gt;https://docs.unity3d.com/Manual/ExecutionOrder.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/dcde-jul3.gif&#34; alt=&#34;DCDE - The Tank&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>June 24 2020 - Creating A Custom Grid</title>
      <link>https://blog.dirtcity.ca/post/jun-24-2020/</link>
      <pubDate>Wed, 24 Jun 2020 21:25:56 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/jun-24-2020/</guid>
      <description>&lt;p&gt;Again, following along with my modules on Udemy, faced with the task of creating a unit-sized grid on the Zodiac applet. Bonus points for setting up a &amp;ldquo;major&amp;rdquo; and &amp;ldquo;minor&amp;rdquo; gridline width that is fully customizable.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;learned the hard way about trusting &amp;ldquo;While&amp;rdquo; loops vs. using good ol&amp;rsquo; For loops&lt;/li&gt;
&lt;li&gt;avoided some issues with the &amp;ldquo;|&amp;rdquo; (inclusive OR); namely, that it has some limitations on how many | can be chained together.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;All in all, a decent day and another chunk of the module complete.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/dcde-jun24-2020.gif&#34; alt=&#34;DCDE Zodiac Gridlines&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>June 23 - Zodiac completed</title>
      <link>https://blog.dirtcity.ca/post/jun23/</link>
      <pubDate>Tue, 23 Jun 2020 11:46:24 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/jun23/</guid>
      <description>&lt;p&gt;Today I completed the functionality required to &amp;ldquo;draw&amp;rdquo; the Zodiac sign on the 2d plane.&lt;/p&gt;
&lt;p&gt;Lessons learned today:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GameObjects components are what allow them to be seen in Unity hierarchy;&lt;/li&gt;
&lt;li&gt;GameObjects can be created by the static methods (i.e. LineRenderer) if you use the syntax:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;LineRenderer thisLine = gameObject.AddComponent&amp;lt;LineRenderer&amp;gt;();
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But GameObjects can also be created and then add components in this way as well:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;GameObject thisLine = new GameObject();
thisLine.AddComponent&amp;lt;LineRenderer&amp;gt;();
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;Pink results in the game window means that there is not a proper material assigned to the gameObject; in this case I had to give it a Default/Sprite material for the color I chose to appear properly.&lt;/li&gt;
&lt;li&gt;RayCasters are specific to 2d and 3d; and 3d ones don&amp;rsquo;t look at 2d ones. So my stars had to have a 3d box collider on them, the 2d collider was not being detected by the Raycast I chose.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/dcde-jun23.gif&#34; alt=&#34;DCDE Zodiac Completed&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Jun 15th - Zodiac Interface</title>
      <link>https://blog.dirtcity.ca/post/jun-15/</link>
      <pubDate>Mon, 15 Jun 2020 23:33:05 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/jun-15/</guid>
      <description>&lt;p&gt;Today, I finished the &amp;ldquo;Create&amp;rdquo; mode of the applet.&lt;/p&gt;
&lt;p&gt;Challenges:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Figuring out how to get the cursor position;&lt;/li&gt;
&lt;li&gt;Figuring out how to raycast a ray into the world from the cursor screen position;&lt;/li&gt;
&lt;li&gt;Figuring out how to avoid processing the Create method when the cursor is overtop of a GUI element;&lt;/li&gt;
&lt;li&gt;Figuring out how to instantiate a prefab object at the raycast collision position;&lt;/li&gt;
&lt;li&gt;Figuring out how to determine what can report a raycast &amp;ldquo;hit&amp;rdquo; result;&lt;/li&gt;
&lt;li&gt;Figuring out how to overlay the cursor and cursor helper icon over top of dynamic GUI elements&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;TODOS:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Name the instantiated gameobject with its x/y coordinates;&lt;/li&gt;
&lt;li&gt;Maybe add them to an array to enable undo commands;&lt;/li&gt;
&lt;li&gt;Create the &amp;ldquo;Connect&amp;rdquo; mode and draw lines between the selected stars&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here it is in action:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/dcde-jun15.gif&#34; alt=&#34;DCDE Constellation in progress&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Jun 14 - DCDE Development</title>
      <link>https://blog.dirtcity.ca/post/may-14/</link>
      <pubDate>Sun, 14 Jun 2020 15:15:55 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/may-14/</guid>
      <description>&lt;p&gt;Today, I was looking at doing a simple project which requires me to build a star-map for the constellation that represents my birth month. In my case, my zodiac of Taurus is a simple setup. However, I&amp;rsquo;ve decided to build a small applet that will allow me to click on the canvas and insert a &amp;ldquo;star&amp;rdquo; point. I am also implementing a &amp;ldquo;Connect&amp;rdquo; mode that will allow me to click certain stars, and connect them with a line.&lt;/p&gt;
&lt;p&gt;So far, the implementation is going quite well, with small glitches due to the way Unity treats new objects that appear in the hierarchy. I think there might have to be a workaround by adding a secondary canvas over the main operating canvas. I am hopeful that I can have it implemented soon!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/dcde-jun13.png&#34; alt=&#34;DCDE Constellation code&#34;&gt;&lt;/p&gt;</description>
    </item>
    
    <item>
      <title>Development Blog - Redo!</title>
      <link>https://blog.dirtcity.ca/post/third/</link>
      <pubDate>Mon, 25 May 2020 18:57:34 -0600</pubDate>
      
      <guid>https://blog.dirtcity.ca/post/third/</guid>
      <description>&lt;p&gt;I&amp;rsquo;ve taken the plunge into editing a static style website to avoid any issues that may have reared their head in the future. Considering I don&amp;rsquo;t have a full web-dev background, or a team of professionals, I have had to build this from scratch to ensure that it is mostly secure.&lt;/p&gt;
&lt;p&gt;I think that there are so many possibilities with this style of site, but for now, this template will have to do.&lt;/p&gt;
&lt;p&gt;I have really got a lot of learning to do&amp;hellip;so here&amp;rsquo;s to the first steps!&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://blog.dirtcity.ca/post/images/dcde-may25.png&#34; alt=&#34;DCDE Hugo Code&#34;&gt;&lt;/p&gt;</description>
    </item>
    
  </channel>
</rss>
