Foray Into Programming

Into the woods

My first attempt at something like “programming” (if you try really hard to see it that way), was doing AI scripting on the Crysis map editor. I’d spend hours experimenting with different buildings, enemies. There was some down time after that period, I didn’t really touch the computer, for anything other than gaming and the Internet that is.

Deeper

I don’t remember how I got into python scripting, but I’ll attribute it to my father, since he was a major influence (love you too mom, don’t worry!). I went ahead and followed any tutorial on Youtube I could find about making games with pygame. I ended up following sentdex’s pygame tutorial.

Once I finished the tutorial, I started changing the textures to convert a racing-like game into a shmup. I also added some (mine)music that changes between levels (the two different backdrops basically). Unfortunately I’ve since lost all those files. I’ve since learnt my lesson, and I keep multiple back-ups of any project.

At some point I remember my father showed me Blender and my mouth fell open with what it could do! Back in the day he did modelling with LightWave 3D in his Amiga, so I guess he had an old itch to scratch. I hastily downloaded it to my PC and started messing around with it. Besides two or three shortcuts, I didn’t learn much though.

There was another period of nothingness, until I found out about Unity3D. Again, hastily downloaded the engine to my computer, watched tutorials, so on. I only used C# to program on it, because (All arguments about how C# is much better on Unity3D than anything else, but it doesn’t matter now, I guess) it was the language the tutorials used.

Unity was a staple point in my road to programming. It taught me about OOP, how engines work on a superficial level, and many more. It wouldn’t be illogical to say that, at that point, it was the most productive work I’ve ever done. I also did some stuff in UE4, but I think that my Unity projects were significantly more impressive.

Deeper!

It was time. The most notorious language in the universe. The one that will break you. The one that’ll be the end of you. It was time for C++.

I installed Visual Studio 20… eh I don’t know, the slow one. They have a messed up naming convention anyways. The debugger is the best there ever was though. I installed it, looked up an intro series for C++, and… I couldn’t get “Hello World” to compile and run. I literally spent my noon trying to figure out why. You cannot imagine the joy that was brought to my eyes when it finally ran.

But, what is this? I have to go through a whole series on programming command-line programs to learn C++? Why? Oh, because it’s low-level or whatever. Worst marketing strategy. Thankfully, I wasn’t willing to go through the slow, painful process of doing all this. I knew that I’d quit after a while.

And this is a great time to make a point out of this. Something my father taught me that I’ll remember for the rest of my life. It was about how to get into new things. I used to think that I first had to go through all the basics to get a comprehensive grasp of the subject, and only then would I be able to enjoy doing the part that I actually like. My father taught me to dive head first into it. Yes, at some times it may feel like I’m hitting my head against a wall, but oh my god it works! I wouldn’t have ever tried all the things that now are part of my life, if not for that single piece of advice.

So I then looked up “How to make a game in C++” on google, and strangely, the first results included OpenGL. I remember following about 5 or so programming tutorials on OpenGL, maybe I’ll list them out if I ever have the time. To remind you, I didn’t understand a single thing about C++, not even the basics of C for that matter. Add up references, classes, STL to all the cruft that comes from working with C (i.e pointers), and it’s not surprising that I was constantly frustrated when I was following the tutorials.

But I was doing what I liked, which apparently was not game programming, but systems and graphics. So I persevered through all that frustration and continued hitting my head against the OpenGL and C++ wall.

I don’t exactly remember when, but at some point, everything started “clicking”. You know that feeling when you realise that you can rationalize about something, like it is the only logical thing that could happen? Well that happened. I don’t know when, how or what lead me to it, but after some time, things just started making sense. It was exhilarating. Looking back, it doesn’t seem much, but at that time, it meant the world to me.

Of course, this is not the whole story, I had run-ins with many different development tools; besides Unity, there was also Construct 2. Construct 2 has a special place in my lifetime; So I’ll be posting about it from time to time.

After some time, working with C++ and OpenGL, attempting to create a “Game Engine” (if you could even say that), I messed around with several other stuff. Not just in C++! There was also love.

Now, I’m working on several stuff, whenever I have the time, so expect more posts on… eh, I don’t know, whenever I feel like I need to say something significant. Blog entries will be more specific on topics in terms of my experiences, so watch out for them! I mean, if you want to; I don’t know why I even started writing this page. I’d delete it, but… It took some time to write all of those words, so I guess I’ll keep it.