My History with Cell Phones

The first smart phone I ever got was a android. It was a small thick brick from HTC, that did everything that I could ever want. Then after awhile I decided to switch carriers, which lead me to experience one of the first windows phones, it was a Nokia Lumia 920. And after that I moved on to a number of different BLU phones. The BLU phones that I bought were nice, but I kept up grading every 8 months to half a year.

As you can see I am a pretty fickle person, I am always looking for the next cool new thing. And last year I spent the most I had ever spent on a phone up until that point, and bought a Asus Zen Phone. It was the best android phone I had ever had in my life. It was super fast, responsive, reliable, and had great battery life.

Things were going well with the phone for a while there, and for a reason I can’t remember to this day I ordered an iPhone.  I bought a used 6s which I kept for a few weeks, until I realized that I needed more storage. At which point I returned it and bought another 6s with more storage. And then I realized the battery life wasn’t good enough for me. So I went ahead and dropped 1300 dollars on a brand new iPhone 7 Plus with 128 GB of storage.

I am not sure why I bought a iPhone. I think its because I wanted to make apps for it, and wanted that brand name 🤩 After having it for a few months I found the experience to be very very alright, nothing insanely special. I still have the iPhone and don’t plan to upgrade it for a long long long time.

I kinda regretted buying it for a few months until I started to mess with iOS’s new features, ML and AR. Both of which are interesting to play with, but as you can see from the app store it not like every other app out there has AR or ML in it.

I need to make a game even more now

As detailed in my last post. I tend to waste money on things that I don’t really need. And I spend it on things that most people would never even think of. These days I am getting more and more into game development, so much so I watch presentations from different GDCs in my free time.

My game engine of choose is Unity, and as you may or may not know it has a thriving online market place that sells everything from art to scripts for your game. And I went extremely overboard enough to buy a new iPhone. I guess now I have too make a few kickass games using Unity.

That Time I Wasted Money

I waste a lot of money. As kid I never really had the things that other kids had, and my parents refused to buy me them. So as a young adult making a reasonable amount of money, I bought myself a number of things on a whim, like a GTX 1080 TI 😍.

I tend to spend money on things that I want to get into, like building your own computer, getting started with iOS development, or using a new piece of software.

I don’t spend money on much, I live like a monk. When I do spend money its on things that are some what nerdy, and I spend a lot.

Building a Game

So are you may know, I like to start a lot of new things. As can be seen from my previous posts. And this time I have started a journey into game development. If I told this to a person such as myself, they would ask the following:

  • So what’s the concept ? What type of game will it be ?
  • Got no idea.
  • So what you using to make it ? You making it from scratch ?
  • The answer is, I am going to use Unity. And I would rather get cancer then deal with the complexity of building your own rendering pipe line, and dealing with that much math.
  • What why are you doing this ? You know your not going to make a hit right ? You have soo much competition in both the desktop and mobile market place. Plus your an one man team, you can’t draw to save your life !
  • Yeah I know the odds are more than against me. I am making it cause I like video games. I have always wanted to make them since I first played them. I think most individuals who play video games, want to make them. However they never get around to it, and aren’t willing to take on the time commitment. So this me pursuing a childhood dream.

Plus I just realized that I have spent around 500 dollars Canadian on a number assets on the asset store 🤦‍♂️. So I guess I have to make something with then right ? 😬

Unreal 4 VS Unity

Over the last decade Unity has become the game engine of choose for a good chuck of game developer out there. This is due to many factors, the main factor being that it was designed as a product first. Whereas a number of other engines where brought into existence to make a game. In my opinion this is the key difference between the two engines.

Unreal was originally developed to facilitate the creation of one the most beloved FPS of all time “Unreal Tournament”. Unreal Tournament was designed to be a fast paced shooter, with high graphical fidelity and high performance networking. These things are the key features of the Unreal engine, which is why the engine has the cons and pros that it does.

In Unity’s case it was designed to be nothing but a game engine that would not limit game developers in what they could do, and eliminate the many bottle necks in the game development life cycle. It is simply a product built to make any game, not a particular game.

The differences between the two are seen in the usability of either one the engines. This is most prevalent in the languages that they use. Unity uses C# (aka Microsoft’s Java) whereas Unreal uses C++. For beginners and even intermediate programmers writing effective C++ code it very difficult. Since there is no memory abstraction layer and the syntax is not as initiative to understand. Another point of difference can also be see in the minimum computer specifications needed to effectively use the engines. Unity for the most part does not require much, it could probably run on a potato. Whereas Unreal requires a quad core (i7 preferably), 8GB of Ram (preferably more), and good video card (preferably anything greater then a GTX1060) .

The differences highlighted above also explain where the two engines are usually used. After a while Epic Games started to licences out their engine. The licences were very expensive so naturally the only people that bought it were other game studios, who then made AAA games. Unity on the other hand had a free tier and inexpensive (comparatively speaking)  which lead a lot of indie developers to adopt Unity. Indie developers are usually tiny teams working on shoe string budgets. And they are usually content with their profits if it is just enough to make another game.

The biggest difference has to be the community of either game engine. Unity has one the largest and helpful communities out there. There are a ton of forums, blogs, books, and video tutorials out there on Unity. And then there is the asset store, a market place that allows developers to sell anything and everything one would need to make a game, wither it be art work, scripts, or even music the asset store has it all. The Unreal engine has something simpler however it is  not as robust as  the Unity asset store.

It is in my opinion that if you want to make video games you should use what make your feel comfortable. If your a experienced C++ developer looking to code games and have a few art friends to make high rez 3D models, and you want this to be a PC only game choose Unreal. If your a one man developer that has some coding experience choose Unity.



WTF is a Protocol ?

This part of the Swift language is pretty simple to explain. A “Protocol” is what is called a “Interface” in most of the other languages out there. It is basically a set of rules that your struct, class, or enum has to conform to.

You maybe asking your self “why would I ever need this weird construct ? I know whats what. I don’t need these things if I am doing it all myself. ” Well thing is that it keeps you honest, and it keeps you on track.

More importantly it opens the door to things like delegates. More on this in my next blog post.

WTF is an Optional ?

Long story short, it helps you with the turning nothingness into somethingness, or at least simulates a sort of nothingness.

In most languages out there like C#, if a variable does not get initialized with a value or is not set to any value, it’s value is “null”. Knowing this, you can go about your life as programmer knowing that you just have to check if that variable is null before using it, and your good 😎

However with Swift that is simply not the case.  That is due to the fact that the Swift language does not allow variables to be “null” (In Swift its “nil”) at runtime. It believes that every variable has to have some sort of value. To combat this Optionals came into existence. What Optionals do when Swift asks them if a variable is “nil’, is reply with a “maybe, who knows” and Swift moves on.

Literally speaking here Optionals are just a offshoot of your standard variable that may or may not contain a value. This way your never left wonder why something didn’t have a value, when you thought it would.

Heres a coding example shown below: