pygame is
Python
Simple DirectMedia Layer
 
 
pygame.org is
Site Swing
Merry Christmas - Christmas Avenger

Merry Christmas - Christmas Avenger - 1.0

Nathan Franck (font)

Tags:

Description

The best way to say "Merry Christmas" is with a quaint arcade game that looks very simple but draws in the most hardcore of gamers for great lengths of time. As maker of this game, I do find it greatly enjoyable. Cheers, and Merry Christmas.

Links

Home Page: http://www.battrapgames.com/games/python%20legacy%20games/
Windows: http://seagullchristmas.4shared.com

Screenshot


click to view original size

Releases

Merry Christmas - Christmas Avenger - 1.0 - Dec 18, 2010
Merry Christmas - Christmas Avenger - 1.0 - Dec 26, 2009

Pygame.org account Comments

If you wish to leave a comment with your pygame.org account, please sign in first.

March 3, 2011 12:03pm - Zachariah Callaway - nickname: (xzcallaway)
A .deb package of Christmas Avenger is available for download at dotdeb.com in the Animations section.
December 29, 2010 6:44pm - Nathan Franck - nickname: (font)
Sure, you can steal it.
December 28, 2010 7:35pm - Robert Leachman - nickname: (quazar)
Thanks Nathan! yes it does help, I've tried adding time to my animation but it's not making much difference. The clock on OS X is a little wonky and there seems no getting around it. Good job with your game! And I like Flash Tactics too! Hey you didn't declare a license for these, is it OK to steal your code? :) I need to try some physics next, after my current project which is all retro at the moment and tough for this newbie.
December 24, 2010 12:57am - Nathan Franck - nickname: (font)
I'm trying to comprehend, but I'll try to explain. clock.tick(60) in there tells the program to delay the program to corespond to a framerate of 60 fps, though it usually can't do 60 fps. clock.tick(60) is a function that returns the delay between frames in the game, so I can use this number to find a global game speed to animate object physics (if the delay between frames is larger than usual, then the gamespeed is increased, and an object moves furthur during the frame to accurately represent the real-time position of the object). The code I used in this game is pretty ugly and bloaty, so don't study it too hard. It was made pretty rapidly over the course of 2 weeks before last Christmas. In more current games I've simply used the line self.timeLapse = self.clocktick(framerate), and when animating objects, I do something like: position += speed*timeLapse. This makes for smooth motions over erratic framerates. Hope I helped you somehow.
December 23, 2010 8:44pm - Robert Leachman - nickname: (quazar)
Dude where can I learn more about this notion of self.gamespeed? My animation is twice as smoother at 60 FPS than 30 (downright twitchy on my machine) but that's only the first part of the battle. I see your `min(float(self.clock.tick(60))/60*1.2, 1.5)` yields .32 or .34 most of the time but sometimes as much as .8 so that's clearly telling me my guys won't move smoothly until their speed factors in that variance... but still I don't get it. Clues? And... MERRY CHRISTMAS!
December 23, 2010 4:51pm - Robert Leachman - nickname: (quazar)
Really cool!
December 18, 2010 7:49pm - Nathan Franck - nickname: (font)
I brought it back just for you.
December 11, 2010 8:27pm - Robert Leachman - nickname: (quazar)
Not even a year later and it's gone gone gone? Darn.
February 16, 2010 2:26pm - DR0ID - nickname: (dr0id)
try PEP8 style for the future
February 14, 2010 12:09am - Nathan Franck - nickname: (font)
Your code wasn't a ton better... call it different programming styles ;)
February 14, 2010 12:08am - Nathan Franck - nickname: (font)
Glad you like it.
February 12, 2010 11:18am - Gummbum - nickname: (gummbum) - 4/5
I forgot to rate. A major ding for code organization, minor ding for my difficulty with cause and effect (my clicks = what goodies, exactly?). If I was only interested in the play value, I'd give this 4.5.

You should post a polite invitation on the Pygame mailing list, Nathan. I know the game is seasonally themed and the season has passed, but Christmas Avenger is great on its own merit--it doesn't need holiday spirit to lift it up. The description is very understated, hence I expect that people are really missing out. :)
February 12, 2010 11:05am - Gummbum - nickname: (gummbum)
Haha! This is a gem. Seagulls are more evil than I ever thought it possible: the villain you love to hate.

I played for about 25 minutes. After the first five minutes I got this:
File "Merry Christmas.py", line 1310, in <module>
game.start()
File "Merry Christmas.py", line 1277, in start
self.objects[a].animate(a)
File "Merry Christmas.py", line 98, in animate
game.achievements.chainreactions[self.vars[7]][1] += 1
TypeError: 'int' object is unsubscriptable

Looked into the code and my brain started smoking.

So I played some more instead. The game is a click-fest. Performance is very good. The happy xmas tree decorators are hilarious in their gleeful single-mindedness. The gulls almost stole my star, those &*$#@!

Observations:
1) Some gulls nosedive into the ground and slide along it. Cosmetic, and uncommon enough that it doesn't detract much at all from the fun.
2) I was so busy clicking to defend my tree I could not observe/comprehend my scores and achievements. I know from glancing at the code that Christmas Avenger is more complex than just clicking birds for points. I definitely will play some more and see if I start to catch on. But this aspect might benefit from a slowdown time warp (for first-time players), or additional audio/visual cues.
3) The code was very hard to follow. if blocks nested way too deep. Classes are few, have generic names, and have a lot of data packed in them. As I hinted earlier, my brain set off the fire alarm. :)

I regret missing this when it came out. Overall an excellent job, especially for a "here's 1.0 in all its glory" release. I'm not used to seeing that on pygame.org. Did you have a team of testers behind the scenes?
spotlight

 
our projects
pygame.org welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
 
recent releases
Jul 28, 2014

Jul 22, 2014

Jul 21, 2014

Jul 20, 2014

Jul 19, 2014

Jul 15, 2014

Jul 10, 2014

Jul 9, 2014

Jun 27, 2014



Jun 24, 2014

... more!
 
for pygame related questions, comments, and suggestions, please see help (lists, irc)