pygame is
Simple DirectMedia Layer is
Site Swing

GRIP - 0.52

Stuart Laxton (shannow)



The game was written during June, July and August 2012 from scratch with the exception of the sprite rotation code which was taken from TankorSmash's tutorial page. The game is the second I've wrote, the first being Hangman+. The idea behind the game was for a more realistic top down racing game where finding the quickest racing line is key rather than power sliding around corners. The original plan was for multiple racers and AI but I'd rather release the current version based on lap timing / ghost laps and get some feedback before spending months more time on it. Hints & Tips The faster bikes accelerate slower and take longer to slow down for corners. You are best starting with Bike 1 and learning the tracks before moving onto the faster bikes. On the slower, technical tracks boosting out of corners is the key to the fastest laptimes. Also try not to hold boost down too long - many short bursts of boost give you a quicker overall time as your bike takes a while to drop from the boosted top speed. You are allowed to clip corners but if you are on the grass for more than 0.5 seconds over the lap then your lap time is invalidated. You must also cross the 2 sector / timing lines for your lap to count. You only get a ghost bike once a valid lap has been completed. Future plans I'm also looking to implement in future releases the following :- Permanent recording of ghost laps Sound! Network / multiplayer


Major update including :- New Track Graphics New Bike Graphics Bike Stat graphs 6 New Tracks 1 New Bike More consistant 60 FPS framerate HUD Info text improved New tile based graphics system has improved the stability of the frame rate as well as looking a lot better - the smooth curves suit the movement of the bikes better.


Home Page:


click to view original size


GRIP - 0.102 - Apr 18, 2013
GRIP - 0.82 - Sep 14, 2012
GRIP - 0.63 - Sep 2, 2012
GRIP - 0.52 - Aug 28, 2012
GRIP - 0.31 - Aug 4, 2012 account Comments

If you wish to leave a comment with your account, please sign in first.

September 17, 2012 8:57pm - Stuart Laxton - nickname: (shannow)
Thanks Chavdar!
I wondered why someone had downloaded the old original version recently - I've learnt a lot since starting this project and it's great finding out how to do stuff I've seen in other games :-)
September 16, 2012 9:12pm - chavdar - nickname: (chabuduo) - 5/5
wow exceptional!
i checked out the earlier versions just to check the evolution ^^
August 29, 2012 12:48pm - Stuart Laxton - nickname: (shannow)
Thanks for the comments and tips Spacemax :-) I'll get those fixes done and release a Linux friendly version later this week. Thanks for playing & commenting :-)
August 28, 2012 11:13pm - Maxime - nickname: (spacemax) - 5/5
At first, congratulations. It had a long time i hadn't saw a so cool game :)
Good quality of the Graphisms, fluid animations just not enough sounds !!!
The bike is easy to drive except the key use to accelarate and break which are too near from themselves (w&s)

Some issues to resolve :
File "/home/max/documentations/python/sources/python/grip/", line 90, in <module>
bikeImage = pygame.image.load('graphics\\bike1.png').convert_alpha()
pygame.error: Couldn't open graphics\bike1.png

On linux distribution, use the slash (working too on windows):
bikeImage = pygame.image.load('graphics/bike1.png').convert_alpha()
Traceback (most recent call last):
File "/home/max/documentations/python/sources/python/grip/", line 1222, in <module>
File "/home/max/documentations/python/sources/python/grip/", line 472, in shadowGraphics
shadowImage1 = pygame.image.load('graphics/shadow1.png').convert_alpha()
pygame.error: Couldn't open graphics/shadow1.png

The file is named shadow1.PNG. Rename it (and the others) all in lowercase characters cause linux is sensitive case.

File "/home/max/documentations/python/sources/python/grip/", line 1318, in <module>
playerRotatedImage = pygame.transform.rotate(playerImage[playerImage[0]],degree)
IndexError: list index out of range

This issue is due at the empty table playerImage when no choice is done at the begining of the game
Adding this at line 1225 after menu(), resolve it :

if playerImage==[]:

nice work anyway; Good trip with ghost...
August 4, 2012 1:55pm - Erik Martin - nickname: (neccarus)
Awesome, keep it up.

our projects welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
recent releases
Feb 21, 2017

Jan 31, 2017

Jan 24, 2017

Jan 18, 2017

Jan 7, 2017

Dec 30, 2016

Dec 8, 2016

Nov 28, 2016

Nov 27, 2016

... more!
for pygame related questions, comments, and suggestions, please see help (lists, irc)