What I’m all about (for now)

June 30th, 2009 5:24 PM

Life has an interesting way of pointing things out to you when you least expect or want it. Like a good friend that gives advice, you can choose to listen to it or nod, smile, and then file it in the mental circular bin.  This time, I am choosing to listen to that advice life is giving me.

This blog has helped not only fulfill a smaller purpose of communicating my own ideas with the world, but also giving me an instant written record of my life for the past 2 years or so. It’s the first time where I can go back and look at where I was at a certain point and put myself back there mentally to remember what was going on. Sometimes it’s good, sometimes it’s bad.

The long gaps in postings has also been quite informative. Either I was in a funk and didn’t want to write anything, or was incredibly busy and couldn’t do it. Either way, the blog was left a bit fallow and dusty. Heck, most are started, a few posts made, and promptly die an ignominious death.

But it has given me a window into my own life where I can look at things in as objective a manner as possible. That’s something writers strive for, while also maintaining a subjective internalized viewpoint of experience.

So why all of the posting about programming and games if I’m a writer now? Because it’s still something that I like to do. I do get a lot of questions about that, because I do still code. I think of it just as another form of writing. Whether it’s C, Python, a screenplay or a book, it’s crafting worlds for people to explore. I don’t think I’ll ever lose my fascination with computers, programming, or games.

So what am I about right now? Both. There will be times when games take a back seat for a while, such as now. Writing was, and is, my first love. That’s not saying I won’t do both in the future. Writing pays the bills and it’s something that I enjoy. Programming is also, although it doesn’t pay the bills right now. A few years ago, after we finished filming The Cursed, I had to ask myself a tough question: am I a writer or a programmer? I arrived at writer.

What I’m trying to say is that neither will be neglected, but for many of you reading about just the games stuff may find that I post about writing for awhile and think I may have abandoned games altogether. That’s not true at all. I’m a strange cat that walks not only between walls but between worlds.

Both are mediums of entertainment, and they’ve been converging for years now. Does it not make sense to want to explore both? It would be like denying yourself another rich vein of gold in a mine because, darnit, all you want is that one vein you’ve already hit.

For those of you who come to this blog for game-related stuff, you might find something in the posts about movies and writing. And for the writers looking for writing stuff, stick around and check out the game-related posts. There’s room for everybody here.

Business, Filmmaking, Games, Movies, Programming, Writing , , , , ,

The Cursed Premiere Report

June 29th, 2009 9:58 PM

It occurred to me after the premiere that I had not partaken of much sleep for several days while preparing. So, after a long a restful weekend, here’s what happened.

First, I’d like to thank Sam Doak and Brad Kaplan for pitching in and working just as hard as I did to make this whole thing happen. Because of them, everybody at the show was able to enjoy it on our custom-built theater screen with a killer sound system, digital projection, and lots of concessions. Without them this would not have happened.

I was, in a word, nervous about this premiere. It was my first, the first one I had ever put on at all for a movie that I had written and produced. We had spent the last month preparing by locking down a venue, planning, and even doing some construction. Not to mention that some of the technology had only been tested in parts but not altogether in the configuration we were using.

But it all went off quite well. The first moviegoers showed up around 6:30 and quickly filled the Steelworkers Hall. Within a few minutes we had a capacity crowd and there were still more coming in. It was standing room only for the 7pm show.

After Brad, Louis, and Gene said a few words, we lowered the lights and fired it up. The crowd went nuts during the opening credit sequence, especially when Phil’s name showed up. It was a great feeling knowing that we had finally got the movie out there for everyone to see.

At one point, I remembered stepping outside, not really wanting to pace around at the back while waiting for it to be over. Everybody was silent there in the hall, which I took for rapt attention, although it could have been something else entirely.

The movie finished and everybody stayed glued to their seats to watch the end credits roll. I could tell when somebody found their name on it because they would get up after that. When we brought the lights up, I looked outside one more time and saw yet another large crowd forming for the 9pm show. Unbelievable. These people were coming to see this movie.

Many of the folks from the 7pm show hung around to shake hands, give their congratulations, take pictures with the stars, and then make their way out. I couldn’t tell you how many people I gripped palm with that night or how many flashes from cameras temporarily put bright blue spots on my vision. It was fun and exciting.

I can’t wait to do it again.

Filmmaking, Movies , , , ,

Where’s Pygame Package Builder?

June 24th, 2009 12:34 AM

Just thought I’d drop in and leave a quick note while preparing for the premiere of The Cursed in town on Thursday.

Pygame Package Builder has definitely not been forgotten. I’ve been spending what little spare moments I have in the last 2 weeks getting it ready. I thought PPB was almost ready for prime time when the Python gods brandished their flaming swords of bugs and hurled maniacal laughter at me while I read through tracebacks.

Actually it wasn’t quite as bad as all that. There were 2 major features I wanted to put into this initial release not because they were cool, but because they were essential to any decent-sized game. On top of that, I learned a valuable lesson when it comes to the inner workings of Distutils.

So, no fear. It will be coming soon. I just have to make it through this week for all of the movie-related stuff, then I will hunker down and finish PPB by next week.

Wow, I managed to write a post about movies and games all in one. Hope everybody isn’t confused by that.

Games, Movies , , , ,

Pygamediag – A Quick Utility for Pygame Programmers

June 21st, 2009 8:41 PM

Here’s a little utility I wrote in a few hours as a multi-platform answer to dxdiag. It’s a developer’s tool which allows you to quickly reference information about your installation of Python, Pygame, SDL, the video hardware, and operating system stats.

pygamediag

You can download it from the Pygamediag page under Utilities up top.

Games, Programming , , ,

Pygame Package Builder

June 16th, 2009 6:33 PM

Rather than wait, I’m releasing some screenshots of this wonderful little tool I’ve been working on. This is something that I’ve been coding on and off, for the last few months. Given so little spare time that I have, it was refreshing to go back and actually get it (nearly) working.

Pygame Package Builder (PPB) is a GUI and command-line tool for automating the tedious process of compiling and packaging up your pygame-based project into a working executable. Right now PPB targets Windows, but the underlying code will ultimately be able to target Macs with the py2app module.

Basically, you create a project file which gives basic information on your game and some optimization features. These features are safe for pygame, so you won’t get any more errors about missing this or that module from pygame.

But wait, there’s more! You can add in directory wildcards, so all of your extra data files can also be included in the packaging process at no extra charge.

Now, you can build from within PPB itself, or you can alternately use the command-line tool, which uses the same engine code to build projects. Which means you can also use it as part of an even larger build process without much hassle.

That said, it’s almost working. There are a few small nitpicking bugs and one more feature I want to add in that will make it more feature-complete from my own perspective. This was built out of my own needs, but I quickly saw it as something useful that the Pygame community could use.

And now for some screenshots. Click on each to enlarge.

Basic game information here

Basic game information here

Set packaging options safely for Pygame without the guesswork

Set packaging options safely for Pygame without the guesswork

Add folders with wildcards for certain files, or add individual extra files

Add folders with wildcards for certain files, or add individual extra files

Build your project right from within the GUI, or use the same project file with the CLI tool

Build your project right from within the GUI, or use the same project file with the CLI tool

The heart of this whole tool is trying to help automate the process for you, the pygame programmer, so you can easily and quickly make binary packages for release to the world, without having the mess with or have innate knowledge of the guts of distutils. Stay tuned, because I hope to have it up here and on pygame.org here soon.

Games, Programming , , ,

Bad writer, no cookie!

June 15th, 2009 12:29 AM

I know, I’ve been very bad lately. Haven’t updated anything here in a while. When your nose is to the grindstone, it happens. Writing quite a number of things, and also getting the marketing ready not just for The Cursed but also for my book.

There’s also a piece of software that I’ve been working on since March that’s finally coming to fruition. Those of you that use Pygame might find it useful. More on that in a bit.

So stay tuned. There’ll be more posts coming up soon.

General , , ,

Free Games Are Good Part 8 – Battle For Wesnoth

June 5th, 2009 10:12 PM

There have been many occasions where, in looking around on the Internet for a good, free game leaves me feeling high and dry.  Especially in the realm of tactical, turn-based RPGs.  It’s not the Internet’s fault; these games are notoriously difficult to make.  Not just programming them, but also because their graphics can be sub-par, or the story development isn’t there at all.

Battle for Wesnoth, however, delivers it all.

Battle For Wesnoth

I would put something pithy and possibly great about this game right here, as to its aims, but I’ll let the game’s developers speak for themselves on this one:

Battle for Wesnoth is a free, turn-based tactical strategy game with a high fantasy theme, featuring both single-player, and online/hotseat multiplayer combat. Fight a desperate battle to reclaim the throne of Wesnoth, or take hand in any number of other adventures…

From that simple statement, it delivers it all and much, much more.  The original campaign, comprising 19 missions which encompass a fun and engaging storyline, took me many an hour to get through on the various levels of difficulty. It seems that these guys “get it”.

In addition to the original game’s campaign, the community around Battle For Wesnoth has created a massive library of others to partake in. Armed with a rich wiki of information, a robust map and campaign editor, and a large support community, this is definitely one of those gems in the crown of open source.

Campaigns can be downloaded from within the game. No muss, no fuss.

Campaigns can be downloaded from within the game. No muss, no fuss. (click to enlarge)

Wesnoth also features a comprehensive map and campaign editor

Wesnoth also features a comprehensive map and campaign editor (click to enlarge)

The principal campaign features playable characters that are critical to the storyline

The principal campaign features playable characters that are critical to the storyline (click to enlarge)

Wesnoth's campaign system includes story elements driven by individual character dialogue (click to enlarge)

Wesnoth's campaign system includes story elements driven by individual character dialogue (click to enlarge)

And just to sweeten this post up a little, here’s a trailer for it.  You’d almost swear you were looking at a commercial game.

When you play it, I would highly recommend running in fullscreen mode, in order to avoid any issues you might run into with mouse scrolling on larger maps.  I ran Wesnoth on my Linux machine with only 512MB of RAM, and it performed admirably. On Windows the experience was exactly the same.

And here’s the usual suspects. As of this writing, Battle for Wesnoth’s stable version was 1.6.2.

Operating Systems:

  • Windows
  • Linux
  • OS X (10.4+)
  • Solaris
  • AmigaOS4
  • OS/2 & eComStation
  • RISC OS

If your operating system isn’t listed, take a crack at porting it.  Sources are available and Wesnoth is licensed under the GNU GPL version 2.0.

Games , , , , ,

The Power of Quicksort Compels You

June 2nd, 2009 8:08 PM

I’ve said it once, and I’ll say it again: in Python you can do some amazing things with little or no code at all.  Sorting is also one of those things.

In poking around online, I found this little beauty that somebody had done to show how compact, elegant, and still powerfully fast one can write a Quicksort algorithm in Python:

def qsort(L):
    """
    Porting the Erlang quicksort implementation from
    http://en.wikipedia.org/wiki/Erlang_(programming_language)
    """
    if not L: return L
    Pivot, Tail = L[0], L[1:]
    return qsort([X for X in Tail if X < Pivot]) + [Pivot] + qsort([X for X in Tail if X >= Pivot])

Remembering back to the days of learning sorting algorithms, I recall that Quicksort was considered (at the time) one of the fastest, due in no small part to its recursive nature.  It was also the bane of many an entry-level Computer Science student just digging in and getting a fuse blown out learning just what recursion meant.  I even find myself going back every so often to see how rusty I’ve become with these fundamental concepts.

Looking at it now, it’s as much a piece of art as it is functional, working code.

Special thanks to the anonymous coder that put this up on Pastie.org.  Link to original.

Programming , ,

Falling Off The Merry-Go-Round

June 2nd, 2009 6:44 AM

There hasn’t been much to write any posts about, at least from my perspective.  Hollywood is getting ready to take its summer break before heading back to filming around August, so not much there.  My own writing projects have been eating up the rest of my time.  This has led to less time here on the blog, along with gearing up for the premiere.  So much to do, and a lot of it uses the other part of the brain devoted to non-blog matters.

But I do have some news coming up here soon, and as soon as it’s cool to put up, I’ll be sure to post here.

General ,

Playing with concrete

June 1st, 2009 1:13 PM

Some things just bug me so much that I have to go back and “fix” them until they’re right.  In this case, I fixed up what I perceived were some shortcomings in the Concrete Yardage Calculators utility.  It’s now more useful than it was in the previous release, and it’s even faster due to using the optimizing compiler.

So take a look and download it for free, try it out.  It’s small, lightweight, and fast.

Programming , ,