Monday May 8th

5/8/17 - Learnin’

TIL

I sort of didn’t have an idea of exactly what a game engine was, even though I apparently made one in Java before (whoops).

So…

  • To strengthen my understanding of C++, started on this Game Engine one for C++.

  • This is this tutorial by the Cherno. He’s pretty awesome.

  • One of things I think I defintely have ahead of people in class/school is just pure mileage. A lot of people don’t even have a Github, or if they do, it’s pretty empty, or only filled with class homework. :(

I’m trying. But a lot of it is just fun.

I was up at three trying to solve some Katas on CodeWars. I also beat the head of my hackerspace’s score. :)

github

  • I think programming’s fun, so it’s always worthwhile to learn something or build as many things as you can.

  • I want to especially get better at:

    1. C++
    2. Haskell
    3. Computational understanding in general:

    Things like Pointers, Category Theory, Type Theory, Combinatorial Logic, etc.

  1. The Scientific approach: LaTeX, being analytical and concise, thinking more than tap-tapping.
  • I think that those two languages will do something special for my ability if I keep learning them, in addition to whatever other stuff I have to learn (cough JavaScript, Python, etc).

  • Some of the best people I’ve admired in terms of ability seem to gravitate towards those. I don’t think it’s enough for me to just be a developer. I want to be a good one. So I try to keep learning, and definitely don’t shut myself off from learning a new language, trying something out, etc. Especially at this stage, it’s okay to fail.

Today’s exploration -> Building a Game Engine

In this particular one, there are neat tricks like:

  • hold alt and you can drag and select a group of objects

ge_014

ge_015

“Tricks” are important if they make you less likely to make mistakes. When you’re learning, and you don’t know them, you tend to type everything. So you find yourself making more mistakes. I’m a pretty good typist (Thanks, Mavis Beacon!), but I think about efficiency a lot.

To start, we loaded Two main libraries:

That took a while…

  • You had to link them to your folders after unzipping them. Interestingly, not as painful as Java SDKs for me.

I was surprised it all worked!

ge_001

Rendering

Then we got some Colour in there

ge_002

…and Rendering

Then we got a triangle rendered vertex by vertex

ge_003

And checked the resolution of our screen

ge_004

And then made sure our imaged scaled with the resized screen

ge_005

And tested stuff like keys, mouse press, mouse move. You can see the positions of x and y based on where the mouse is on the screen

ge_013

So that took me all day, but I learned a lot.

Conclusion

  • I like this a lot. A lot of learning, and surprisingly makes a lot of sense thus far. I feel like I always learn more from these…sometimes way more than in class. Welp!
Written on May 8, 2017