Bold Aesthetic Creative Games

An Indie Game Studio Developing Bold, Aesthetic & Creative Video Games

Bilal’s Immature Story

UPDATE: A lot of things have changed. Some of my perceptions and ideas have evolved during this time period. But the facts below are facts. Other than that, I would like to say that the story is kinda outdated.

Your Story…

I, Bilal Cheema, am a game developer. 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 programming. This is the only way that I found to do what I want. 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…

(Back-story)

There is this thing that I like to create stuff. Stories, drawings or just ideas like how can I make a magnet float over the other. My bro and I used to play a lot of video games. But out of all the videos games, I liked RPGs the most. I used many programs to make an RPG. Some of them include RPG Maker (Piece of cake), 3D FPS Creator (A sure mistake), Yoyo Game Maker Studio (Nice), Gamesalad (Fair). They all don’t appeal me much. They are not innovative or something like that. At least, 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 ultimately leads me to programming. Programming makes me want to create. Innovate! However, I learned much of that but still… where is my dream RPG? Actually, I tried it 3 times and failed, leaving behind many lines of crappy and crippled code.

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 the concept of electricity) and Command Blocks (put commands and run them). Creativity is the main aim of Minecraft but it has a whole deep story and survival + adventure features as well. The game creates an infinite world where you can do what you want. I am not advertising Minecraft but it’s my favourite game. There is no age restriction and everyone 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 at least good in creativity and also loves electronics, will definitely, love playing with redstones. Those who are good at creativity and love the idea of programming can go for Command blocks. Want Minecraft, here’s the link.

(Programmer’s story PART-I)

OK! Let’s talk about me… I start playing it… First, not appealed… Later on quite fascinated… I started putting blocks together. Then, I tried Redstone and loved them… I started to use Command Blocks pretty late. Writing single line code in it and executing it felt so innovative and fun. It’s quite hard at the start to get all things right. I have struggled with the commands. 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 look like, “I can make Minecraft in at least, a week!” These two things made me go for Java because Minecraft is coded in Java. Of course, Such thoughts came to only those people who have very little knowledge of programming. Before that situation, I always avoided programming. After that, I begin my journey by simply finding a brilliant series of video tutorials for learning Java from scratch! I want to have easy access to these video tutorials from my Android device. So, I somehow ended up 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 many places something like: “C++ is way 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. HTML. I 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 look into 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 “colorful” game. Then, there are many small projects which are just the implementations of my ever increasing ideas.

What’s your problem?

(The Reality)

OK! Let’s say that I started to make an RPG… I hardcoded some of the setup codes and managed the libraries, etc… Now, I need the 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 really good animators. I need to interpret ideas with that hired animator so that I can get the right kind of art. One may suggest me ‘this or that website’ for getting art pieces 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 lighting using shaders, pathfinding AI and some tuff algorithms’ implementations can’t be done right by even a fine programmer! In the end, I would like to say…

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 complete in the knowledge of a particular subject, you are definitely not missing out a lot.

–+ 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. 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 hope about. You dream something and you fulfill it. Never be hopeless.

Feel free to ask for help and I might want some help from you as well, as I am still learning.