My Story

Your Story…

(The Background)

I, Bilal Cheema, am a future doctor. I am creative in nature. I have some dreams associated with myself being creative. Of all of them, the biggest is to invent something that the world had never seen before. I love stories, not to read them, but to make one myself. And then, this story-making thing evolves to something that might be called as interactive story-making which is just an idea! Fortunately, I ‘played’ some of such stories. They are called RPGs (Role Playing Games) in which you are someone and you play that someone’s story. Now, it is my dream to create an RPG! But it is far way more complex then I expected! And what? Does that mean that I failed? No! Never! I am a tuff guy for my dream invaders! And so I learned something called as programming. This is the only way that I found… to do what I want. The control over every single element of my RPG. I learned Java, then, HTML along with CSS and JavaScript, and at last, the giant C++. C++ is the most fascinating language that I have learned. But I still found things to be way more complex…

So what then…

(The Foreground)

I love nature. I like Biology and some of its aspects. The genetics and all that stuff appeals me. But I also love programming. I don’t know why but… it makes me create! Not just create, it makes me innovate! However, I learned much of that but still… where is my dream RPG? Actually, I tried up to 3 times and failed, leaving behind many lines of crappy and crippled code. I used many programs to make an RPG. Some of them includes 3D FPS Creator (A sure mistake), Yoyo Game Maker Studio (Nice), Gamesalad (Fair). They all don’t appeals me much! They are not innovative or something like that. Atleast, not for me. Then, I saw a bloom! I saw beauty in the cubes! Beauty in cubes? Some of you might have got it! Yes, I am talking about Minecraft which leads me to programming.

Minecraft?

Minecraft is a creative sandbox blocky game. You can build anything with blocks. Crappy graphics but the fun part of Minecraft is the logic creation. Minecraft is not just a game where you put blocks and build. It has two core logic creation features namely, Redstones (quite similar to electricity) and Command Blocks (put commands and run them). Creativity may looks to be a main aim of Minecraft but it has a whole deep story and survival + adventure features that you may want to know. The game has an infinite world where you can do what you want. I am not advertising Minecraft but its my favourite game. There is no age limit and variety of people from nonsense to sensible, can play it. The creativity has different complexity levels. Those who are noobs in creativity and heroes in action can play survival or adventure stuff. Those who like creativity but are not good in it, can start by putting different blocks together. Those who are atleast good in creativity and also loves electronics, will definately, love playing with redstones. Those who are good in creativity and are a kind of programmers, can go for Command blocks. Those being hardcore creative persons, can go with combination of all these things! Want Minecraft, here’s the link.


(Programmer’s story PART-I)

OK! Lets talk about me… I start playing it… First, not appealed… Later on quite fascinated… I started creativity by putting blocks together. Then, I tried Redstones and loved them too… Very late, I started to use Command Blocks. Writing single line code in it and executing it feels very innovative and fun thing! Its quite hard at start to get all things right. I have to do quite a struggle with the codes of Minecraft. Later on, it feels easy… so easy… Then, somewhere, I did read something like, “Programming is just like the codes that you type into the Minecraft’s Command Block!” The game’s graphics and every aspect of it looks like, “I can make Minecraft in atleast, a week!” These two things, made me went to Java because Minecraft is coded in Java. Ofcourse, Such thoughts came to only those people who have very little knowledge of programming. Before that situation, I always avoided programming. After that, I started to find a brilliant series of video tutorials for learning Java from scratch! I want to have an easy access to these video tutorials from my Android device. So, I somehow, ended up in getting Udemy Android App. Here, I reached my online favourite teacher’s video tutorial series on Java. His name is John Purcell. His website is here. Here, I learned Java, not all videos just halfway. If you want a tip for learning programming, here’s a golden tip: the more you do coding by yourself, the more you get it all done! From doing it by yourself, I don’t mean to get yourself frustrated on errors! The other golden tip is: the more you do googling for programming stuff, the more you get it all right (Note: not ‘done’, I said ‘right’)


(Programmer’s story PART-II)

I did the John Purcell’s Java Course only halfway. What makes me deviate from Java? Well, I did read in quite a many places something like that: “C++ is way more faster than Java and is the best choice if you want to make games.” But contrary to this, I also did read something like: “Getting C++ in your mind is something like hitting yourself with an iron hammer!” Well, actually, that makes me afraid of it and also, I realized that John Purcell is making his C++ course at that time. I preferred his course because I liked the way he gave Java video tutorials. Well, as it was not complete at that time, so I thought of learning something that is very easy. Yeah, HTML! I really liked it so much that I also learned CSS as well as JavaScript. I did it with CodeAcademy. With all these, I almost forgot to learn C++. It’s quite a time since John Purcell’s C++ course was complete and I just started this. I not only focused on that course but also, gathered some more C++ stuff from cplusplus.com.

But… where is your dream RPG?

(More dreams!)

While learning Java, I have some tiny bits of ideas to implement. Same is the case for HTML. These ideas got expansions and varieties later on, when I was doing CSS and JavaScript. Not all of them were implemented but few were implemented. With these implementations getting right, I got more ideas and some of these brightest and possible ideas gradually turned into tiny dreams! C++ multiplied them by 2! That time also came onto me when I struggled to make a console RPG and failed not just one but three times realizing few things that I should have realized before… Whatever, the case is, after just getting through arrays and functions in C++, I just planned to make a Platformer that runs on Console in C++… I got issues and StackOverflow (a question/answer website for programmers) helped me there. It takes so much time but it really satisfies one of my tiny dreams. Basically, I call the console game ,“Console Platformer”, a game concept because it made me understand the process of game development. Interestingly, I did it all in my Android device using an App called as C4Droid which is an excellent C++ IDE on Google Play. This game is made without pointers, references or any memory thing, no data structures or classes, just arrays and functions! I avoided pointers for quite a time but later on, I also did learn them very well. Then, I wished to enter graphics in C++. And, I found SDL v2 (Simple DirectMedia Layer) which is also supported by C4Droid through their SDL plugin. I learned SDL here. I just did first 6 of them and then, did them randomly, when needed. Whatever, I needed, I just use the SDL wiki to get that thing. Then, I made another game which is the clone of the old block breaking, BlastThru and called it, BlastThru (same name… hehe…). Why I made it? This is because I played that game so much in my early days, on my very old PC. It is my first “colourful” game. Then, there are many small projects which are just the implementations of my ever increasing ideas. I call them Prototypes. And all these tiny dreams are the hinderance to my big dream RPG…

What’s your problem?

(The Reality)

OK! Lets say that I started to make an RPG… I hard coded some of the setup codes and managed the libraries, etc… Now, I need right kind of art! From art, I mean Sprites (images or textures) and SpritesSheets (which are just collections of many Sprites to animate). And that is of the very fine and right kind! I need to hire some animator which I couldn’t do as a student of medicine. I need to interpret ideas with that hired animator so that I can get the right kind of art. One may suggest the whole of internet for getting art but… is that your cheap dream? Really, I mean… are your ideas already present in that global village. Apart, from Sprites, we need composers and musicians! Right kind of music, right kind of sound effects, right kind of GUI. OK… this is what a programmer can’t do. But there are many things that an average programmer can’t do as compare to an expert programmer. Handling 2D lighting using shaders, pathfinding AI and some tuff algorithms’ implementations can’t be done right by even a fine programmer! At the end…


There is always so much to learn and you should always be the one who wants to learn more! This is a universal fact for all kinds of education! If you consider yourself perfect in knowledge of something, you are definately, not perfect!


–+ Conclusion +–

My story is mine… You could have or will have a better story than that of mine. My story, though looks small but it is just more than 3 years in my life. But I never feel wrong about it… This is the magic of learning! You learn and you should not feel bad about learning. Apart from that, miracles are always a chance of which everyone should have hope about. Dreams are to be fulfilled. Never be hopeless…

Feel free to ask for help and I might also, be wanting some help from you as well, as I am still learning.
Advertisements

4 thoughts on “My Story

  1. Sir, I have seen your marvelous talent and I am amazed by your programming skills at such level. You have established your name and fame within a competitive society and such a great talent is indeed great for the company that mark their second name as innovation and motivation. Please keep it doing what you are doing and keep up the good work!

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s