TunnelTanks on Github

Wow, it really has been over 3 years since my last post. Boy, how time flies... Let's see... the last time I posted, I was wondering if Valve would bring Portal 2 to Linux. Seems that they did. Actually, they did way, way more than that. Heh, good times, good times.

I'm sure I'll get back to this blog sooner or later, but until then, just a quick update: TunnelTanks (an SDL port of an old 1991 DOS game that I absolutely love, but haven't worked on in a while) is now on GitHub, at https://github.com/raydog/tunneltanks. This code contains a bunch of fixes, a few extra features, as well as the ability to compile for Android. (Insert oohs and ahhs here...)

Enjoy!

Portal 2 for Linux?

My it has been a while since I've last posted. My time is now dominated by work, and I have had little free time to work on all the little projects that I used to... However, I just had to make sure to allocate some time for Portal 2. And I'm glad I did; it's an AWESOME game! My favorite bit, though, was inside the steam directory, where there is a "portal2.sh" file. I understand that this file is primarily for Mac computers (they have Bash too), but I did find this interesting bit in this file:

#determine platform
UNAME=`uname`
if [ "$UNAME" == "Darwin" ]; then
# prepend our lib path to LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH="${GAMEROOT}"/bin:$DYLD_LIBRARY_PATH
elif [ "$UNAME" == "Linux" ]; then
# prepend our lib path to LD_LIBRARY_PATH
export LD_LIBRARY_PATH="${GAMEROOT}"/bin:$LD_LIBRARY_PATH
fi

if [ -z $GAMEEXE ]; then
if [ "$UNAME" == "Darwin" ]; then
GAMEEXE=portal2_osx
fi
fi

So their script will set up the library environment if run under Linux, but will not assign an executable, meaning that they had a mind to support Linux, but didn't compile the final binary. Hearing this after the whole "evidence of linux-based steam client found in Mac OSX client" thing from a year or so back just gets me excited. I know I'm probably just getting my hopes up, but it would be awesome to see Linux supported by arguably one of the best game studios out there.

BTW: Portal 2 was FANTASTIC. Play it if you haven't already. :)

Wallpaper Cycles in GNOME

GNOME has supported wallpaper cycles for a while now. I know that Ubuntu includes several of them in the default install. (Check them out; there's a Space image cycle, and a cycle for winners of a wallpaper contest.) However, if you want to make your own cycle, then you're SOL, cause there is no official GNOME editor for these wallpaper rotations. So I wrote a simple utility to make them:

#!/usr/bin/env python

import os, sys, datetime, random

# Configuration:
extensions = [ "jpg", "jpeg", "bmp", "gif", "png" ]
period = 5 * 60 # 5 minutes
transition = 5 # 5 seconds
starttime = datetime.datetime.today()
randomize = True


# Verify that we were given a filename:
if len(sys.argv) != 2:
print >>sys.stderr, "Please provide a destination filename."
exit(1)

# Select all images in the current directory:
imgs = filter(lambda x: x.split(".")[-1].lower() in extensions, os.listdir("."))

# Now, get all of their absolute paths:
imgs = map(os.path.abspath, imgs)

# Shuffle if needed:
if randomize: random.shuffle(imgs)

# Functions for writing the XML document:
def write_static(f, path):
global period
f.writelines([
"\t<static>\n",
"\t\t<duration>%d</duration>\n" % period,
"\t\t<file>%s</file>\n" % path,
"\t</static>\n"])

def write_transition(f, start, end):
global transition
f.writelines([
"\t<transition>\n",
"\t\t<duration>%d</duration>\n" % transition,
"\t\t<from>%s</from>\n" % start,
"\t\t<to>%s</to>\n" % end,
"\t</transition>\n"])

def write_header(f):
global starttime
f.writelines([
"<background>\n",
"\t<starttime>\n",
"\t\t<year>%d</year>\n" % starttime.year,
"\t\t<month>%d</month>\n" % starttime.month,
"\t\t<day>%d</day>\n" % starttime.day,
"\t\t<hour>%d</hour>\n" % starttime.hour,
"\t\t<minute>%d</minute>\n" % starttime.minute,
"\t\t<second>%d</second>\n" % starttime.second,
"\t</starttime>\n"])

def write_footer(f):
f.writelines(["</background>\n"])

# Open the file for writing:
f = open(sys.argv[1], "wb")

# Write the XML files:
write_header(f)
for i in xrange(len(imgs)):
write_static(f, imgs[i])
write_transition(f, imgs[i], imgs[i+1 if (i+1)!=len(imgs) else 0])
write_footer(f)

# Done!
f.close()

Usage:

./gen_wallpaper.py output.xml

The script will detect all images in the current directory, shuffle them, and write them into the output xml. You can then open that xml file in the background selection dialog (get the file dialog to show 'All Files') and your background will cycle through all of those pictures.

Have fun! I know this script has been pretty dang useful for me. :)

Humble Bundle 2

Just a quick advertisement: Humble Bundle #2 is out! This time around, they will be selling Braid, Cortex Command, Machinarium, Osmos, and Revenge of the Titans. Sadly, none of the devolopers have commited to releasing source (yet), but this bundle is still a great deal, and I do love supporting indie developers. Plus, I was already planning to get Osmos and Machinarium, so this bundle is still pretty awesome.

Oh, and once again, (as of time of posting) Linux users are the most generous contributers at an average of $14.10, Mac users are second with an average of $7.66, and Windows users are at the back of the pack with an average of $5.67. WOOO, GO LINUX! Developers, are you listening?

Oh, and I'm glad to hear that Jonathan Blow (the Braid developer) got around his problems with linux. :)

Ok, that's it, spammers.

Ok, so a new spammer has learned about this blog, and they're sending 5-10 spam comments per hour. Defensio is handling this crap like a champ (98.5% accuracy), but it's still incredibly annoying, since I go through all those comments to check for false positives...

Anyway, I've added Re-Captcha to the comments form. Comments that make it through that are still passed through defensio and moderation. Let's see you get through THAT spammers!

(This is in no way a challenge. Please don't try to get through that, spammers...)

 1 2 3 … 13 Next →

About

User