Showing posts from 2005

Pygames Snakey is covered in snow!

Inspired by the ugliness of a certain other gamedev site, pygames Snakey is transformed with snow and a santa hat.

Also check out some of the cool new games and projects that people have been making.

Of urls and single url DHTML sites.

Dynamic sites, and urls.

A website I am working on now, is one of those single url sites with lots of fancy DHTML where everything changes dynamically without changing urls. Everything is loaded with a python twisted, wsgi server sending xmlrpc into separate tabs.

A while ago I implemented a scheme which works with javascript to inspect the url, and open up different tabs. For example, this link opens up a review and an article into different tabs

Putting in a site url box.

Now, to make people be able to share links of what they are looking at in the site, we are going to place a url box in there. So as they open up different bits of the site they can see a link for where they are. It will be like a browser inside of a browser. With a url bar, and tabs.

Saving the whole state of website as a url.

Now I am working on encoding the whole state of the page into a url. Including the scroll state of the bars in the tabs, and which ta…

Save, compile, run cycle. Except with templates.

The save, compile, run cycle I reduced in my source code, why did I think it would be ok in templates?

I used the cheetah templates for They are a pretty nice way to handle templates. They are nice except for the compile that needed to be done when they are used. This is great for run time efficiency... I think. But not so good for development time efficiency.

However now I have removed the need for the templates to be compiled from my code. With the change of a config variable I can also use the compiled templates. Which will be good for the live version of the site.

Now I'm starting to think about the other parts in the save, compile, run cycle.

If I could get rid of either the save, or run cycles then that'd be great. No more pressing save to see what changes occur. Just change something, and then it will show me the results within a second or so.

How can removing the save and run parts be done? By having the editor in the browser. Or havin…

GP2X likes my batteries

I have been learning about the GP2X I received the other week. I have an arm gcc tool chain setup on my windows box, and my linux box. It could have been a much easier experience. However hopefully now the gp2x dev wiki has gathered enough information so new commers should have an easier time.

It has a bunch of potential to be a really nice device. It just needs a whole bunch of bug fixes. I think the people at GPH will eventually fix things up.

So I wait until I can afford a power supply for the unit. So that I do not have to recharge batteries all the time. Having to copy the file to the SD card via the card reader, then put it in the GP2X and reboot is no fun at all. Considering boot time is 25 seconds or so. Which means a lot of iterative development will not work if I need to wait 1 minute between changes. I am used to waiting 1 second between changes.

In the meantime someone else has already gotten python, and pygame working on the machine. Which is great! As soon as I …

GP2X arrives.

My GP2X arrived this morning!

I ran down the stairs to meet the delivery man. Then ran back upstairs tearing open the packaging as I went up the stairs.

I was sent this one early by the lovely people at gbax so that I could port pygame to it.

This version of the firmware doesn't seem to be able to copy stuff to the onboard flash. The usb connection doesn't seem to connect to my computer. Hopefully it will work once an SD card is in there.

So all I can do with it at the moment is use it as an expensive flash light.

One thing I was dissapointed about... you can not use it as a usb host. Which means you can not connect your digital camera or other things to it. Oh well. Maybe something can be done for that through the EXT port. The EXT port will be used for TV output too. The cables for tv out should be available in a few weeks.

I've downloaded the available SDL development files, and been through the development wiki, and read all of the spec sheets. Now I wait until I ge…

query string using javascript.

I have just implemented query strings using javascript for my web page Pretend Paper

So you can make a link which will change the configuration of the dynamic page around.

This is an example of the link: It opens up the review with id 5 in a background tab, and the article with id 3 in the foreground.

It is really important to be able to get a url which will map to what is being shown on screen. This way people can post links, and bookmark pages they are in. Unfortunately with javascript one 'page' can be showing 600ish different things.

I still need to make it possible to open up news, and events via the url. As well as show people a url for the page they have opened up.

Fair evader.

[dang`r`us]: fair/fair evader?
[illume]: in Melbourne australia there is a tram company which is now privately owned. they have run a fare evader advertising campaign to guilt people into paying for tickets
[dang`r`us]: ah okay
[illume]: unfortunately they are pretty shit for a number of reasons... so a group of us are making games/websites to try and draw some attention to these problems

And so it begins.

The game will be about playing a tram inspector collecting commisions for each tram fine that they give people. You'll get bonuses for fining pregnant non english speaking ladies, old people, and poor people.

You can demand people hurry up and show them their tickets. You can sneak on in under cover clothes.

I think I'll even use the gui for speach dialogs. To present the user with multiple choice questions. 'fine', 'let go', 'twist arm'. Also for other speach dialogs like people trying to get out of tram fines, and general banter on the tram. etc.

8bit …

Pretend papering

I have recently moved a pretendpaper into subversion.

Before that it was in no revision control. Well, my own style of revision control. Which is a shell script that runs every few seconds, checks for changes in my local set of files, and backs those up.

All done with about 30 lines of bash. With time stamped directories showing all of my changes. Without me having to run 'svn commit' or some such thing.

Which worked quite well for my productivity, except I didn't really have an anotated history, apart from my own logs. I would make notes in a text file, and from there I could peer into an old directory to see what happened.

Which was all fine except now two other people need to make changes, and this system just can't work for others as easily as subversion can.

So now I have a remote dev server, as well as my local dev server. There were some issues with the website running from a different domain for some reason. Different timing issues showing up some bugs in apa…

A-profiling I a-go.

I spent a little bit of time recently profiling and optimizing some code.

This is not a usual thing to do for lots of programing tasks, because these days, often code is fast enough to do the job. However fast enough for which computer? One of the machines I run is an old duron 850 mhz from around 1999. Some programs are starting to get a little slow. Because developers are only testing to make sure their programs run on the latest hardware. Lots of people I know still have computers even older than this! So I want things to run really nicely on my slow machine at least. In the hopes that it will run nicely on other peoples slow computers. Luckily it often doesn't take too mucheffort to speed things up.

Most things I do run ok even on my old slow machine. However on two demanding applications I am working on there is a needfor profiling and optimization.

Here are some of the things I found...

Python game optimization.

My game holepit was leaking a little bit of memory between levels. I…

Another pygame release at last.

There is finally a new release for pygame out. I was the one who did this release(with lots of help from others), and below are some notes on how it went, and what is next for pygame.

What is pygame?

Pygame is a is a set of Python modules designed for writing games. It is written on top of the excellent SDL library. This allows you to create fully featured games and multimedia programs in the python language. Pygame is highly portable and runs on nearly every platform and operating system.

Compared to the 1.7.0 release, there is a whole bunch of bug fixes. Compared to the commonly used pygame 1.6.2 there are heaps of changes. A different version of SDL, a different compiler used for the windows version, and a rewrite of the sprite classes.

Lots of new people have begun to submit patches and test things out. Which is really nice. We also followed a release plan. Which was made necessary because of the multiple people working on the release compared to one person previously.

There is also a …

Pretendpaper. Making pretend webs.

Pretend Paper is an arts/music, not for profit website meant to be a place where people can see what is on, and what people are doing. Pretend paper is also a place where you can tell people what creative things you are doing. As well as a place where people can post articles, and reviews of creative things.

Pretend paper is a site that has been made with two other people, and I. With contributions from many others. All of us have been taking a break from it since our launch party in July. Which means that it has been a month and a half since my last major code update.

What makes pretendpaper interesting from a web development point of view, is the new interface ideas. There are two sides of the site. A tab area on the left, and a tab area on the right. When you are viewing stuff on the left you can click to see something related on the right side of the screen. All without reloading the page.

One good use for the tabs is when you are reading the details for an event you will be able to …

Work on holepit continues.

Work on my shareware game holepit continues. After about a year break from it, recently I have decided to continue to do things on it when I have time.

The premise of the game is to move blocks into a hole. Every other part of the game comes from there.

To make the game more interesting I am adding a number of incentives to keep playing. One of them is this tunnel special bonus stage. It is kind of like a few different games have used before, where you run down a tunnel collecting things.

I am also adding another character modeled by Geoffrey Bantle. The transvestite cleaning lady. Complete with vacuume, and eventually stubble. She should add a bunch more game-play opportunaties, and make it more interesting overall. She will be the fifth character in the game. As the game involves playing against the other characters, there really does need to be more of them for holepit to be fun.

The character still needs a lot of work. Maybe another five hours painting. Then another 30 hours animatin…

pygame progress - one last piece.

One last thing needs to be done before we can release pygame 1.7 for windows python 2.4.

sdl_mixer needs to work. After much fiddling, I managed to get it working with everything except mod playing working. mp3s, oggs, midis, wavs all worked.

Hopefully next weekend there will be some goodness, and pygame 1.7 can be released for windows.

Pygame progress.

I got pygame compiling with python2.4 and mingw+msys today!! Not too many problems were encountered. It needed one distutils patch to make correct paths to feed to gcc. The msys shell needs paths like /c/Python24/lib not c:\Python24\lib. As well as a couple of little fixes in two source files for things that C can't do but a C++ compiler on windows can do. Pete was using the vc6 C++ compiler I think. After those couple of things I had most of the examples up and running :)

Now I need to do a few more fixes.

First is getting the numeric modules surfarray and soundarray working. I need to download the numeric stuff for that to happen.

Next is to fix up the file and the file to generate an acceptable Setup file. As well as detecting dependencies correctly with msys.

Then comes the task of finding all the api differences in the latest SDL. I also need to compile the latest SDL.

Finally we need integrate and test all the patches that have been flying …