The new place for the Indie Game Journal
Don't forget to update your bookmarks (if you had it)!
Go here
Posted by
Shahrukh Malik
on Wednesday, October 28, 2009
Labels:
About the blog,
Code,
Game descriptions,
Game release,
Note,
OpenGL,
Pre-code,
The trail
/
Comments: (0)
Job application break
Posted by
Shahrukh Malik
on Thursday, October 15, 2009
Labels:
About the blog
/
Comments: (0)
I am currently busy in applying for my articleship.
So, pause again in game development.
So, pause again in game development.
Note for OpenGL
Posted by
Shahrukh Malik
on Saturday, October 10, 2009
The easiest way to use OpenGL is through OpenGL Utility Toolkit (GLUT), which is "a window system independent toolkit for writing OpenGL programs."
Before using OpenGL on Windows, you will need to do what this page explains:
http://www.cs.csustan.edu/%7ersc/SDSU/GLUTinstall.html
Basically, it tells what files you need to put where to let Microsoft Visual C++ detect and use OpenGL libraries. For those who don't want to go there to read it, here is what it says:
What you will get after all this are the pre-compiled libraries of OpenGL (GLUT v3.6).
For other operating systems, see the GLUT home page.
Before using OpenGL on Windows, you will need to do what this page explains:
http://www.cs.csustan.edu/%7ersc/SDSU/GLUTinstall.html
Basically, it tells what files you need to put where to let Microsoft Visual C++ detect and use OpenGL libraries. For those who don't want to go there to read it, here is what it says:
It also state some other steps but I found them unnecessary and work without performing them.With thanks to Kamil Saykali of the EdCenter:
This part will show how to install the glut libraries and dll's (to download it go to http://reality.sgi.com/opengl/glut3/glut3.html ) (Note: this link seemed to be broken at the time I checked. Get the files from here instead: http://www.opengl.org/resources/libraries/glut/glutdlls36.zip)
1. After you have downloaded the glut.zip file (you should get the latest ver 3.7) unzip it into a folder
2. Inside the folder you should have:
glut.dll
glut32.dll
glut.h
glut.lib
glut32.lib
3. Copy both glut.dll and glut32.dll into your windows directory (windows or winnt, depends on if you are using Windows95/98 or Windows NT)
4. Copy your glut.h to:
:\ \include\GL\glut.h
*** put the drive where you installed VC++ instead of the***
*** put the directory where you installed VC++ instead of the
5. Copy your glut.lib and glut32.lib to:
:\ \lib\glut.lib
:\ \lib\glut32.lib
*** put the drive where you installed VC++ instead of the***
*** put the directory where you installed VC++ instead of the6. That should be it for installed the glut libraries. The rest of this letter shows you how to setup VC++ so that you can use the glut libraries.
What you will get after all this are the pre-compiled libraries of OpenGL (GLUT v3.6).
For other operating systems, see the GLUT home page.
RGB gradient
Adding a for loop to the last piece of code, I made a series of gradients:
The code hasn't been edited much. Just added one for loop to draw scan lines of the same color (that gives another idea). However, the coordinates are set to 200 x 150 where as the window size is set to 400 x 300. This makes the code to draw like this:
This is not correct. If you click on the image, it will show it full size, where every other line is left totally blank. So, I edited the window size to be 200 x 150 too. Although, I could have changed the coordinates range too.
Another note, for this wrong example, I edited the background to white, like the previous code, instead of keeping it black in the correct versions.
Here's the code:
The code hasn't been edited much. Just added one for loop to draw scan lines of the same color (that gives another idea). However, the coordinates are set to 200 x 150 where as the window size is set to 400 x 300. This makes the code to draw like this:
This is not correct. If you click on the image, it will show it full size, where every other line is left totally blank. So, I edited the window size to be 200 x 150 too. Although, I could have changed the coordinates range too.
Another note, for this wrong example, I edited the background to white, like the previous code, instead of keeping it black in the correct versions.
Here's the code:
#include <GL/glut.h> void init (void) { glClearColor (1.0, 1.0 ,1.0, 0.0); glMatrixMode (GL_PROJECTION); gluOrtho2D (0., 200.0, 0.0, 150.0); // the coordinate range } void lineSegment (void) { int count; float col = 0.0; glClear (GL_COLOR_BUFFER_BIT); glBegin (GL_LINES); for (count = 0; count < 201; count += 1){ glColor3f (col, 0.0, 0.0); glVertex2i (1, count); glVertex2i (200, count); col = col + 0.005; } glEnd(); glFlush(); } void main (int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); glutInitWindowPosition (50, 100); // top-left window position glutInitWindowSize(200, 150); // window size glutCreateWindow ("Red"); init(); glutDisplayFunc (lineSegment); glutMainLoop (); }
First OpenGL program
Today I created my first ever OpenGL program. I had this book for ages but haven't been able to understand even the basics. But, today (night, actually), thanks to Allah, I have been able to make a program. And it does an amazing thing, which no other program has ever done before. Thats right. It prints my nick on the screen. :D
Screenshot:
Here is the source code:
Screenshot:
Here is the source code:
Note: All code pasted here is free to be used in any way.#include <GL\glut.h> void init (void) { glClearColor (1.0, 1.0 ,1.0, 0.0); // set display window color to white glMatrixMode (GL_PROJECTION); // set projection parameters gluOrtho2D (0., 200.0, 0.0, 150.0); } void draw1Line (int x1, int y1, int x2, int y2) { glBegin (GL_LINES); glVertex2i (x1, y1); glVertex2i (x2, y2); glEnd(); } void lineSegment (void) { glClear (GL_COLOR_BUFFER_BIT); // clear display window glColor3f (1.0, 0.0, 0.0); // set line segment color to red // specify line segment geometry draw1Line (10,90,35,90); draw1Line (10,90,10,65); draw1Line (10,65,35,65); draw1Line (35,65,35,40); draw1Line (10,40,35,40); draw1Line (45,40,45,90); draw1Line (45,90,69,90); draw1Line (69,90,69,65); draw1Line (69,65,45,65); draw1Line (45,65,70,40); draw1Line (80,40,80,90); draw1Line (80,90,92,65); draw1Line (92,65,104,90); draw1Line (104,90,104,40); glFlush(); // Process all OpenGL routines as quickly as possible } void main (int argc, char** argv) { glutInit(&argc, argv); // initialize glut glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); // set display mode glutInitWindowPosition (50, 100); // set top-left display window position glutInitWindowSize(400, 300); // set display window size glutCreateWindow ("SRMROX!"); // create display windows init(); // initialize procedure glutDisplayFunc (lineSegment); // send graphics to display window glutMainLoop (); }
The game engine
A game's engine is the core of the game's code. It provides the programmer with all of the features that he can use in developing the game. These include memory management, file input/output, rendering techniques, among other things.
There are a lot of engines available, some free, some commercial. Some of them simplify development by adding abstraction from code, for example Adventure Game Studio and Game Maker. Some give full power but are more complex to learn, like Open Dynamics Engine and the very popular Unreal Engine.
A custom engine can be designed too with sufficient knowledge of a programming language. Most commonly used are C++ and Python, with Java being the sole language for browser based games.
There are a lot of engines available, some free, some commercial. Some of them simplify development by adding abstraction from code, for example Adventure Game Studio and Game Maker. Some give full power but are more complex to learn, like Open Dynamics Engine and the very popular Unreal Engine.
A custom engine can be designed too with sufficient knowledge of a programming language. Most commonly used are C++ and Python, with Java being the sole language for browser based games.
1213
Posted by
Shahrukh Malik
on Monday, September 28, 2009
Labels:
Game descriptions
/
Comments: (0)
Date of Release: Developer: Genre: Platforms: Mode: Engine: Languages: Price: | December 2005 Yahtzee Platformer Windows Singleplayer Adventure Game Studio English Freeware |
1213 tells the story of a prisoner with no recollection of who or where he is, who tries to discover the meaning of his own existence.Its split into 3 episodes. All of which carry the same story line. They include a commentary mode too where the developer tells about all of the noticeable or not so noticeable interesting things.
Here is a link to the whole of the gameplay video - special thanks to phillipe113:
http://www.youtube.com/view_play_list?p=245CA73BF5C6F3B9&search_query=1213
GUI Pong released!
Posted by
Shahrukh Malik
on Thursday, September 17, 2009
Labels:
About the blog,
Game release,
The trail
/
Comments: (2)
Papers are over and the games have started being played and developed again.
One has been released too. Its not much, as anyone who plays it for one second will know, but hey, its my first game without any reading on how to make a game.
Its available here: http://games.shahrukhmalik.com/gui_pong/
One has been released too. Its not much, as anyone who plays it for one second will know, but hey, its my first game without any reading on how to make a game.
Its available here: http://games.shahrukhmalik.com/gui_pong/
Final exam break
Posted by
Shahrukh Malik
on Tuesday, September 1, 2009
Labels:
About the blog
/
Comments: (0)
My final exams are here so 'the trail' has gotten a bit thin. Check it out after two weeks from now to get it thicker than ever.
Veck: Special Edition
Posted by
Shahrukh Malik
on Thursday, August 27, 2009
Labels:
Game descriptions
/
Comments: (0)
Date of Release: Developer: Genre: Platforms: Mode: Engine: Languages: Price: | April 2007 Smayds Shoot 'Em Up Windows Singleplayer Custom English Freeware |
Veck SE is an immensely fast-paced romp through fifteen one-minute-long levels, with massive firepower upgrades every minute...(it) draws on many classic arcade titles...though everybody assumes it’s Geometry Wars clone, this isn’t strictly correct.Thats what the developer of Veck SE says and I guess there is no need to say anything else.
Making pong
Pong is a very old game, a very popular too. There are many versions of it, some of the interesting ones might get listed here.
But what I want to write now is that I am making a version of Pong!
It will be out soon, by tomorrow, maybe. Maybe not. :P
But what I want to write now is that I am making a version of Pong!
It will be out soon, by tomorrow, maybe. Maybe not. :P
Warning Forever
Posted by
Shahrukh Malik
on Tuesday, August 25, 2009
Labels:
Game descriptions
/
Comments: (0)
Date of Release: Developer: Genre: Platforms: Mode: Engine: Languages: Price: | July 2003 Hikware Shoot 'Em Up Windows Singleplayer Custom Japanese, English Freeware |
Warning Forever is a 2D vertical scroll shooting game in which the player keeps on shooting down enemy crafts which increase in size and firepower with each craft being shot down. Since, each craft is made with a procedure, there is no end to the game: you can play until the time ends (which increases when an enemy is killed and decreases faster when the player is killed).
Components of a game
Since the game is to be played by a person other than the developer, we must make sure that what the player gets is good - no matter how we made it. Henceforth, I found these to be the main things a person looks for in a game to rate it:
- Graphics: of course, the first thing one notices is the objects, environment, etc. of a game
- Sounds: a silent game may not be the best one
- Control: if the character, vehicle, etc. doesn't go where you want it to or do what you want it to, thats bad
- Idea / Objective: this tells what the player has to do, must be something interesting
- Gameplay: this decides whether the player will continue playing the game after seeing all the points above or not
What is an Indie game?
In all the excitement of making a blog about my Indie game endeavours, I forgot that some of the readers may be unaware as to the meaning of an indie game. So, I thought lets define it for them using Wikipedia:
Independent video game development is the process of creating video games without the financial support of a video game publisher. While large companies can create independent games, they are typically designed by an individual or a small team of as many as ten people, depending on the complexity of the project. These games may take years to be constructed from the ground up or can be completed in a matter of days or even hours depending on complexity, participants, and design goal.
Indie video games are often grouped together with shareware, freeware and open source software. Indie developers are generally motivated by strong personal interest in the title they are working on, often a niche game that would not be produced by the mainstream. They tend to belong to some sort of community (usually Internet-based) which recognizes developers.
Driven by digital distribution, the concept of independent video game development has spawned an "indie" movement. These games often focus on innovation, and have occasionally become extremely successful.
Kyntt Stories
Posted by
Shahrukh Malik
Labels:
Game descriptions
/
Comments: (0)
Date of Release: Developer: Genre: Platforms: Mode: Engine: Languages: Price: | August 2007 Nifflas Platformer Windows Singleplayer Multimedia Fusion 2 English Freeware |
Kyntt Stories is a 2D platform game in which each level is its own little adventure.
Kyntt Stories is the sequel of Knytt. It has great environments and puzzle elements. Its made so that anyone can easily make levels, each level supposedly telling a different story (hence the name). Every level is divided into screens which appear when you go at the edge of the map as opposed to the more common scrolling action (the developer said it looks better the way it is and I couldn't agree more).
The playable character is named Juni, who can be anyone depending on the story of the level, as explained in the cutscenes and in-game objects. During the game (or right from the start), she may have powers ranging from simple ones like run and jump to special objects like umbrella for gliding.
Play before you make
Before making a game, one has to play many, to get the general idea of what's possible and what's popular.
So, I went by to look up many games which I'll discuss next.
So, I went by to look up many games which I'll discuss next.
Hello world!
Posted by
Shahrukh Malik
Labels:
About the blog
/
Comments: (0)
And so start yet another blog. This time about my path of learning the indie game development.
Should more people be interested, they are welcome to team up, in either the learning or the blogging or both.
Should more people be interested, they are welcome to team up, in either the learning or the blogging or both.