krish – 起死回生 [Wake up from death & return to life.]

December 12, 2012

Indie Game Dev/Designers – Things to Do, Things Not To.

Couple of hours ago I got a request for a game review by an Indie/seemingly Indie dev.
Playing that game, and even some similar games earlier makes me write this list of Do’s and Don’ts for an Indie.

SideNote: Yes, I tend to play a ton of games to learn design flaws and excellences, as an Indie myself; I think its a must..

I however, will avoid making references to those games; because I consider it rude/too harsh on young Indies 🙂

So, here’s a list of Don’ts to start with.. and I’ll keep adding/updating the list as I come across more and find time to instantly add it.

If you’re an Indie, you might wanna skim through this list.. I know it gets excited and hyper to launch a game, but a quality stuff matters more than just throwing something half done out there and then asking around people to review it.
Take it with a pinch of salt 🙂

Indie DONT’s:

1. Don’t release your game as a version 1.0 / any stable to any app store before it actually is a properly done game.
Most of the games I get asked to review look like prototypes.
Please take feedback from other Indie game devs who have already released a good game before considering your game ready for app store shipping.

2. Don’t spoil the gameplay by accompanying it with horrible art.
I’ve seen some games have potential due to their gameplay, but the art sucked to an extent that it made the game eyesore and I stopped playing after 3-5 minutes.
I’m not saying everyone can be a great game artist, but if you don’t have the skill.. please take external help.
Your game will end up selling more and you will see rewards.

3. Don’t spoil the gaming experience by using ear-paining sounds / using no sound at all.
Game sounds are as important as Game Art is. Please get some good sounds in the game…unless your game is the next Limbo.
The player needs to be hooked up both visually and acoustically.
I simply tend to fall asleep if there is no sound in the game; if there is a horrible one, I’d anyway turn off the sound and hence again fall asleep.

4. Don’t ignore your Animations.
Games run on different devices, they can be slow/fast. They could be loaded with other processes eating up the memory.
If a gamer clicks/touches on a certain option on your menu and has to wonder whether the “touch/click” did happen or not… then you’re in trouble. You were probably missing a simple animation that changes color of an option on touch.. letting player know that ‘ok you have touched this option, now wait’.
That’s just the simplest level. There are tons of places where devs/designers seem to miss simple animations that make the game feels responsive.

5. Don’t LIFT art from other games and put them in your Stable release.
Again on the topic of art, I happen to notice a game that uses another game’s Protagonist (developed by a different entity; so not your property) and change the ‘color’ and use it as one of the Antagonist in their game. Not just that, they’ve also used couple of minions (with color changed) in their game.
Which is kinda shocking, because Yes, you can use art from internet for prototyping, you can use license free sprites in your stable release too, BUT using another game’s IP (Intellectual Property), in your STABLE release! A Big NO.
You should be just thanking your stars that your ass isnt sued already.

6. Don’t ask your friends/family/colleagues(non-gamers) to write a Nice review with 5 star rating on app store.
The moment a real gamer looks at those reviews / even a real investor looks at it.. we know that it’s a premeditated review. And on top of that, when we play the game and it turns out to be not-that-great… your game loses even more respect (and even you as a developer lose respect) to have asked people to write “This is awesome. You exceeded my expectations” and also give a “5 star rating”.
I encounter those, I don’t play another game from same developer.. I don’t even care to look at it.
Have some standards, Have some respect to the appstores that might get you revenues later. Don’t forge it. Get real reviews from real gamers.
I’d anyday be happy to play a 3.5/4star rated game that is fairly good, than play a 5 star rated game that has forged reviews and is crappy as hell.

7. Don’t overlook minor User experience stuff
Games that don’t have a ‘Turn sound off’ option, that don’t give enough visual feedback on touches, that don’t have a tutorial on how to play, that has a misguided ‘help’ button, don’t have an exit button/option, don’t bother to reward users on small achievements.

8. Don’t be like an ad serving Porn Site
I agree its difficult for us Indie’s struggling with revenues, but that doesn’t mean you’ll go and put ads at places where player NEEDS to touch/click in order to play the game; forcing users to either click the ad or making user accidentally click ads in between gameplay.
Both are terribly annoying!
I’ll give you an example: Today I played a game that has all its ads stacked up at the end of each level/within a “more games” option in the menu (ads, cross game promotions etc). and then another game that had its ad placed at bottom-center of the screen where I needed to “swipe” to play the game.
Guess what:

First game – I played for 20 mins. I finished couple of levels, wrote them a nice review on app store. Gave 5 star rating. Wanted to tweet but their tweet button was bit broken sadly. Clicked on 11 of their ads featuring other games, downloaded 9 of them and will play them tomorrow. The game still exists on my tablet and I’ll play it again.

Second game – Looked at it 3 secs. Tried to play without touching the ad on accidental swipe. Hated it. Closed. Uninstalled. Will never play it again or may be even not look at another game from same publisher.

9. Don’t have unambiguous/endless/vague objectives if your game has levels and is not an RPG/Puzzle
Damn you if your game says it has 150 levels, and I’m playing the first level since last 15 minutes and your game is a ‘Casual’ genre. Of the 15 minutes, 5 minutes I try to figure out what the fuck I am supposed to do (lack of tutorial), 10 minutes after figuring out due to self-intelligence I’m just killing same minions again and again, with same difficulty level, with no sense of when the stage is “marked” complete or what are the objectives to be met to complete a stage.
Game is uninstalled and it will be long time before I look at another game that says same publisher.

Contributions from Redditors 🙂

11. Don’t advertise your game before it’s ready to be advertised. – by HollisFenner

12. Don’t Bite more than you can Chew! – by ChainsawSam

13. asskickingjedi and MrFidelmios have a list of valuable advises which I thought would be injustice if shortened to put them here.
So linking you directly to it –
Alrighty Guys, that’s it for now.. As promised I’ll keep updating the list. Gotta get back to work 🙂

December 8, 2012

Right Now: What am I up to?

Dec 08, 2012. 02:03 am IST – A new logo coming up for Toonheart.


Finalising the logo for my gaming startup - Toonheart  :)Dealing with hand sprain but it can't be helped.... Work is Work.

Finalising the logo for my gaming startup – Toonheart 🙂
Dealing with sprained wrist, but it can’t be helped…. Work is Work.

Nov 18, 2012. 01:41 am IST – Still working on my prototype game.

Fighting 13C weather off with my biking balaclava,

Indie Game Dev’s Life.

and listening to this in loop mode.

To read my past time entries click on (more…)

November 30, 2012

Muahaha Video Sneak Preview of Tank ’em Up!

Read here –

November 29, 2012

Prototype – Tank ’em Up!

Exciittttttinggggg News Fellaws…………

Announcing Prototype – Tank ’em Up!
My first game to go into Development Phase!!

Tank ‘em Up! – 1 page idea? 1 stage gameplay mashup for prototype

Not bad for 1 Page Game Idea 🙂

Read more here –
Psst, someone asked me what music I listen to when I work… Well, here’s my playlist –

February 9, 2010

Zabbix 1.8 Linux agent installers scripts

Filed under: Programming — krish @ 5:46 pm
Tags: , , ,

Scripts for Linux agent installers (Zabbix 1.8) have been updated.

Check-out available at

Note: Previous installations of 1.6 or 1.8 agents will be un-installed before installation.

November 12, 2009

Swapping two variables without using third variable – old trick

Filed under: Programming — krish @ 6:21 pm
Tags: , ,

Pretty old trick, used today in my php code :

// Swap the months if from-month selected is later than to-month
//if($frommon > $tomon){
// $tempmon = $frommon;
// $frommon = $tomon;
// $tomon = $tempmon;
// Smarter way using X-OR
if($frommon > $tomon){
$frommon = $frommon ^ $tomon ^ ( $tomon = $frommon );

December 4, 2008

Document your python functions

Filed under: Programming — krish @ 12:19 am
Tags: , ,

Many people tend to ignore commenting and documenting the code they write. The small amounts of invested time can make life ease for others; especially if you are a crappy coder like me! 🙂

In python, to document your functions, give it a doc string. Doc strings are the first triple quoted string you’d want in a function.

def mySmallFunction(myParams):
      """ Does nothing. Just a time consuming run. """
      return ";)"

if __name__ == "__main__":
     myParams = {"":"dummy"}
     print mySmallFunction(myParams)

In the python interpreter, doc strings can be accessed by calling attribute __doc___

>>> import test
>>> test.mySmallFunction.__doc__
' Does nothing. Just a time consuming run. '

July 13, 2008

KDragons screensaver

Filed under: Gaming,Programming — krish @ 1:12 am
Tags: , ,

Just wrote a simple scrolling marquee screensaver with pygame. Bad thing, it runs in 640 x 480 display mode.

KDragons Screensaver
Konqi taken from Wormux.


#!/usr/bin/env python

bkg_image_filename = ‘images/wormuxkonqi.png’

# Running in windowed mode
SCREEN_SIZE = (640, 480)
message = ” KDragons coming soon… ”

# Get functions needed
from random import randrange
import pygame
from pygame.locals import *
from sys import exit

screen = pygame.display.set_mode(SCREEN_SIZE)

font = pygame.font.SysFont(“freemono”, 30);
text_surface = font.render(message, True, (0,255,0))

x = 0
y = ( SCREEN_SIZE[1] – text_surface.get_height() ) / 2

bkg = pygame.image.load(bkg_image_filename).convert()

while True:
for event in pygame.event.get():
if event.type == QUIT:

# set speed for scroll and change of y axis position
if x < -text_surface.get_width(): x = SCREEN_SIZE[0] y = randrange(100,450,20) # konqi scrolls opposite direction to text screen.blit(bkg, (-x,y/2)) screen.blit(text_surface, (x,y)) pygame.display.update() screen.fill((0,0,0)) [/sourcecode]

December 30, 2007

ah python!

Filed under: Programming — krish @ 11:26 am
Tags: ,

I’ve been writing few newbie programs in python since yesterday. 😉
My ISP’s DNS was not looking up for and I had to spend few extra minutes getting the IP and accessing the ftp docs. (thanks to friends at #python @ freenode)

Few good things for me with this snake, er.. language/interpreter
1. No delimiter ( I have a bad habit of forgetting ; in my C, C++, perl, php code )
2. No angular brackets for condition statements
3. Free form language ( first encountered this in perl )

Most of the times, I am finding myself tempted to compare python code with perl; hopefully I shall get over it with time.

Talking about time, I just remembered – its time for LUG meet and I need to hurry! 😛

Create a free website or blog at

The Male Factor (TMF)

Serving MANkind

Rough Draft

by Atteris Amarth and Darrek Ringo

The Kochi Post.

Read by all + Influenced by none


A signature of Kiran


This blog is just for additional and extension share of it's main frames. No activity is planned from here

krish - 起死回生 [Wake up from death & return to life.]

Get a sneak peek into krish's life, work and passion. is the best place for your personal blog or business site.

A Tale of Two and a Half

Monika Amita Bakshi

%d bloggers like this: