Monthly Archives: July 2007

Soft Landing for Windows, thanks to PyInstaller


As we approach the demo (like Achilles approaches a turtle…) and as we have a new Windows-based audio guy on board, it has become pretty important that we get a standalone version of Soft Landing working on Windows. See, for Jules and me, Soft Landing requires Python, Pygame, PyObjC or Numpy, and PyOpenGL, each at a particular version number. As we’ve moved around between machines over the past few years, we’ve both gone through the dance of installing all these dependencies many times.

Thankfully for our future players, some programmers more knowledgeable than me have put together some brilliant software for packaging up a Python project with all of its dependencies into a self-contained downloadable file. On the Mac, there’s py2app, which I’ve had working for a long time now, and on Windows, there’s PyInstaller, which I just tried out for the first time today. It took just a short while to get everything working, and most of that time was wrestling with Windows itself, not with the software.

So PyInstaller is yet another item in a long list of indispensable software without which this project wouldn’t be possible. It’s heartwarming to think of how such an amateurish coder like me can create such an ambitious project, thanks to the hard work of people who actually know what they’re doing. I’m looking forward to putting a really extensive thank-you message in the game.


Today I dropped Aaron’s noises into the game for the first time. There have been several clues that Aaron is the right guy to make the audio for our game:

  • The very day that Jules asked him about helping on the project, he put together an awesome SL-specific stage music.
  • The next day, without prompting, he provided another awesome song.
  • Very soon after that, he provided a huge folder full of tons of various sound effects, really everything that the game needs right now.
  • The sound effects have whimsical names like “chargingmylaser.wav”, “seriousblast.wav”, “worlddestroyer.wav”, and so on. Yes, I think he’l fit right in. :D

Also, I worked on making the sounds work better when played very rapidly. Previously, I think each call to play() was bumping into the previous one, causing really weird and annoying patterns of uneven sound. Now we call stop() on a sound before playing it, so that every time we can be guaranteed that the attack of the sound will get played, rather than pygame just seeing that the previous instance of the sound was still playing and leaving it to decay.

Alpha Videos

Hey. Boring musings ahead, so I will put the good stuff at the top here.

Here are some new videos of the game, in various parts. This is still alpha stuff though, so it’s pretty shaky, with some cleanup and many things needed to be revisited before completion.

Six short videos.

So, not so much work over the last week. Still, things are looking good and at least I’m doing a tiny bit each day, which is the most important thing. This was never meant to be a fast project, but more of an ongoing hobby. I guess one of the funny things about working on a game like this is that I’m doing heaps of work without any feedback [aside from Fet]. One of the great freedoms of Indie development is the most obvious one – you get a chance to make a game on the terms that you like. More often than not, when making a decision about something in Soft Landing, I think more about what I want it to be like, before anything else. It certainly makes me think that if I were ever to make this kind of thing for a living, I would look back wistfully on these carefree days.

Having said that, a lot of my processes are improving a lot. I can do a lot of things that are art related a lot faster than I could even imagine doing them before. Doing this first level has taken forever, but I feel confident that I’ve learned so much that in the future the process will feel completely different. As with anything, I suppose, the advantage of experience is immeasurable.


Fet vs. Windows, round II

Well, I don’t know exactly what did it, but for some reason, Soft Landing is running fine on Windows for me now. Once I got it working, I found a weird bug: the guys’ animation frames were all jumbled up, causing enemies to spasm around comically instead of menacingly and smoothly deploying their weapons. I guess os.listdir() on Windows doesn’t return the files in alphanumeric order; we were depending on the filenames to order the frames properly, so this was messing us up. I threw in a call to sort() before loading each image into our image libraries, and all was well. So that’s the story of my first bug fix and Subversion commit from within Windows. :P

Fet vs. Windows, round I

I have now spent three evenings trying to get Soft Landing working on Windows. I know it works, because Jules runs it all the time. I installed XP on my MacBook, set up Subversion, downloaded Python and Pygame and PyOpenGL, checked out Soft Landing… But the game keeps crashing with weird errors, like claiming that I’m trying to iterate over a module when I’m iterating over a dictionary, or that it can’t find ctypes, a module I had never even heard of, let alone tried to use. Perhaps I need to start over from scratch, or something.

It doesn’t help that most of my decades-ingrained Mac behaviors do nothing or do something completely different in Windows. I’ve hit Command dozens of times, ready to perform a keyboard shortcut, only to have the Windows menu come up… ~_~

Crystal and Music

Hey everyone!

I’ve been working on the game recently, and things are going nicely. More character poses have been made and I am definitely getting a feeling for how to make them work faster. I decided to draw one of our more less-major characters recently, who will probably turn up in the demo. Usually in order to go from nothing to something I’m happy to have in a game takes about a week of on-off work and lots of um-ing and err-ing, however this came together a lot faster. I’m feeling much less terrified about using photos for basic pose reference, which is good because given how many people I need to draw I really need the help! Anyway – here she is, Crystal:

Crystal Honda

In other news, I recently got in touch with a dood called Aaron, who looks to be our man for the music side of the game. He’s extremely talented and also just an awesome guy to chat with. With this news I can almost taste the demo being released (no, really!), and I’m looking forward to seeing how things shape up on the aural side very much.

Cheers, folks!


Yesterday I added the ability to play noises, start or stop music, and start or stop looping ambience in the novel part. Minor stuff, but it’s important.