March 12, 2010

Staying motivated on your personal side projects is really quite hard! Moose and I have moved closer to the city, so now I have a bit more time and space and have been hacking on Infinite 8-bit Platformer again. Here is a graph of commits-per-month on the project:

Infinite Platformer commits per month to March 2010

I prefer to think of them as "experience points" rather than commits, because making games should be the meta game. :)

I also made a page on the website where you can see the commit log.

I set up a twitter stream for the commits too: http://twitter.com/infinite8bit, and also an identi.ca account if you're that way inclined: http://identi.ca/infinite8bit

You can subscribe to the RSS feed of those commit messages: http://twitter.com/statuses/user_timeline/121975057.rss

click for detail

On my current contract with RjDj I have to work as close to London time as possible, so this means that I have some mornings somewhat free, and I've been spending the hours between 8am and 11am drinking coffee and working on my game.

As you can see, even at the beginning of this month there have been almost as many commits as there were last month, hooray! There are 37 line-items left in the TODO file at the moment. My rule of thumb is about two line-items per working day. If I can work at roughly 3 half-days per week I should have the beta release ready for testers in about three months. That's assuming that the networking library I previously wrote, PodSixNet, is up to the task of linking everyone together into some kind of platformy MMO goodness. If I do a release without the networking stuff it means I can get something in front of people in probably one month. That's a very motivating thought! The important thing is that I don't rush myself though. Slow software development makes better quality software (although implemented software is better than vapourware).

I have found that the best way to stay motivated is never to feel guilty about not working on something. If I don't feel like it I just forget about it and do something else. Eventually if the project is worth it I'll get excited about it and naturally come back to work on it again. Judging by the graph, that seems to be exactly what happens. Some months I leave it entirely (zero commits), but over the long term progress continues because somewhere deep inside I know this project is worth it. One of life's great lessons is that at some point we must always let go of the things we love, and I think this really applies to staying motivated about projects too!

Ok, time to write some more code. :)

Boring stuff

Here is the very small bash shell script which produces the csv file used to generate the graph (unfortunately it skips empty months so you have to add those manually):

#!/bin/sh
bzr log --short --forward | sed -n -e 's/.*\([0-9]\{4\}-[0-9]\{2\}\).*/\1/p' | uniq -c | sed -n -e 's/\ *\(.*\)\ \(.*\)/\2\,\1/p'

Here is a very small bash shell script that I wrote for turning emails into tweets:

!/bin/sh
header="START"
# concatenate all lines (ignore email header)
while read line; do
    if [ "$header" == "" ]; then
        message=`echo $message $line`
    else; header=$line
    fi
done
# post to twitter
wget -O - --user=xxxx --password=xxxx --post-data="status=$message" https://twitter.com/statuses/update.xml

That last line is a handy one-liner for posting to twitter!

To post to identi.ca, change the url to "identi.ca/api/statuses/update.xml".

March 10, 2010

Feb. 27, 2010

Some "Lego" I bought in Hong Kong at a street market recently. Space Lego + cheapfakes + Hong Kong is pretty much my personal nexus of awesome.

You can buy this stuff on ebay very cheaply too, and it's compatible with the real bricks. I can't really tell much of a difference in quality. The idea of Lego is too good to be monopolised - I wonder if anyone has tried 3d printing lego parts?

I am really looking forward to when those "fake" Android phones & tablets start to perform better (and cheaper) than the official stuff. The smart thing about Google's Android strategy is that they benefit from that kind of Wild East tech cowboyism. It's like if Windows 95 had have been Free Software instead of pirated globally.

Jan. 7, 2010

Over the new-year I wrote this little Free Software (LGPL) app for sketching stuff. It's called SketchThing.

hoverteeth

With the impending proliferation of tablets and touchscreens my plan is to make a sketching app which runs on all kinds of tablet/touch friendly devices and browsers, online and offline, and will sync your sketches to whatever device you are using, wherever you are using it.

shapewads

At the moment it's running on those Apple portable devices, since that's what I have access to thanks to my contract work for RjDj, and I'm quite glad that I have found a way to make Free Software which runs on those devices legally through the web app method. I hope to port it to at least Firefox, Android, and Chrome OS as well.

bigsquarerobothead

The core library, sketchthing.js, is device agnostic and should run on anything which supports HTML5, such as Firefox and Webkit. What the library does is take an arbitrary HTML element as an input, and then replace it's innerHTML with a canvas of the same size which can be sketched upon.

Have fun.

Oct. 18, 2009

Three bits of news to do with Infinite 8Bit Platformer.

  • I finally found some time and motivation to work a little bit on it. I made some icons to replace the ugly text buttons and had to write an image based radio-button class to support that. Here's a half-size screenshot of the new icons:

Infinite 8Bit Platformer

  • I've decided to release the source code to the game under a GPL license. Some of the library code which I've used in other projects will be released under an LGPL license. You can find bzr repositories of both codebases here.

  • I am looking for contributors to help me bring the game to completion along the lines of my massively-multiplayer-user-created-content-platformer vision. If you're interested in joining the effort, email me and I'll put you on the dev mailing list we have going. Feel free to check out the code, look at the TODO list and start hacking. Patches welcome!

I really need to do a lot more work on the website, like integrating a forum, blog feeds, and authentication. Next thing in the TODO list is a save button for saving the level you are working on. Should be pretty easy so I'm going to use it to try and stay engaged with the codebase.