Intro screen

City Nine News

You work in the redaction of a newspaper, the City Nine Times. Your task? Accomplish all remaining work before 5pm, while keeping an eye on the machines - if they break, you'll have to call the technician, and time is always short... Your best friend is the coffee pot, preventing you from falling asleep, so make sure to pay it a visit once in a while.
Note about the game: I forgot to warn everyone - in the first level, the coffee pot is right next to you - the status bar hides it from view, sorry! In any case, make sure to check the top row when starting a new level :)


Heath Robinson Prize for Most Unreliable Office Equipment
Presented by gcewing

Paid For By the Caffeine Lobby
Presented by PhillipNguyen

Give this entry an award


Ratings (show detail)

Overall: 3.3
Fun: 3.2
Production: 3.5
Innovation: 3.1

0% of respondents wished to disqualify the entry.
Respondents: 24


File Uploader Date
Final upload, with corrected Readme file and full license info
akira44 2011/04/10 22:45
A screenshot from the game
akira44 2011/04/10 00:08
Intro screen
akira44 2011/04/10 00:02
Bug fix! I forgot to design the "good" game over screen - I lost so many times, that I forgot to make the good one...
akira44 2011/04/09 23:49
My guy standing around, asking himself why he looks so blocky when yesterday he looked just right
akira44 2011/04/07 05:15
My main guy, in the process of animation. Since he will be brutally scaled down, I thought I'd share how he will look like in the PS3 version :)
akira44 2011/04/05 04:05

Diary Entries


Well, we are about three days away from the beginning of the challenge, and I think it's fair to say one thing: please, please, please, PLEASE don't let "Coughlin Brothers Mortuary" be the chosen theme!

I guess everyone is doing the same thing I do - that is, think about 5 possible game ideas (or, let's be honest, think about two game ideas and bend the artwork to fit in more than one theme...) and pray for they favorite one to be the chosen one. When it comes to C.B.M., however, every single idea I have involves caskets exploding, flying corpses, rolling heads and stuff like that, and while a little black comedy is not too bad, a whole game is... well, a little too much :P

Well, back to the drawing board. I still have to think something for "A Fry Cook on Venus", or at least something not too obvious. I thought I could play a little with gravity, but it turns out the gravity on Venus is almost the same as on Earth... Why couldn't you choose "A Fry Cook on Jupiter", Pyweek?


What could have been

Seeing how I already lost enough valuable time this days (I was 70 miles away from home this weekend, so I barely managed to write a few classes - I should have graphics up and running by tonight, or so I hope), I think I could do something useful for once and comment the ideas I had for every theme:
  • For "A fry cook on Venus", I decided to approach it as "Admiral Fry Cook on Venus", and it would have been a shooter in which you must stay in the boundary between day and night - day would be too hot, and your ship would take damage, and night would be too cold, making you slow (or even stopping your ship, until the sun comes up and un-freezes you)
  • For "Coughlin Brother's Mortuary", I finally decided to make a double game: on the top part, you'd have to convince people to deliver their dead relatives to you (adjusting prices and so on). Each coffin would increase your wood and meat (?!) amount, which you could use to create furniture and hamburgers (?!!) in the restaurant on the bottom part. Bonus idea: the soft drinks would have been called "Soylent Green"
  • For "Warm and Soft", I wanted to make a factory - basically, you'd have to locate the operator in the right place of a production line, and press one of many buttons to assemble teddy bears - failing to do it on time or pressing the wrong button would result in broken and/or monstrous teddy bears
  • For "Sausage King" I wanted to make a game in which you are a spy for a rival restaurant, and your work would be to sabotage the place, serving not enough clients to make a profit, but enough to remain employed. Tricky, I know.
  • Finally, I hope I can show everyone the idea for "9 times" (let's keep a little surprise here), but I'll give you a hint: so far, it's going to be about a newspaper, located in the city of Nine (making it "The Nine Times", see?)
What I always like about Pyweek is how many possible interpretations come out of just three or four words. If you had an interesting (and now discarded) idea, fell free to share!
Edit: I missed a post an hour early about this very same topic. I'm keeping this entry for the whole journal thing, but don't miss the other thread.

Add a comment

Monday almost done

Well, there goes Monday. Somehow, I managed to have the engine semy-ready (screenshots tomorrow), wrote a couple classes for the "bad guys", and polished the goal system (in my I-sure-hope-so soon-to-be-released game, you have goals to reach in a certain time).

So far, I'm having fun learning Python (that's the idea of Pyweek, right?), although I don't know what would I do without internet forums :P. Tomorrow, if I'm lucky, I'll have all base graphics done (I have 3 out of about 14 "bad guys" coded and sketched), and the engine should be completely done. Music, I'm afraid, may have to be chosen online (I was hoping I could record some simple tune by myself, but Wednesday and Thursday will be a little complicated, specially considering I already bought my tickets to see Roxette on February, and I don't think the crowd would be pleased with a guy with a laptop asking everyone to be quiet :P ).

And, of course, work will be on the way somehow. I already lost a customer, but hey, you can't make an omelette without breaking a few eggs, right?

Good luck, everyone! See you tomorrow!

Add a comment

Wednesday: a long due update

Well, after my internet crashed on Tuesday (taking my daily post with it), I think it's time to give a status update.

First of all, and most important, I ALREADY HAVE A GAME! A boring one, not truly exciting, but at least something playable - all I have to do to save face on the contest is create 10 random levels and call it a day - let's just hope I won't have to settle for that :)

Onto the details, the graphics are by far what is killing me. For instance, I just changed the way transparency is handled (it just looked too blocky), but now I have to re-resize at least 40 animation frames, each by hand, and my character still can't walk up :-\ . Same thing with the status bar: it works, but I just can't make it look nice...

Talking about useless stuff, I also had an epiphany, and now I have a title for my game! It will be called either "City Nine News" or "Nine City News", and the logo may or may not look similar to the one of a certain news network (you may have already guessed which one). Sound, unfortunately, will suffer a lot: first, because tomorrow I'll spend my entire morning (and half my afternoon) with a client who lives 100 miles away from home; second, because it turns out the tickets I bought in January for Roxette are for tomorrow night, so goodbye Thursday :P . I guess I'll have to settle for some random Creative Commons tune.

Last, and probably least, I'm adding a new screenshot, this time from the game. You can see that my guy is surrounded by a dark square. That's not because he's in front of a trans-dimensional door (because, among other things, that would have been awesome, so naturally I never thought about that), but because that's what I meant when I said I messed up the transparency :-\

Good luck, everyone! See you on Friday, I hope. In the meanwhile, please try not to do much, or you'll leave me behind, and you don't want that, right?


Add a comment

I should go to sleep...

... but is hard to do it when your game is almost ready, but needs a few sounds, and an intro screen, and a game over screen, and some playtesting, and a few tweaks for the difficulty, and... well, you get the drill.

Today something really weird happened to me: I actually had fun playing my game! Not too much fun, true, but I've somehow reached that mythical point in which you actually have a game, not just a bunch of moving sprites.

There are a few ideas that, unfortunately, will have to get cut. Background music sounds like one of those things ("sounds like it", get it? hahaha), although if a find a nice free MIDI I may change my mind (meanwhile, The Freesound Project seems to be really, really helpful for the sound effects). i don't know how many levels I'll get to make - they are fairly easy to write, but unfortunately playing and testing them is, well, harder. I hope I get to release at least 10 fun levels, and 30 so-so. In a future, a random level generator is a must.

I see some people have already finished their projects. Kudos to them, and I'm looking forward to play and test them. I don't have the slightest idea about how hard the competition will be, but hey, it's not the time to give up!

Good luck everyone!

Add a comment

7 days and one game later

Well, that's it. Even if I wanted to, there is no time to make any other change. That's it, "The City Nine Times" is out there, and I need to write something because I just can't stop typing (after typing so much in so little time, my hands gained conscience and want to keep going).

First of all, I wanted to put this on the Readme, but I couldn't make it (and now I can't). My game is based on an old game I received in a CD once, called "Salary Mon". I wanted to give credit to the author with a link, but the fact is that this entry may as well be the only remaining trace of his game on the internet, since the site was hosted in Geocities and is now gone, just like the magazine.

Onto the game itself, I can seriously say that I can't remember when was the last time I worked so hard. The final count gives 160 individual animation frames, all made by hand, along with 1841 lines of code. Honestly, i don't know if that's a lot or not, but considering this is my first time programming with Python (I started practicing three weeks ago, and I never touched Python before that, so I guess is "mission accomplished" for the Pyweek guys), I'm kind of proud of it.

I'll take a break now. If I remember correctly, I have a dog and a cat somewhere, so assuming they didn't left me I think I'll give them some love. Maybe later I'll write about the main points of making this game, but my mind is leaving me.

Good luck everyone!

1 comment

Release information

Ok, that's it, I'm done, I've finally uploaded what I consider to be the final version of my game. In this minor release,
  • I've included some extra License info, including the credits to the game whose idea I "borrowed" for this entry. BTW, if you know a guy called "Alan Snow", tell him I said hi!
  • Changed the file format, from tar.gz to zip, since I had some troubles opening it under Windows - considering I've finally given up in bundling an .exe file, that's the least I could do :)
  • Nothing else - While there are many things that could be improved, that would be cheating :) - If time helps, I'll try to release an "expansion pack" with those improvements, but that should be after everyone has judged the game as it is.
On a related note, I swear, every time I make a new upload I'm afraid to death it won't work, or the file will corrupt somehow, or anything. In fact, I think I won't erase my second-to-last file, you know, just in case.

Now that I'm done with my game, it's time to start judging everyone else's entries - on the other hand, I'm not really excited about everyone else judging my entry...

Good luck to everyone!


Okay, I admit it!

Seeing how my entry was awarded the "Heath Robinson Prize for Most Unreliable Office Equipment", I think it's time for me to admit it publicly: my game is too hard. Wait, no, that's not true: my game is too frustrating. Yep, that's better :P . I tried to ignore it when my entry was awarded the "Paid For By the Caffeine Lobby" award, but I guess I can't hide it anymore...

If you want to play the game at a slower pace, you can either reduce the probability of a machine breaking up or increase the time in each level (actually, each level lasts longer than the previous one, but obviously not enough). To do this, you can change one of the following lines (or both), line 112: self.clock.start(3600 + 120*level_num)
That's the total time - increase 120 to something like 240 or more to get enough extra time per level, line 68:
if (random.randint(0,30) <= self.dificulty):
If you want the machines to fail less, increase that "30" - the larger the number, the easier the game.

In any case, remember that the game only has 10 levels, so don't make it too easy ;) .

I'll take this as a lesson for the next Pyweek - I should have had more extensive play-testing. To be 100% honest, I did reserve some time for this, but I decided at the last moment to use it to add the plants and lamps and give each level a little more color :P - I guess that, since I wasn't a coder on my first Pyweek entry (which details exactly this problem as the main concern) I didn't really learn this lesson, but I'll try to remember for the next time.

If it makes you feel any better, while playing (I think I made it up to level 6) I experienced that very same feeling of looking at the remaining time and thinking "oh, screw this, I won't make it on time", and if I didn't curse the repair guy for talking the long way to fix the phone it was only because I'm the one who told him to approach items from the right when possible...

I'll do my best to write a full post-mortem of the game once the competition is finished and I get to read the feedback from the rest of you. So far I've been impressed by several entries, and I hope I'll get to play all of them by saturday.

Good luck, everyone!


City Nine Times: Post-mortem and feedback

Well, there goes PyWeek. As I promised earlier, let's take a look at the lessons learned, mistakes made and all that.

What (I think) I did right:
  • A clear game idea: even though the idea was not a great one, having a precise idea of what you want your game to do ended up being a great time-saver. If I had to take this as a lesson for a future PyWeek, I'd say that during the voting week, each day could be used to come up with a full idea of what to do if a certain theme is chosen. As I said before, I've based my game on a previous one, so every aspect of gameplay was well defined before the start.
  • Planning. planning, planning: I knew I wouldn't have enough time (well, neither of us does) to do everything perfect, so I made a realistic schedule I could stick to. In case you are curious - engine:3 days, art:2 days, music:1 day and fixing stuff:1 day). Leaving the less important tasks to the end allowed me, when things went bad, to cut out on music and use the remaining time to fix bugs.
  • Know your tools: If I may say so, I think the artwork came out good enough. Had I not had my full "studio" (that is, my bedroom) completely ready to go, I would have had to settle for a lot less. For instance, having a graphics tablet and knowing how to use it is the only reason I managed to give the repair guy a blue shirt (it is hand-painted) in less than an hour.
  • No features!: Cutting features as I thought about them was a nice touch. Yes, the game could certainly use improvement, but had I spent time in every single idea I wouldn't have made it on time. In case you wonder, a few of them were:
    • Fix the repair guy so he doesn't wait for you to unblock his path - solving this would have made the AI much more complex than a simple BFS, plus it could have led to situations where neither of you can move. That's also the reason the guy takes sometimes the longest path :P
    • custom "break" animation for the machines: that would have taken too much time. On that same level: giving the repair guy a tool case.
    • pause and score: the levels are not long enough to warrant the time - if you have something to do, just lose and continue. Same thing with score - I have the suspicion no one said "damn, I wish this game had a score..." :P
What I did wrong

  • Not enough play-testing: if you played my game, you know it goes from "looks good" to "aaaaarggh, i hate this thing!" too fast (level 3 is annoying, level 4 is a nightmare, only one guy made it to level 10, and that was after altering the difficulty - I wrote about that in a previous entry). Had I played for at least one hour, I'd have spotted this fairly fast - and that only happened because I decided to use the alloted time to add lamps, plants and a carpet, that is, for not sticking to my schedule! I've seen this happen before, but only as an artist, not as a developer, so I'll keep this in mind for my next PyWeek.
  • Not a great idea: Honestly, I don't really know what I was expecting to come out of this. I mean, I didn't even like the original game! I think I went with "this looks manageable" instead of "this looks fun", and while that is not really a problem in an office, for a game that's a bad thing... On a rather ironic note, I was against "Coughlin Brother's Mortuary", but that game would have ended up being at least more original than this :P . There were many good suggestions in the comments of some other diary entries I wrote, and while many of them are good enough to improve the game as it is, they probably can't help the fact that you don't have much power to alter the outcome of the game - all you have to do is follow the orders, and that's it. I'll try to come with something better in the future.

About the comments
Thanks for all of you who took your time to play and rate my game (except the two of you, you know who you are). If I have to be honest, I was bracing myself to much worse comments, but the fact is that (almost) everyone was nice and polite (I was expecting something like "BOOO-RINGGG", but instead I got a nice "The mechanics are quite simple").
A few comments, leaving aside all those "the game is hard/boring" and "the machines break too much":
  • Ok, but what about the theme? You work in a newspaper called "The Nine Times", I thought it was clear enough :P
  • Eventually it's purely a matter of chance whether a particular playthrough of a level is winnable at all: Yeep, that's the real problem. Too bad I didn't notice that earlier :-\
  • A bit repetitive, and frustrating when things keep breaking randomly when your time and coffee is running out. But something perverse about the monotony appealed to me :) : Yeah, I guess making boring games is not precisely the way to go, but I also appreciated that; is kind of an artistic statement if you push it a little (ok, a lot).
  • It's a bit annoying that repair dude wants the whole hallway for himself: Tech response - that's because if the guy moves when there isn't a clear path, then there is a chance that he'll corner you in a hallway, and since he doesn't know what "surrender" means he won't walk back, and you'd end up staring at each other in a hall until the end of time. But yes, a decent AI should be able to solve this, right now is a simple BFS (breadth-first search) algorithm.
  • I have to say it would have been even better with some background music: Damn, you touched a sensitive subject! Yes, not only I wanted to give it some background music, I wanted to make it by myself too! Unfortunately, I had to cut a day from my schedule, and music had to go. As a personal revenge, the note you hear when you lose is 100% home-made with my harmonica :). That reminds me: if you liked the intro music, that tune is "Chased by a cow" by Heifervescent, from their album Hoofed and Dangerous. You can download the album for free from Jamendo.
  • the coffee meter goes down pretty fast: In the original game, it used to go even faster :-\ - but yes, it does, sorry!
  • I had to edit the code and decrease the probability of stuff breaking in order to make some of the later levels winnable. Then I got to a level that didn't seem to have the player on it: Yes, I've just noticed that! The last level file (data/levels/10.txt) has no "x", and thus has no player, sorry for that :-\ - If you wonder how the game looks like when you "win", you can open data/endgame.png and feel blown away by how different it looks from the regular "game over" screen :P - In case you wonder, this entry details how to make the game easier. If I can submit a patch, I'll upload it in a couple days.
I think those are the main points, but if you think I left out either a good or bad lesson from my game feel free to comment. I also want to thank everyone who entered (except the two of you, you know who you are!) for making PyWeek such a fun experience, and I look forward to see you all again in 4 to 6 months.

Good luck!

Add a comment