<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>JBullrich</title>
    <description>My site for game development</description>
    <link>https://bullrich.github.io/GameDev/</link>
    <atom:link href="https://bullrich.github.io/GameDev//feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Sun, 17 Sep 2017 05:55:23 +0000</pubDate>
    <lastBuildDate>Sun, 17 Sep 2017 05:55:23 +0000</lastBuildDate>
    <generator>Jekyll v3.5.2</generator>
    
      <item>
        <title>An Ode to Tachanka</title>
        <description>&lt;p&gt;The lighter’s fire lit up the protection of his helmet, the metal was worn and dirty, stained with his own blood, and in the small opening in the helmet, you could see his blue and tired eyes.&lt;/p&gt;

&lt;p&gt;He took off the helm as he lighted a cigar between his lips. He took a good puff from the cigar and leaned against the remains of what used to be a wall.&lt;/p&gt;

&lt;p&gt;Too much war can tire even an old dog. But Tachanka is not old nor a dog. He is Russian. And there is nothing stronger in the war than a Russian.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you aren’t russian, you die by a russian.&lt;/em&gt; — It’s an old saying that runs on the battlefield. And there is no one more Russian than Tachanka, blonde as the gold, tall as a mountain and robust as a bull.&lt;/p&gt;

&lt;p&gt;His weapon has the largest caliber there is, his bullets cannot be stopped, the dead stacking around Tachanka are proof of this, but his armor can be traversed.&lt;/p&gt;

&lt;p&gt;— They hit us hard, comrade, but it is not over yet. Are you ready for the next wave?&lt;/p&gt;

&lt;p&gt;— Doc, old wolf, how long have you been standing there? Can’t you see I’m dying?&lt;/p&gt;

&lt;p&gt;Doc, the doctor of the squadron, a man whose precaution makes him an angel on the battlefield, was beside a door’s frame without walls, laughing.&lt;/p&gt;

&lt;p&gt;Tachanka, the Russian, had five bullets inside of him. His weapon offers the best offensive possible, but it cannot take care of his rear, and that gave enough time for a German to empty a blast of bullets in his back. The wounds were making him lose a lot of blood.&lt;/p&gt;

&lt;p&gt;— I have seen, at least, as many men die as the amount you killed. Believe me, the legend is not dying. I think that even if I tried I wouldn’t be able to kill you.&lt;/p&gt;

&lt;p&gt;With a little help Tachanka got up, closed the helmet’s defense and loaded his shotgun.&lt;/p&gt;

&lt;p&gt;Hundreds of enemies were trying to enter through what was left of the door and only five worn men would stop them.&lt;/p&gt;

&lt;p&gt;And one of those men is a Russian whose legend precedes his bullets, a Russian so hard to kill that people think he is a god, and no one can kill a god because no one can kill Lord Tachanka.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;There is no man stronger than the Lord, &lt;strong&gt;how could you ever buff a god?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
</description>
        <pubDate>Tue, 12 Sep 2017 00:00:00 +0000</pubDate>
        <link>https://bullrich.github.io/GameDev//blog/an-ode-to-tachanka/</link>
        <guid isPermaLink="true">https://bullrich.github.io/GameDev//blog/an-ode-to-tachanka/</guid>
        
        <category>story</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Learning Scala</title>
        <description>&lt;blockquote&gt;
  &lt;p&gt;You have to make a Rest Api in Scala using Akka HTTP.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;the-task&quot;&gt;The task&lt;/h3&gt;

&lt;p&gt;That was my task. I had to program a Rest Api (I kind of knew what a Rest Api was but I never made one, I’m a OOProgramer, and mainly use Unity, so server and stuff isn’t my field), with Scala, a language I never heard anything before using the framework Akka HTTP(something that I didn’t even have a clue of what it was).&lt;/p&gt;

&lt;p&gt;When you are giving a task like this, it’s a difficult path, but it’s way better than having to debug and fix common bugs, you are given the chance of learn, while you’re being paid.&lt;/p&gt;

&lt;p&gt;I started easy with Scala, I checked out a tutorial online, given by a big German engineer. He seemed as a brilliant engineer, but he wasn’t so good at teaching, so I got lost in the middle.&lt;/p&gt;

&lt;p&gt;Later on I learned that this German engineer was in fact &lt;a href=&quot;https://en.wikipedia.org/wiki/Martin_Odersky&quot;&gt;Martin Odersky&lt;/a&gt;, the designer of the Scala language.&lt;/p&gt;

&lt;h3 id=&quot;discovering-scala&quot;&gt;Discovering Scala&lt;/h3&gt;

&lt;p&gt;Scala provided a lot of fun stuff, which I hated at the beginning. It’s more of a functional language, so there is a big chunk of differences with every object oriented programming language.&lt;/p&gt;

&lt;p&gt;What blew my mind was Scala’s syntax, it can be a copy of C#’s syntax or it can be something completely different.&lt;/p&gt;

&lt;p&gt;For example, Scala’s syntax has several rules which allow to not use dot. In fact, in Scala you don’t need a semi colon to declare a line end, simply go to a new line.&lt;/p&gt;

&lt;p&gt;And &lt;strong&gt;every method returns something&lt;/strong&gt; in Scala, there are no void methods.&lt;/p&gt;

&lt;p&gt;Let me show you:&lt;/p&gt;

&lt;p&gt;Let’s say we have a string called &lt;code class=&quot;highlighter-rouge&quot;&gt;ExampleString&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&quot;language-csharp highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;
&lt;span class=&quot;k&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;nf&quot;&gt;AddATwoToAString&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;givenString&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;kt&quot;&gt;int&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ble&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;m&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// We declare a int
&lt;/span&gt;    &lt;span class=&quot;kt&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bleString&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ble&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;nf&quot;&gt;toString&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;();&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// We transform that int into a string
&lt;/span&gt;    &lt;span class=&quot;kt&quot;&gt;string&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;newString&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;givenString&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bleString&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// We make a new string from those two
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;newString&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// We return that string
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;This is a generic method in C#. To call this method we should do something like: &lt;code class=&quot;highlighter-rouge&quot;&gt;AddATwoToAString(ExampleString);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Now let’s write it in Scala.&lt;/p&gt;

&lt;div class=&quot;language-scala highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;AddATwoToAString&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;givenString&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;={&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ble&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;Int&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;
    &lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bleString&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;kt&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;ble&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;toString&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// We transform that int into a string
&lt;/span&gt;    &lt;span class=&quot;k&quot;&gt;val&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;newString&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;givenString&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;bleString&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// We make a new string from those two
&lt;/span&gt;    &lt;span class=&quot;n&quot;&gt;newString&lt;/span&gt; &lt;span class=&quot;c1&quot;&gt;// We return that string
&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;If you want to call this method you can simply type: &lt;code class=&quot;highlighter-rouge&quot;&gt;AddATwoToAString ExampleString&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;That’s it. Not dots, nor parenthesis. If you have a method that accept only one parameter, there is no need to add the parameter between parenthesis, you can write it after a space. And if you have a method that doesn’t accept parameters there is no need to call the parenthesis, you can simply type &lt;code class=&quot;highlighter-rouge&quot;&gt;AddATwoToAString&lt;/code&gt; instead of &lt;code class=&quot;highlighter-rouge&quot;&gt;AddATwoToAString();&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can also remove the brackets if the method doesn’t have to many logic inside. For example, the method could be as following and give the same result&lt;/p&gt;

&lt;div class=&quot;language-scala highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;k&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;nc&quot;&gt;AddATwoToAString&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;n&quot;&gt;givenString&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;k&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kt&quot;&gt;String&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;n&quot;&gt;givenString&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;mi&quot;&gt;2&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;That is the Scala magic.&lt;/p&gt;

&lt;p&gt;I hated it in the beginning. It was horrible.&lt;/p&gt;

&lt;p&gt;And then I grew used to it. And I lost.&lt;/p&gt;

&lt;h3 id=&quot;learning-akka-http&quot;&gt;Learning Akka HTTP&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://doc.akka.io/docs/akka-http/current/scala.html&quot;&gt;Akka HTTP&lt;/a&gt; proved to be really useful. It provided a logic for routes which was really intuitive. I made all the endpoints with ease and had a server running after a couple of days of experimenting.&lt;/p&gt;

&lt;p&gt;I don’t know what else to say from Akka HTTP, but that made me remember two things, first, SBT, second, Java. Let me tell you why Scala can make magic.&lt;/p&gt;

&lt;h3 id=&quot;sbt&quot;&gt;SBT&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;http://www.scala-sbt.org/&quot;&gt;Scala Build-Tools&lt;/a&gt;, commonly called SBT, is an interactive build tool. It’s the biggest thing for working with Scala. Not only SBT brings all the Scala packages needed for compiling, it can build and manage library dependencies.&lt;/p&gt;

&lt;p&gt;SBT makes a file called build.sbt which contains all the libraries and pluggins of the project. If you are using &lt;a href=&quot;https://www.jetbrains.com/idea/&quot;&gt;IDEA&lt;/a&gt; it’s even easier. Everytime you make a change to that file it download all the new library and compile so that you can use the code auto-completion or see how the methods work from the inside.&lt;/p&gt;

&lt;p&gt;And when you finish your project and want to compile simply open the terminal, and in that directory type &lt;code class=&quot;highlighter-rouge&quot;&gt;sbt run&lt;/code&gt; and it will have your server up and running. If you don’t have any of the libraries it need it will download them before for your use! It’s really useful! I wouldn’t be able to work without it!&lt;/p&gt;

&lt;h3 id=&quot;repl&quot;&gt;REPL&lt;/h3&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Scala REPL is a tool (scala) for evaluating expressions in Scala.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Basically it’s like &lt;a href=&quot;https://jsfiddle.net/&quot;&gt;JSFiddle&lt;/a&gt;. If you want to try something but you don’t want to compile your code type in the console &lt;code class=&quot;highlighter-rouge&quot;&gt;sbt consoleQuick&lt;/code&gt; and type your code to see if your syntax/logic works. IDEA also brings it own REPL called worksheets. You can create a file and test your code methods without having to compile.&lt;/p&gt;

&lt;h3 id=&quot;java&quot;&gt;Java&lt;/h3&gt;

&lt;p&gt;Now, here we are. At the magic of Scala!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Scala source code is intended to be compiled to Java bytecode, so that the resulting executable code runs on a Java virtual machine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is the biggest advantage of Scala. Scala provides &lt;a href=&quot;https://en.wikipedia.org/wiki/Language_interoperability&quot;&gt;language interoperability&lt;/a&gt; with Java, so anything you can do in Java, you can do it in Scala.&lt;/p&gt;

&lt;p&gt;If you want to call a method from Java, you simply import that library and call that method using Scala syntax. This allows you to use the vast amount of Java libraries out there, giving you unlimited possibilities. Going from Java to Scala shouldn’t provide much of a fuss, everything you could do there, you can do here and more.&lt;/p&gt;

&lt;h2 id=&quot;wrapping-things-up&quot;&gt;Wrapping things up&lt;/h2&gt;

&lt;p&gt;So, to wrap things up, or the TL;DR&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Scala has a similar syntax with C, but can alternate with a no dots one.&lt;/li&gt;
  &lt;li&gt;Scala is compatible with Java, and can call all of it’s libraries.&lt;/li&gt;
  &lt;li&gt;SBT is the key to use Scala.&lt;/li&gt;
  &lt;li&gt;You can test your code with REPL.&lt;/li&gt;
  &lt;li&gt;Use &lt;a href=&quot;https://www.jetbrains.com/idea/&quot;&gt;IDEA&lt;/a&gt; if you are going to work with Scala.&lt;/li&gt;
  &lt;li&gt;Remember that every method in Scala must return something.&lt;/li&gt;
  &lt;li&gt;2 + 3 != 4&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Wed, 03 May 2017 00:00:00 +0000</pubDate>
        <link>https://bullrich.github.io/GameDev//blog/Learning-Scala/</link>
        <guid isPermaLink="true">https://bullrich.github.io/GameDev//blog/Learning-Scala/</guid>
        
        <category>scala</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>New Website!</title>
        <description>&lt;p&gt;I moved my website from a PhP site hosted for free in &lt;a href=&quot;www.hostinger.com&quot;&gt;Hostinger&lt;/a&gt; to a &lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; powered site on Github Pages.&lt;/p&gt;

&lt;p&gt;I discovered Jekyll some days ago, and found it amazing. It is everything I always tried to do with Php, but for static sites!&lt;/p&gt;

&lt;p&gt;Making it short, Jekyll let you build a site in parts, with a common header and footer for each site, list blog entries or similar stuff. The difference with dynamic sites is that you have to build the site and then upload it, you can’t have it made in real time, and every interaction with the site must be made from the client side, so you can’t have the server checking credentials or anything like that, is all client side.&lt;/p&gt;

&lt;p&gt;Yes, you can’t have an admin console or nothing like that, nor services used in Php like forwarding mail, changing site, using a database, but I was using wordpress for a personal blog, and, while wordpress brings a lot of flexibility, it wasn’t the flexibility I was looking for.&lt;/p&gt;

&lt;p&gt;With Jekyll I can modify any site and transform it at will, changing even the smallest line of code.&lt;/p&gt;

&lt;p&gt;I got so fond of it that I remade my whole site, with it’s 3 blogs and my portfolio, all in 4 different Jekyll powered sites.&lt;/p&gt;

&lt;p&gt;By the way, I hated my old portfolio, I had to modify a bunch of lines, divs, articles and stuff for every new item I added. Now I only have to write a Markdown file and Ta-da! It’s already added.&lt;/p&gt;

&lt;p&gt;Another thing I forgot, github pages. My free Hostinger site could receive very little visits per hour, so if an article of mine got a little popular the site would be down before 50 people could read it. This isn’t a problem with github pages, having a static site cost little to nothing to the server, who must only forward the html and it’s sub directories, making it really low cost of processing power.&lt;/p&gt;
</description>
        <pubDate>Thu, 09 Feb 2017 00:00:00 +0000</pubDate>
        <link>https://bullrich.github.io/GameDev//blog/new-website/</link>
        <guid isPermaLink="true">https://bullrich.github.io/GameDev//blog/new-website/</guid>
        
        <category>jekyll</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Got gifted Blue as a plush toy</title>
        <description>&lt;p&gt;I got Blue Square Flow logo gifted as a plush toy for my birthday. Look at it! It’s adorable!! And very plushy.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/GameDev/images/posts/blue.jpg&quot; alt=&quot;Blue&quot; /&gt;&lt;/p&gt;
</description>
        <pubDate>Tue, 15 Nov 2016 00:00:00 +0000</pubDate>
        <link>https://bullrich.github.io/GameDev//blog/i-got-blue-gifted/</link>
        <guid isPermaLink="true">https://bullrich.github.io/GameDev//blog/i-got-blue-gifted/</guid>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Today I Took and Passed the Unity Certified Developer Exam</title>
        <description>&lt;p&gt;Today, in Argentina, I was one of the first Argentinian who could take the Unity Certified Developer Exam (God, I won’t write that again, so I’ll say UCDE), literally the second, today were two exams, one at 1 pm, and the other at 3 pm. I was at the 1 pm one, and finish it second because some complications that I will address in a moment.&lt;/p&gt;

&lt;p&gt;The exam took place at the &lt;a href=&quot;http://www.uai.edu.ar/&quot;&gt;Universidad Abierta Interamericana – UAI&lt;/a&gt;, where the director of the UAI’s Game Develepment career was helping a person from Unity, who later presented himself as James, to setup everything. Fifteen minutes later they called us, asked for our IDs and our email, which James typed into a skype conversation and then hit send. We stood there waiting for another 10 minutes until James presented himself as James, and wrote down on a blackboard the url that we had to access in a sub site in Unity Certification’s site. Everything pretty normal, we were given our email as the username and a default password, that we had to change the moment that we log in. After that we waited for another five minutes until everyone had the option to open the exam in our “Courses” dashboard.&lt;/p&gt;

&lt;p&gt;We opened it, had to read a Terms &amp;amp; Agreement stuff that no one ever read so I skipped to the last part and pressed “Accept”.&lt;/p&gt;

&lt;p&gt;“50% of the course has been completed”. Neat!&lt;/p&gt;

&lt;p&gt;Now came the real part. I opened the “Course” again and it send me to the exam tutorial. A timer start, that gave me 90 minutes to answer everything. There were 3 types of questions: multiple choices, match descriptions with names, and click on a picture the part that you are asked.&lt;/p&gt;

&lt;p&gt;_NOW _ the real exam starts!&lt;/p&gt;

&lt;p&gt;The first section was all about Animation. Some tricky question, select several stuff bad explained, and match things whose name I didn’t understand with things whose descriptions I didn’t understand. Need to have 70% of the questions correctly answered, got 50%. Shrugs, bad way to start.&lt;/p&gt;

&lt;p&gt;Then came the Asset Management part. That was extremely easy. &lt;a href=&quot;https://docs.unity3d.com/Manual/AudioFiles.html&quot;&gt;What kind of audio files can Unity import&lt;/a&gt;, differentiate an empty gameobject in the inspector, find the child of X object in the hierarchy window, one multiple choice that asked how can I create a prefab, what is saved when I save a scene, etc. That part I passed with a 90%.&lt;/p&gt;

&lt;p&gt;Then came the audio. God, I don’t know anything about audio. They asked what’s the effect of the Doppler effect. I choose one answer randomly. How to make an audio source play when the object is spawned (the answer is “Play on Awake” for anyone who doesn’t know). Locate an audio file in the project window. What component modifies the audio of an audio source. I failed this one.&lt;/p&gt;

&lt;p&gt;Now the Editor Interface. Easy peasy (or however that’s written). A match window with it’s function; in which window can I find errors (console window), how to parent an object (drag an object to the object you want it to be the parent), how to reset a component (wheel in component &amp;gt; Reset), with what key does the scene window focus an object (F), how can you orbit the camera in the scene, etc. Passed it with honors.&lt;/p&gt;

&lt;p&gt;Employment Preparedness: What’s a NDA, and what’s intelectual property. You have to answer both right to pass this part.&lt;/p&gt;

&lt;p&gt;Game Art: Explain why you should use less polygons (for performance), what does the color do in games (affect mood), and one or two more things I don’t remember but answered correctly again. Got a 100% in this part.&lt;/p&gt;

&lt;p&gt;Then came Game Design. Oh god. Game design. I hate what happens in this part. One question was: What are the most common genres for mobile games, which I selected the correct answer (puzzle, board and arcade games), then press submit and…. and….. and….. THE SITE FROZE. I couldn’t click anything! AND THE CLOCK WAS STILL TICKING! I called James over who didn’t know what to do. He refreshed the page which sent me back to my dashboard where it said that I had completed 100% of the course. But I had to continue! Another guy got frozen in the same part, and then another one too. James was speaking through Skype with whoever was there, and suddenly came Carl Callewaert&lt;a href=&quot;#extra&quot;&gt;¹&lt;/a&gt;, who didn’t know what was going on. James took pics, sent them through Skype and was really nervous. This clearly wasn’t a good sign. I was waiting on my dashboard with the 100% there, no option to click, time passed, I wanted to use my phone but had to leave it on my bag for the duration of the exam. Finally Carl comes to my computer and asked what is going on, I tell him that when James refreshed the site it sent me back to the dashboard, and Carl pressed on something that didn’t look like a button, but in fact was, and allowed me to continue where I left my exam. Yes! I could answer the question this time and continue to go on. All very simple questions.&lt;/p&gt;

&lt;p&gt;Industry Awareness: Really easy. Two questions, match production phases with it’s description and what is the input on a mobile phone (Touch).&lt;/p&gt;

&lt;p&gt;Lighting. Luckily for me, I read about this just this morning, so I was prepared. What is called pre computed lights (Baked), what does light baking produce (Lightmap) and what does Lightmap do or something like that, which I answered Lightmap UVs. Identify light types by it’s shadow. Match light types with it’s emiter shape. Explain what is a culling mask. Passed this one.&lt;/p&gt;

&lt;p&gt;Now one I really hate: Materials and Effects. Had to match what type of texture would go with what kind of shader rendering(if you read &lt;a href=&quot;https://docs.unity3d.com/Manual/StandardShaderMaterialParameterRenderingMode.html&quot;&gt;this&lt;/a&gt; it will be easy), what is called the property to make particles spawn particles, with what property can you make particles change to yellow, then to orange and then to blue, what is the &lt;a href=&quot;https://docs.unity3d.com/Manual/StandardShaderMaterialParameterAlbedoColor.html&quot;&gt;albedo of a shader&lt;/a&gt; and other stuff. Passed this with the minimum needed score.&lt;/p&gt;

&lt;p&gt;Navigation and Pathfinding. Again, easy if you read the &lt;a href=&quot;https://docs.unity3d.com/Manual/class-NavMeshAgent.html&quot;&gt;guide&lt;/a&gt;. What is an obstacle, what is the max slope and how do you call the pre computing function of mapping the navigation map (again, baking).&lt;/p&gt;

&lt;p&gt;Physics. God, there were some bad asked question here. Clearly a programmer asked this questions because, as a writer, I didn’t understand several questions here.&lt;br /&gt;
Identify a sphere collider by it appearance, how can I move a collider up without moving the object, some question which the answer was OnTrigger and then was a Raycast question. There was a picture with a clock model and the question was something like “In which axis should a raycast be cast to collide with the clock: X, Y, W or Z”. I didn’t know. From where it is being cast? What’s the origin point? I called James, who, kindly, told me that it was being casted from the camera, so I could answer without any problem.&lt;br /&gt;
Some questions of rigidbodies, I don’t remember most of them. Again, I passed this part.&lt;/p&gt;

&lt;p&gt;Now the fun part! Programming &amp;lt;3. What is the purpose of methods, how can I acces a variable from another script (public, duh), for what use can I use quaternions, what is deltaTime, for what use is the awake, then there was one which asked which option of the upper toolbar should I choose to create a new script (you know, the toolbar that says “File, Edit, Assets, GameObject, Component, Window, Help”). No idea with that one; I always right click on the inspector and create a script from there. Passed all except for that one.&lt;/p&gt;

&lt;p&gt;Project Management: For what are the layers, identify Tags in the inspector, which objects have the transform component, etc.&lt;/p&gt;

&lt;p&gt;Services: A easy one. I know that most failed this one because they have never used it. What do I need to make a cloud build (a repository), how is called the service that give me data about my players, and what is the difference between a reward and a regular add.&lt;/p&gt;

&lt;p&gt;Last but not least: User Interface. Explain which type should a method be to be called from a button function (public), identify the pivot of an object, in what format should I import an Image to use it in the screen, and something else I don’t remember. Also, passed.&lt;/p&gt;

&lt;p&gt;So then, by the end, I got a 82(I think that it was 1660 points of 2000). I was second completing the exam (damn Game Design section that freezed my site). It was really really easy and EVERYTHING that they’ll ask you can be find on the &lt;a href=&quot;https://certification.unity.com/themes/certification/docs/unity-certified-developer-exam-objectives.pdf&quot;&gt;Exam Objectives pdf&lt;/a&gt;(I literally have this opened and copy some of the “Certification Objectives” for telling you some question). I recommend checking the docs before going to the exam but good luck.&lt;/p&gt;

&lt;p&gt;For people that say that the certification is useless, I recommend reading &lt;a href=&quot;https://www.reddit.com/r/Unity3D/comments/4fp2x3/last_weekend_i_took_and_passed_the_unity/d2b12hw&quot;&gt;this&lt;/a&gt; answer in a reddit post. That is the UCDE main objective. Also, it’s valid for only two years, so you have to squish all you can from it in that time.&lt;/p&gt;

&lt;p&gt;At the end, they took us a picture with James and uploaded to the UAI’s facebook page or whatever. I spoke to the career director, who tried to convince me to study there, but I’m from the competition (Escuela Da Vinci) so I rejected the kind offer, but we exchanged email addresses ’cause he told me he wanted to make a project and that he could use my help. I also tried to dissuade him to teach Unreal instead on focusing only in Unity, like I’ve been insisting in the career director of my career for a year and a half, and finally was able to start a Unreal Lab so that the teachers can learn it and teach it to the students. Now I have to insist with CryEngine for another year and a half.&lt;/p&gt;

&lt;p&gt;So you all know how this goes. If everything fails, we’ll always have GameMaker.&lt;/p&gt;

&lt;p&gt;Thanks for reading all this, I know it’s long. Kudos to you!&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&quot;extra&quot;&gt;Extra&lt;/h3&gt;
&lt;p&gt;¹Carl Callewaert is Unity’s Lead Evangelist. He is like Jesus but with Unity. He travels the world preaching and teaching about Unity, you should follow him on &lt;a href=&quot;https://twitter.com/carlunity&quot;&gt;Twitter&lt;/a&gt;, he literally tweets from a different country each week.&lt;/p&gt;
</description>
        <pubDate>Fri, 30 Sep 2016 00:00:00 +0000</pubDate>
        <link>https://bullrich.github.io/GameDev//blog/unity-certification-exam/</link>
        <guid isPermaLink="true">https://bullrich.github.io/GameDev//blog/unity-certification-exam/</guid>
        
        <category>unity</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>Easy way to create a retro platformer with Unity</title>
        <description>&lt;p&gt;I can’t say I have a writer’s block if I don’t even try writing. So here goes nothing.&lt;br /&gt;
I have been working on a platformer, my partner in this doesn’t know how to use Unity, so finding a middle point has been hard. We need to design a level in the most pixel perfect way with tiles, at the same time handle the collisions. Should I have one collider for every tile? That would clearly generate some problems in performance. Should I set big polygon colliders for each section?&lt;br /&gt;
That could bring some tedious work and any modification would be a pain in the mousse.&lt;br /&gt;
So how did I resolve the problem with making a perfect level with good collisions, easily modified and having good collisions?&lt;br /&gt;
Easy, with &lt;a href=&quot;http://www.seanba.com/tiled2unity&quot;&gt;Tiled2Unity&lt;/a&gt;. &lt;a href=&quot;http://www.mapeditor.org/&quot;&gt;Tiled &lt;/a&gt;is a generic level editor which brings a collision setting. Just like Ogmo or any level editor you used. Tiled2Unity is a software which converts that map into one or more meshes with a polygon collider for each one, simplifying everything.&lt;br /&gt;
It gives you a prefab with everything setted up. &lt;em&gt;Really marvelous.&lt;/em&gt;&lt;/p&gt;
</description>
        <pubDate>Wed, 14 Sep 2016 00:00:00 +0000</pubDate>
        <link>https://bullrich.github.io/GameDev//blog/easy-way-to-create-a-platformer/</link>
        <guid isPermaLink="true">https://bullrich.github.io/GameDev//blog/easy-way-to-create-a-platformer/</guid>
        
        <category>unity</category>
        
        
        <category>blog</category>
        
      </item>
    
      <item>
        <title>How I fought two days against an old scene</title>
        <description>&lt;p&gt;I have been fighting for a couple of days against a problem I had with a scene in Unity. First, I noticed that the game didn’t load a script when compiling for Android, then others scripts didn’t find the gameobject with said script. Then I started to debug and debug…&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/GameDev/images/posts/la_escena.jpg&quot; alt=&quot;My helpful screenshot&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I called the script from thousands of references, by it’s instance, I set objects to it, new scripts, everything but it didn’t work and it was making me mad. Something was wrong but I can’t figure it out!&lt;/p&gt;

&lt;p&gt;I always received that text in windows console when debugging that I hated so much:&lt;/p&gt;

&lt;div class=&quot;highlighter-rouge&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;Object reference not set to an instance of an object.
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;I googled and googled everywhere but I didn’t find anything. When I’m about to give up and start a new project I have an idea:&lt;/p&gt;

&lt;p&gt;If I try to quit and add the scenes again to the build settings?&lt;/p&gt;

&lt;p&gt;Conclusion: I had moved the main scene from one folder to another, and the project was compiling the old scene, not the new one, that’s why it wasn’t showing the new script. Because it didn’t exist in that scene.&lt;/p&gt;

&lt;p&gt;A simple error cost me two days of development.&lt;/p&gt;

&lt;h3 id=&quot;be-careful-with-your-scenes&quot;&gt;Be careful with your scenes!&lt;/h3&gt;
</description>
        <pubDate>Fri, 24 Jun 2016 00:00:00 +0000</pubDate>
        <link>https://bullrich.github.io/GameDev//blog/How-I-Fought-an-old-scene/</link>
        <guid isPermaLink="true">https://bullrich.github.io/GameDev//blog/How-I-Fought-an-old-scene/</guid>
        
        <category>unity</category>
        
        
        <category>blog</category>
        
      </item>
    
  </channel>
</rss>
