Update 2007/04/21: There is a new post-PyWeek version of the game (version 1.2) that I have now uploaded to the PyWeek directory. Some of the updates are:
- Game no longer quits after losing, but restarts automatically
- ESC exits
- Added animations for showing falling blocks that are missed
- Updated graphics for consistency
- Added a more fun and rewarding win screen to congratulate the player
- Tower is shown after win/lose so that you can see how you did
- Packaging is now supported for Mac/Windows (though haven't yet gotten Mac binary under 20 megs)
So I woke up on the last day of PyWeek competition and thought, "Hey, I could make a game!"
You are looking at the results of the sa(i)d attempt.
It's a clone of an annoyingly addictive game that I played at a restaurant one time that offered an iPod or PSP or Nintendo as prizes, and if you could stack the blocks to the top, you would win the prize. Use this game to practice for the arcade, and if you win an extra iPod as a result, maybe you could send one my way. :)
In other news, this game was also designed to be a one-switch game, meaning that since it is played entirely through the space bar, it is able to share enjoyment (and annoyment) to those who aren't able to use more complex control systems.
I guess since other people are posting hints to their games, I can as well. If you're having a hard time and want to make things a little easier, try pressing F1 a couple of times.
Ratings (show detail)
A typical run of how the game goes for me (animated).
Windows EXE of the post-contest version 1.2
Post-contest update. Some production polish to make it feel more distributable. Game no longer quits after one play. Updated graphics, blocks animate when they fall off. Some other minor polish.
This is the first final version of the game. It isn't packaged, but all source is included.
Here's a screenshot of the finished game with the stack almost reaching the top. I wasn't sure if we would get this far, but I think I've accomplished everything that I hoped to. I guess it helps if you aim low though. Enjoy! :)
The colors are changeable. I spent most of the day at the zoo with visiting friends, and I added this stuff in the car. Got an internet connection to upload this screenshot, we're heading to the mall for the rest of the evening, I plan to finish there.
And now it stacks as well! Not bad for a little over an hour. This last-minute (mis)adventure might not be so foolhardy afterall. We have yet to see, I need to go out to breakfast now with our friends, so I might not get much further before the deadline.
Now it stacks! Time to get the blocks that don't line up to fall off. It also responds to the keyboard, and the tiles move back and forth.
It lives! So yeah, the blocks move across really quickly. Time to get them moving back and forth!
Last day: start, finish, and everything in between.
Anyways, enough of the story. Time for the official "postmortem":
What went right:
The best thing that went right about this project was having a small scope. As a result, I was able to accomplish everything that I wanted to do.
What went wrong:
Uhm... not much I can think of. I'm actually really happy with everything that happened with this project, and I consider it a fairly complete (albeit small) success.
Rethinking what I think of my project
Right after I finished creating my game, I was pretty happy with everything and couldn't think of anything that I didn't like about the project.
However, after playing through around half of the other games, I've realized just how good the other games are, and how little my game brings to the table.
So even though I'm pretty pleased with being able to create the game, there are some things I would have liked to change to make it better.
- I would have liked to package it for Mac and Windows, so that users don't need to have Python and Pygame installed.
- I would have liked to add some sound to engage the player and make it easier to time your key hits.
- I would have liked to make it so that the game doesn't exit when you lose, but rather restarts so that you can try again. That would help make it easier to play and deal with the frustration of the high difficulty level.
- I would have liked to add a more interesting reward for winning the game -- right now it feels kindof flat.
- It might have been nice to add different difficulty levels, but the way it runs right now feels *very* close to the real arcade game.
So yeah. It was a very fun exercise to write a complete game in just a few hours, but it was only possible by choosing such a well-scoped project. It's nice to take my own advice every once in a while though, and start small before working one's way up (after all, up is the only way ;) ).
I took a little bit of time to add one of the features that I've been wanting, which is continuous play that doesn't quit when you lose. You can download the updated version here.
P.S. -- I would appreciate it if anyone could give me tips on packaging the Skellington with py2exe and py2app -- I haven't been able to write setup.py scripts that recognized the required modules -- anyone have tips in this regard? Thanks!
Packaging script for py2exe
It seems that I'm not the only one who ran into trouble trying to package the Skellington into an executable with py2exe. The main problem seemed to be with the way the Skellington loaded the lib directory, and it had trouble finding the required modules once packaged up.
So thanks to some help by many other people, I've been able to create a Python script that will package up your game.
Here is the setup script. Extract this zip file into your Skellington game's lib directory, then execute the script. Give it the name of the final EXE that you want to create, and then tell it if you want it to be a console or Windows app. It will take care of the rest, and place the results in the /dist directory, ready for you to rename, zip up, and upload to your favorite host.
It's still in the early alpha version, but I hope it's helpful to you, and the code is released into the public domain (there's not much to it).
This script worked for me, and allowed me to finally create an EXE package of my game, Slacker.
Please place any feedback or questions as comments here, or feel free to e-mail me at hanclinto at gmail dot com.
Slacker - Feedback responses
Well, I'm glad to hear there's one good thing. ;) Its simple but really fun.
Yay fun! Well, even though I did give it low scores, the game isn't too bad. It's just really simple, and it's kinda not very rewarding to play since I can't actually win an iPod in this one. ;-)
Yeah, I hear you about the rewarding part. I put some work into making a fun animated win screen in the updated version, so hopefully that makes it slightly more rewarding to play. reasonably fun for the simple game it is
So glad to hear it, thanks! Quite impressive considering the time it was done in :) great work!
Thanks. :) The game is simple. It's reasonably fun to play, but I still greatly prefer tetris. It would've been more fun if it were a last minute tetris clone. :) The game is very simple. It works and has a startup screen and everything, but it makes it difficult to reward production points. By the author's admission this is a clone, so no innovation rewarded.
I guess Tetris *could* fit the theme, since ending up at the top is inevitable (it's impossible to not lose eventually) -- though I just really felt that Stacker fit the theme so well, and I had been wanting to clone this game for a while. Glad to hear your vote for making more puzzle games though -- maybe I'll try another one some time. :) It was too fast for me.
I'll chalk this one up to game improvement ideas that I still need to put in -- to put in variable difficulty. 7 minutes total addiction :)
Thanks for the encouraging report. :) very nice all things considering. It would be nice, though, if you could have a difficulty setting, it is a mite bit hard at times ;)
Another vote for difficulty selection -- thanks! It's a mite small game, but I'm glad you seem to have enjoyed it. This thing is tough! Fun for a game cranked out in a day.
Thanks! Fun is what I was going for. It just needs some sound.
Arrgh. You know, you're right? We'll put that up as another feature request I really need to implement. The simplicity of the game is nice here. Hard, though. :)
Thanks! I was really hoping to show people how it's possible to make a simple and fun game in a short amount of time, and how flashy graphics and ornate plots don't always equal fun. Still, there was much I could have done to make this game better, as you have pointed out (chiefly the difficulty thing, again) I like simple control schemes. This game seemed to get too hard too quick.
Glad you liked the controls! I had fun designing it to be a one-switch game, since it's a concept I've been aware of for a long time, but I hadn't ever made a game that worked with it before. Addictive, and a teensy bit maddening!
Thanks for the complimentary words -- they are appreciated! Good hustle :)
hehe -- thanks. :) That was certainly much of the fun for me, though the lack of polish that another few hours could have added certainly shows. Very fun, but very hard, It would have been nice to have some kind of variation.
That's an interesting idea. I guess you mean something like more game types on the same/similar concept? That hadn't occurred to me before, but I like the possibilities.
Or perhaps you're talking about putting in difficulty levels, in which case, I'll add your vote to the tally. :) can't take my stack up to the red part. also it's annoying to have to re-run game.py to restart the game. Anyway, the done is good. Expect to see you on the next pyweek!!
Thanks! I do anticipate being in the next PyWeek. About the re-running the game to start another game, I think you're totally right. That's one of the big suggestions I heard early on, and was one of the first things I implemented in the newly updated version. I don't like arcade prize machine games, mostly because they're repetitive and unfair.
haha. Repetitive and unfair -- sounds like my game. Well, it's okay that my game isn't for you, and I appreciate the honest opinion -- it helps me know how large of an audience there is for this sort of game. Very nice considering you did it all on the last day!
Thanks! :) mmm....
ahhh... a little one dimensional...
True! After all, y is the only valid vector... graphics and stuff around will make it a better game
Thanks for the comments and suggestions for improvement! I tried updating the graphics a bit to make it more visually consistent, I added a more graphically-flashy win screen, I added animated falling blocks so that you can see where your block placement missed the tower, and I now show your tower on win/lose screens so that you can see how you did. It's not a ton of graphics updates, but I hope it helps a bit. Thanks again for the suggestion! Awesome game, shame it was used though.
Used, as in a clone already? Yeah -- most games these days are clones in one way or another -- so much of what makes a game feel "new" and "fresh" depends on how much better one impelments the old ideas. Admittedly, I didn't do a very good job of making Slacker go above and beyond Stacker, but ah well -- it was supposed to be a simple game, and I guess I succeeded in that regard. Great game, just needed a little more polish.
Thanks! Polish is what I tried to add in the updated version, though there are certainly still a couple of more things I'd like to make shinier. Great little game!
Thanks! This totally sums up what I was shooting for, and I'm so glad to hear your kind words. VERY hard! Anyone who wins an iPod by playing this thoroughly deserves it!
Haha. I totally agree. :) If nothing else, this game has assurred me that I probably don't want to waste money playing it on the arcade machine anymore. Even though I've gotten a lot better through the game, I'm not really sure that I could win under pressure, even with $20 or $30 to blow. Not bad for a day's work...
Thanks! It was a lot of fun, and I look forward to the next competition. Waited until the last day? Slacker!
haha. Truer words couldn't be spoken... Nice idea. fun game tried it for quite some time but could not complete it :(
Sorry to hear it! If it's any encouragement, it took me a while before I could beat the game, and I haven't heard very many reports of other people being able to beat it (less than half a dozen others). In case you're interested, the new version makes it easier to start new games, as well as gives you better feedback as to if you hit the spacebar too early or too late. Wow, this game is really challenging! I couldn't stop playing it though ;) Very fun, but too bad it's a clone.
Yeah, a pretty blatant clone. I didn't do very much to improve on the original game much more than make it so that it doesn't cost $1 to play. :) too difficult for me :)
Sorry to hear it -- I'll chalk this one up as another vote for variable difficutly levels. I'm not sure how to do that without breaking my one-switch paradigm, but ah well -- I'll see what I can do. Addictive describes this game very well. I'm off still trying to get to level 15... ^^
So very glad to hear it! Here's to hoping you make it. :) A bit too simple to my taste but fun, nonetheless.
Thanks for the honesty! Glad you enjoyed it a little bit, despite not being in your preferred genre. Well, it's slightly addictive. Which isn't really bad for a game made in one day, I'll give you that. A menu with options for a new try and exit should've fit the schedule.
I think that you're right -- if I hadn't blown my last half hour trying to package it with py2exe (unsuccessfully), I probably could have gotten auto-game-restarting in. Regardless, it's in the updated version, but it didn't help all of you guys for the judging period. Thanks so much for playing and testing my game though (even in its unpolished state)! Well, I don't find it too addictive...
Whether or not the above comment is sarcastic, I still appreciate the feedback. :) Very addicting. Requires good eye-hand coordination. I love that.
Yay! Thanks for the feedback! Quite nice game actually, ESPECIALLY concidering that you just used one day, but it's not really something I would play normally :) Clean, simple and nice.
Thanks so much! The small scope of the game is one of my favorite things about it, and I'm glad that you thought well of it -- even though it's not your normally preferred style of game. Did you really code this in one day? I hate it but it's not bad for one day of work. If this were a 24 hour contest it would probably get a higher rating :) I don't really like these sorts of games.
haha, yup. I agree -- the size of the game was a little small for a one-week competition, but I'm glad that I was able to get something playable. I've said it to other reviewers, but I want to reiterate that I appreciate your honesty in letting me know whether or not you like these sorts of games -- that kind of feedback really helps me get a feel for how wide the appeal is for these sorts of games. Not bad for "last minute" I thought the concept of the game was creative.
Thanks! It was like a lightbulb just went off in my head while dozing on Saturday morning, just how well this game concept fit the theme -- when I realized that, I didn't have much of an option other than to try and hammer it out. :) well, fun game. you admit it's a pure clone :-) have to look into one-switch games myself
Yup -- pure clone. The arcade game has two buttons, but I decided to make it a one-switch, just to see if I could limit myself to that paradigm. It's a really neat constraint to try to work within. My new get rich quick scheme is to sell iPods I win from Stacker machines down at the mall. Too bad you have to relaunch the program every time you want to play again.
As far as get rich quick shemes, that one sounds pretty good. Thanks for the improvement suggestion! Your wish is my command -- it's now in the updated version. pretty cool game. I've never played anything like it, but I can see where this would be addicting. Thanks!
Thank you! The real game is rigged. This game is hard but a bit of fun. Graphics are smooth but I can only give you so much because this is a rather simple game.
No worries there -- I didn't expect to win the competition, but rather was aiming exactly to provide just a "bit of fun". Annoyingly addictive. Except not really addictive. I grind against such careful timing games. It is cool that you wrote it in a busy day though.
Haha. I know what you mean about the addictive part -- I find myself addicted-yet-not-addicted to this game myself. Also, glad to hear that you thought the development circumstances were cool -- that just added to the whole flavor of PyWeek for me, and made it such an enjoyable day. Wow, nice game in one day...Addictive :) Btw that 1-switch game is interesting stuff, I wasn't aware of that problem...Hmm maybe I should consider making such a game...Nice stuff.
Thanks for the feedback! :) I do encourage you to try and limit yourself to designing a game that can be played under certain circumstances -- whether by those who are visually impaired, with just a single hand, or as in this case, with just one button. There's a whole opportunity for making more accessible games, and as a developer, I find it an interesting set of challenges to put myself underneath in order to polish my own skills. I miss some sound and music on this one. It is actually addictive, though.
About the audio -- you know, you're exactly right. At least sound effects, but you bring up a good point about music too. Thanks! My poor space bar!
haha. :) Thanks for the laugh. Damn hard!
This comment also makes me laugh. I'll take it as a mix between a compliment and a vote for adjustable difficulty levels.
Thanks so much for all of the feedback, everyone! It is really very much appreciated, and I'm so glad to hear that so many of you got some enjoyment out of my game. I really like PyWeek, because it's such a wonderful test bed of ideas and experimentation -- playing through over 50 games, you can really get a feel for what actually makes a game fun, what one's development priorities should be, and how to pace yourself when working under constraints. It was a fantastic contest and learning experience for me. The goals of my project were to create a simple yet fun game, and to focus on fun rather than flashy graphics or an epic plot. I've certainly learned where I should have put more polish, and I see several things I could have done better (even within the time constraints). Still, no regrets, and I look back with only good memories of this season's PyWeek. Thanks everyone for rating my game! And a big huge thanks out to Richard (and the other helpers) for organizing yet another PyWeek. Cheers! --clint