Ideas:
-------

- Game ideas

  - 'The Code'
  
  	- Safe picking game
	- Barrels unlock with more correct combinations

  - Sokoban
  
  	- good 3D looking graphics
	- animations
	- puzzle editor - need to provide a solution - puzzle verifier
	- then other people can download new puzzles and post best solutions

  - Sukoku

  	- online highest scores (fastest times)
	- need puzzle numbering based on the random seed I guess
  	- hand drawn pencil numbers

  - Rocket Man
 
    - MiniMap
    - 2 smoke sprites
    - sprite lists
    - order the sprites

    - 2 player mode?
  
    - goal

Games types:

	Game Platform:
		http://unity3d.com/

	Traditional Mobile Games:
		Cross-platform. J2ME based games, major games vendor:
		www.gameloft.com (Ubi sub-company)
		www.in-fusio.com
		www.glu.com

	High-Performance Games platform:
		Symbian(n-gage)
		Windows Mobile
		BREW platform.

	Small/Mini Games base camp:
		most games are Flash/shockwave based.
		http://www.miniclip.com/games/en/
		Some pretty interesting game:
		http://www.miniclip.com/games/bloxorz/en/, even better than sokoban!

	Web Game, most javascript and pic driven
		http://www.gameforge.de/
		http://www.gameforge.de/content/view/24/23/lang,en/
		http://www.gameforge.de/content/view/131/23/lang,en
		http://www.gameforge.de/content/view/84/23/lang,en

	Some Chinese Web Game operator:
		http://www.qilongji.com/

		And check out the players and online amount, there are 4 servers here, each has over or around 20000 active players and online players is between 2000-4200.
		http://www.duniu.com/c_1295.htm

		http://zq.9wee.com/
		Register Players: 202,383, online players: 9143

	New Games carrier:
		Facebook plug-in Games vendor:
		http://www.playfish.com/
		Some games they built on Facebook:
		http://www.playfish.com/?page=game_braingame

iPhone Ref Docs
---------------
	iPhone Application Programming Guide: The Core Application
	Core Animation Programming Guide: Introduction to Core Animation Programming Guide
	Memory Management Programming Guide for Core Foundation: Ownership Policy

iPhone Related
--------------
	http://www.slideshare.net/360conferences/accelerometer-and-opengl
  
Code Snippets
-------------

Bit Twiddling Hacks

// OpenGL name for the sprite texture
GLuint spriteTexture;	
CDSoundEngine *soundEngine;
unsigned int *spriteData;

//Use a basic low-pass filter to only keep the gravity in the accelerometer values
accel[1] = acceleration.y * kFilteringFactor + accel[1] * (1.0 - kFilteringFactor);
accel[2] = acceleration.z * kFilteringFactor + accel[2] * (1.0 - kFilteringFactor);	

// Sets up matrices and transforms for OpenGL ES

//Initialize OpenGL states
glBlendFunc(GL_ONE, GL_SRC_ALPHA);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glBlendFunc(GL_ONE, GL_ONE);
glBlendFunc(GL_ONE, GL_ZERO);
glEnable(GL_BLEND);
glFlush();
// Clears the view with black
glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glDisable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_TEXTURE_2D);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
glOrthof(-1.0f, 1.0f, 1.5f, -1.5f, -1.0f, 1.0f);
glRotatef(3.0f, 0.0f, 0.0f, 1.0f);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);	
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glClearColor(0.5f, 0.5f, 0.5f, 1.0f);

glVertexPointer(2, GL_FLOAT, 0, squareVertices);
glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, squareColors);
glEnableClientState(GL_COLOR_ARRAY);
glRotatef((spriteLocation.x-160.0) / 50.0, 0.0f, 0.0f, 1.0f);