Spiridios is a Software Developer in Redmond, Wa who likes to try his hand at making games now and then.
About Spiridios (twitter: @spiridios)
Archive for the ‘LD #23’ Category
I decided to port TPod from Python over to something that runs in a browser, and Silverlight won out as the technology to do it in. It was largely a toss-up between a Java applet and C# Silverlight, and since I work in Java daily I figured I’d refresh my C# skills.
I would have posted this during the compo, but my productivity wasn’t exactly at competition levels and I literally ported the last feature the day voting ended. Which is probably good, since I don’t think this really should count under the “porting” provision. This wasn’t just a “tweak a build file and correct a backslash” kind of port. This was a “rip the guts out, since even the language itself is fundamentally different” kind of port. Those who played the Python version should recognize the game, but will see I implemented some of the suggestions from the comments. The source code largely mimics the Python code, though Silversprite/XNA do things a bit differently than PyGame, and I did refactor and implement some things better now that I had time for such luxuries as “encapsulation”.
So it’s probably time to do a post-mortem of my project, T-Pod. The submission page is here if you want to check it out.
I started off on the wrong foot. I took hours on Friday to come up with an idea. The theme just didn’t inspire me – no offense to anyone who was inspired, because there’s some really great interpretations on the theme out there. My brainstorm page was filled with doodles, but nothing was saying “create me!” The idea I finally came up with was mostly just desperation to get started on something, and it really wasn’t original in any way.
When I had two hours remaining I had the game you see here and still a long todo list. I opted for a refactor of the explosion code since it was hacked in and messy (alien saucers don’t explode, lasers do. Hey, it seemed like a good idea a the time!) and I wanted to make the planet explode too. That took almost the hole two hours, not the 20 minutes or so I was hoping for. It also introduced a ton of bugs that I had to clean up last minute. And in the end, the code is still just as hacked in and messy, and I never did get the planet to explode. Next time: messy but working code stays until AFTER compo. In that time I could’ve had a third alien AI behavior, more tuned alien spawning/speed, or just general balance fixes.
Also, my particle effects were supposed to fade with time, but my unfamiliarity with PyGame left me with the always red particles you see in the game. If you check out the resources you’ll see the particle graphic is grey so I can tint it at runtime. Unfortunately the only way I could find to tint a graphic was to do an alpha fill on the surface…. Which would mean a separate surface for each particle, a complex system that keeps surfaces for each possible color, or a fill to a temp surface just before blitting. Instead I opted to just work on other features (like the useless refactor!)
So what went right? I completed the game and actually had time for polish I’ve never had time for before (music? I actually managed music? Oh yeah, it’s autogenerated). I learned enough Python and PyGame to make a finished game! Prior to this, my only real experience with either was the practice conversion I did of my earlier LD48 game about a week earlier.
Thanks to everyone who’s left a comment on my game! Here, have a cat with a Wii remote on its head.
I have a rudimentary game! I even have sound!
Though two depressing things happened today:
I learned my idea isn’t all that unique (duh), there are others working on this exact game! =(
I learned that my idea so unoriginal I used it in LD17! =(
Even the enemies look the same as the enemies in my ld17 submission! =p (I used the enemy sprite from LD17 as a placeholder since it’s late and I don’t feel like drawing anything right now)
For tomorrow I have to play with the mechanic a lot to try and make it more inverted Gyruss and less Evil Lair Command. I also have to get py2exe working again. I was going to post an alpha, but I couldn’t build an executable. I had it working before the compo on my test project. I’ll have to see what’s gone wrong.
For the record, I’m not liking the them. =p I spent hours yesterday trying to come up with a unique idea based on the theme, had a couple of ideas I didn’t think I could pull off in time, then settled on a reverse Gyruss / Round Space Invaders type game where you defend a tiny planet from something. Yeah, kinda a stretch. Been listening to chiptunes on Youtube to get the proper mind frame.
Here is the title screen for Tiny-Planet Orbital Defender (T-Pod).
Can’t pass up trying for the 10th anniversary! Going to try again, this time with yet another language/library I’m barely familiar with. PyGame!
At least this time I practiced by converting my only successful LD into Python. I intend to use base code I created from that effort. If you like, you can see the full port of my LD17 entry, Evil Lair Command.