Sunday, April 25, 2010

InkScape As Level Editor

I have been working on creating a simple game engine for 2D games which would use pymunk (chipmunk) 2D physics engine and currently undecided tool kit for windowing. I was working on creating a simple loader for loading info from the svg file to create game objects. I have done this successfully you can see the code at

It's a no brainer that we have to add the meta data required for game engine to the objects in svg file, but adding all that Game Engine related info to the SVG objects can be a little tedious.. esp if you want to have many objects in a level. So I've been trying to look at making it a little less painful.. guess what.. inkscape extensions are pretty awesome for doing just that. I quickly put together a simple inx file which inkscape uses for creating gui for the extensions. Im' pretty excited about this now.. Really cool..

.. i have been trying to get the extension to work but for some weird reason it wouldn't... so guess what.. i just copied an extension which was already there.. and started editing it to make it mine :) ... and it worked!! oh well.. guess i missed something really trivial.. but its' working now and is up in the code base.. next i have to think about how to get the model info in there. for separating out rendering from the other stuff..

Friday, April 16, 2010

Slider Puzzle

After CubePuzzle, i wanted to make another puzzle game just for the heck of it. I thought for a while and came up with a simple puzzle game. I started off coding it in glut and called it BallPuzzle (not very creative) .. coz the game was to have a ball that would just keep falling down unless you made sure that there was a block stopping it from falling down. Since glut already has functions for drawing spheres and cubes, and because I remember the glut functions better.. i coded it using glut lib. But to make it presentable i switched to SDL, and the GLui i implemented for CubePuzzle. After about 4-5 hrs of porting and polishing .. I uploaded the Src and Binary (both linux and windows)

Mean while i wanted to see if i could use Blender to create a python game. i.e, create all the logic etc inside blender like we do for BGE but output objects/files so that we can run the game using python. Turns out we can't access the GameLogic api when trying to export files. So im' planning on writing a script which will be run through the BGE. Ill' have to keep all the scripts dependent on one global variable which will be set only when trying to run through python. The idea was to use Blender as a Level Designer, but adding the above feature will take it one step ahead and will probably be pretty good. Still have to figure out a lot of things.

Monday, April 05, 2010


After ive' worked on developing a couple of puzzle games, i've started getting this weird idea that it would be nice to integrate these small puzzle games into some kind of adventure game, where solving the puzzle opens a door/passage etc. I was also thinking about how to dynamically generate a road for a racing game or just a track kinda thing. So when i saw the pyweek10 announcement.. i jumped on.. i wasn't sure if i'd be able to make time to complete my entry but i managed to pull some night outs and completed it in about 4 days or so.

The themes this time were "Eleven", "Rose", "Wibbly-Wobble", "Canine" and "ScrewDriver" check out the actual stats here. As soon as these themes, i started thinking about what features i wanted to implement in the game and i also had to think about a story which would use/include all the mentioned themes. Here are the features i wanted to have at first.
  • Use the 3danim experience i.e, use the new keyframe animation format i have created.
  • Make the game in 3D
  • No Side Scrolling platformer.
  • Have to be something different.
well have to be something different isn't as easy as it sounds.. because every idea that kept dawning on me had been done before.. so finally i settled for a 3d platformer kind of thing. This was very straight forward for me, i just had to have a map rendering and everything else would just fall in place oh and i wanted to use absolute values of xyz instead of having to calculate the relative coords from world coords etc to avoid confusion.

The first thing i started working on was to port the 3danim code to python from c. This was easier than i thought and once i got the basic model loading and rendering done in python, i knew i was going to complete the game with what ever requirements i had in mind.

Almost 3 days into the competition, i realized there wasn't enough flair / awe factor in the game i had created.. to keep pushing the player to complete the game. I knew i had to put in some thing unique in there to make it stand out.. i wasn't happy with the way the game play varied. While thinking on those lines, i came across an interesting piece of documentation in pyglet, which said we can save a screenshot of the rendering.. .. that was it.. it sparked a whole puzzle game idea thing, where you had to solve 5 puzzles to win the game. So i quickly put together the code for a simple jigsaw puzzle in a separate python file and later integrated it into the main game.

I enjoyed this part because it was the first time i tried anything like this. I quickly created a bouncy block to indicate that this is something to catch/ pickup and launched the puzzle game as soon as the user touches it.
Though i did not get time to polish the game to the extent i wanted to.. the 3d platforming part looks pretty and the puzzle gameplay works. I just hope people enjoy playing the game. :)