GLSL: Getting active uniforms

When you load a vertex and fragment shader in OpenGL you need to pass in data such as the current viewport transform, camera transform and lighting data. You do this via Uniform variables.

Each of these Uniforms is addressed via a location which in true OpenGL style is a GLuint …


Python Script to build a Texture Page or Sprite Sheet

Why pack textures/images?

If you’re making a game then it’s more efficient to tell the hardware:

1
2
3
4
use packed texture 1
draw primitive 1,2,3,4,5,6
use packed texture 2
draw primitive 7,8,9,10

than to

1
2
3 …

Using Python and Tkinter to capture script output

In order to build the assets for my games I have a series of python scripts that know how to take files TexturePacker, Tiled, and Blender and build them for use within the engine. My main platform is OS X and it has good terminal support and more importantly I …


Starter Blender Exporter

I’ve settled on using Blender 2.6 both as a level editor and modeller for my next game (code name BBM). BBM is a 2D game but modelling the characters and rendering the sprites will save a lot of time. Blender isn’t the best level editor but it …


Apple TnC Changes and Lua

With the beta release of iPhone OS 4.0 Apple has changed the terms and conditions for developers who want to target the iPhone platform (note that includes the iPod Touch and iPad).

There has been a of discussion about changes to clause 3.3.1 most notably by Gruber …


NvStrip and Blender – Stripifying Models for the iPhone/iPad.

What Is Stripification?

Stripification is the process of turning lists of triangles in an arbitrary order into as many lists of triangles that contain adjacent edges. There is a great explanation of a triangle strip of wikipedia.

Why would you stripify?

On most platforms Triangle Strips render more quickly. The …


A Pythonic “Center New” in Blender

Part of my Art pipeline for Tentacles is to import a directory of 3DS files. Each of these files is a map piece and the map pieces are instanced to create a map. That way I can store the geometry for a shack once but instance it across the level …


Implementing glAlphaFunc in OpenGL ES2.0

In OpenGL ES 2.0 glAlphaFunc isn’t available, you have to implement it in a fragment shader. There isn’t a lot of reference out there for this (not that I could find anyway) so I thought I’d write this up.

It’s actually quite simple to implement …


Integrating Bullet Physics

Bullet is an open source collision and physics simulation library written by Erwin Coumans who I believe worked or maybe still does work at SCEA (Sony Computer Entertainment America). Bullet provides a C++ API to a very robust Collision, Rigid Body and Soft body simulation system. At its core Bullet …


Starting Out On The iPad

Why the iPad?

When the iPad was announced I decided it was time to take the plunge and develop a game for it. Although the iPhone is a powerful piece of hardware I just find the screen too limiting. Every game leaves you wishing you had transparent fingers. The iPad …