Very impressed with all the work so far! I’m even farther behind than I’d hoped, but that’s what happens when you have a plan for half the possible outcomes and something you never anticipated gets voted into your lap. I wasn’t thrilled with the theme announcement (my “randomly generated” game featuring gun-toting vampires, predatory aliens, superintelligent cyborg bears, and a bandana-wearing killing machine named John Randbo would’ve been awesome, you jerks), and rather than diving into coding the first terrible idea I had, I dawdled, watched Notch tackle the problem with more ease than I could manage, irresponsibly spent a few hours accidentally brainstorming a great way for the writer and musician I’m trying to start a studio with to get their work noticed before learning some soulless capitalists had somehow retroactively stolen my idea, and justified eating dinner and sleeping by telling myself the best seed of an idea I had needed to germinate. And it has germinated; whether I can put down the proper roots in only 24 hours remains dubious at best, but I’m prepared for a marathon coding session. My working title is Omnicider – the idea is to turn the theme on its head and discard the notion that being alone is somehow a “bad” thing and make it the goal. My protagonist is a mad scientist-type whose only desire is to be alone, even if he has to kill everyone else on the planet to get there! Killbots, an orbital death platform, and shooting down pesky Earth-borne missiles with a particle cannon are the gameplay elements; part RTS, part Missile Command, all fun? I may have to fall back to the Jam if things don’t proceed smoothly, but I’m not giving up until my failure is entirely obvious.
I’ve never been actively encouraged to generate anything resembling a food blog, so I produced a suitably epic vegan breakfast to start my coding session:
Clockwise from the top left, you’re looking at unsugared grapefruit with pineapple, off-brand Gloomios with thawed blueberries and soymilk, hot miso soup with potatoes, leeks, deep-fried tofu, wakame, and soba noodles, a large cup of home-roasted Sumatran coffee AKA “the strong stuff”, soymelet with steamed broccoli, fried mushrooms, and green onions, and margarined toast. Hearty and perhaps a little extravagant, yes, but don’t ever let anyone tell you that vegans can’t be foodies.
I had hoped I’d be showing up with a bunch of extra libraries and tools to declare at this point, but I’m still more or less as woefully underprepared as I was a few days ago. And here at the last minute, rather than reading more docs like a consummate professional, I’m taking poorly lit pictures of my desk? I’ll never pull this thing off!
The main rig you’re looking at consists of a custom-built AMD X2 4000+ with too little RAM and too many hard drives, a 720p Olevia LCDTV doubling as a decent 26″ monitor, and an additional Viewsonic VP171b with fancy-pants portrait-rotating stand I picked up for cheap. Also pictured is one of my Thinkpad x41 tablet computers running GIMP (artists: look into buying one of these on eBay if you can stomach not having a built-in disc drive or a full-size hard drive bay – using my A+ certification skillz I managed to get a fully-featured, pressure-sensitive, stylus-usin’ tablet for under $100!) There’s also a third PC off to the side, but because it’s running XP like the other two it’s going to be worthless as a testbed.
Note also the Python books I’ll be desperately referencing all weekend, the genuine Super Mario World cartridge as desk tchotchke, the awesome Jakks Ms. Pac-Man/Galaga/Mappy/Pole Position/Xevious Plug-n-Play (now somehow considered a collectible? Dammit, I’m old), and a super secret hint at where I might be going with my game’s protagonist if the theme I’m rooting for wins.
Have fun whuppin’ me, everyone!
Not that I know what I’m doing, but here’s a list of everything currently in my Python-based game creation toolbox:
Python 2.6 – Core language, natch. Various dependencies demanded I stick with a 2.x version, and I’ve since been rewarded for using 2.6 instead of opting for 2.7. Unless you’re using Pygame and only Pygame I’m not sure you have a better Python platform to launch a 2D game from.
Pyglet 1.2dev – The backbone of any super-fast Python game engine, if the rumors are true. The stable 1.1.4 release doesn’t have support for joysticks, and considering my aspiration outside of LD is to make a platformer that simply won’t do. I’ve seen a few flashy 3D demos built on Pyglet as well as some 2D stuff that would make Pygame curl up in a fetal ball; it seems as good a place to start as any.
Cocos2D 0.5.0 – Pyglet is careful to never call itself an engine – it’s a “framework”, meaning you still have to do a lot of the heavy lifting yourself. Cocos2D is apparently where lazy and/or novice coders (guilty on both counts) go if they don’t want to build camera and scene mechanisms from scratch. The test folder is bloated with a bunch of crappy transition stuff (I didn’t see a star wipe anywhere but I’m sure it’s because I stopped looking), but it’s also got a few things that begin to resemble actual games. Assuming I can tackle the documentation in time, it might be a winner.
Rabbyt 0.8.3 – People say you should bring this library into the mix if you want genuinely fast/responsive sprites, and they’re probably right – I dare you to look at the collision.py example in Rabbyt’s docs and not dream of the next generation of bullet hell shooters. Whether I can get this to happily coexist with Pyglet AND Cocos2D remains to be seen, however.
Pygame 1.9.1 – Kicking around in my packages folder mostly because you need it to run half the indie game demos out there, I doubt I’ll be using it for LD22. Its stability and deep documentation chain comes at a price of snail-like speed, supposedly, and one thing I like in even the simplest games is speeeeed.
Pymunk 2.0.0 – Assuming 2D physics are going to be a necessary gameplay element for my game, the Chipmunk library can handle all that nasty higher math that would stop me cold, and the Pymunk wrapper might even make it reasonable to include on such a tight deadline. If I have less than a week to dive into documentation this is going to be last on the list, though.
AVbin/PIL/wxPython/etc. – I’ve lost track of all the libraries kicking around on my hard drive, but I think I’ve covered everything but the stuff so necessary to get Python past the command line that most devs forget it’s not part of the core language.
GIMP – Photoshop is for Mac evangelists and rich people. Runs great on my 2006-era Thinkpad X41 tablet computers, too (aside: Hey marketing dinks: Stop using words that mean one thing for something else. A “tablet computer” is a laptop with a folding screen and a pressure-sensitive stylus, not an underpowered oversized smartphone you can’t make proper digital art with.)
Inkscape – Vector art rules, and while I have trouble getting Inkscape to always do what I want it’s clearly the program you want to using when not working in raster. Anyone know if my secret plan to use public domain fonts as the core of my art assets is in violation of the spirit of the rules?
Allegro Sprite Editor – Just discovered this via the LD Tools page, and I’ll be investigating it in the frantic runup to this weekend. Looks like the sort of tool I was convinced I’d have to create myself to make sprite creation simple, but we’ll see.
Tiled Map Editor / Tile Studio – Also just discovered. I’m not certain I’ll be wanting or needing tiles for LD22, but if I do these look to be useful tools. Spelunky-style procedural tile layout generation is always going to be my taste over static levels, but considering I don’t understand the algorithms Derek used I might be stuck with boring tiled layouts for sake of time.
SFXR – Awesome little app. I’d love to spend entire days tweaking sound effects until they were spot-on, but that’s clearly not an option here. I may be able to kick out a few bleeps and bloops with this and avoid wrestling with Audacity entirely.
LMMS/Inudge/Musagi – I’m pretty certain I won’t have time to add any real music while I’m scrambling just to get something playable out, but these all seem like possible options if I somehow find myself with a few hours to spare. Given the choice I’d just drop in some old classical recording from a nation whose copyrights we don’t respect and be done with it; the real tragedy is that making the perfect music for a game might be the place where I have the most fun.
Assuming my entry goes anywhere at all I’ll probably discover I need several thousand other tools/libraries and waste valuable time debating whether I’m allowed to use anything I didn’t declare, but so be it. Let the documentation binge begin!