Copcake Caper: A playful culinary adventure with whimsical characters. A pair of raccoons distract the police from their misdeeds in the most delicious way possible.
Presented by mit-mit
Award for Most Unrelenting Background Rooster
Presented by rdb
award for flynn who has a nice voice
Presented by speedlimit35
Presented by discretegames
Ratings (show detail)
Copcake Caper v1.2 (macos build)
Copcake Caper v1.2 (windows build)
Copcake Caper v1.2
Don't worry! You got this!
Preparing for PyWeek
Hi, everyone. If you've been around here more than seven years you might remember some of us from the old Super Effective team entries. Well, we're back and rebranding as Paper Dragon. It's great to see the contest is still going strong. Hope everyone is looking forward to the event.
We've been spending some time in this week leading up to PyWeek experimenting with our project management workflow (mostly Trello) and setting up everyone's Python and Git environments. Also one of our developers who is coming from C# is rapidly learning Python. Also also our artist drew us a team logo (see below). Good luck, everyone!
Day 1: Progress Has Been Made
Today's work was initially quite fractured but has managed to pick up since then. While we struggled initially with creative differences we now have a fairly concrete idea and a direction to go. Each team member has their own areas of ownership and the code and assets are starting to coalesce. I'll save sharing details of our game and incorporation of the theme for later diary entries. But for now, I have permission from our artist to share the following delicious sample:
Day 2: Slow And Study
We're still getting our core gameplay together. Meanwhile the art workflow seems be working pretty well and we're seeing all kinds of fun character art showing up. This is the first time we've tried to incorporate automated testing into our development for PyWeek and I'm really glad we did because our game model is showing up all kinds of edge cases and it would be very hard to be sure it is working otherwise.
Anyway, more details coming soon. In the meantime if you know what we drew here then please let us know!
Day 3: Marathon, Not Sprint
Today was another slow day and I'm starting to get worried about the eventual shape of our game. From experience I know these things tend to pull together late in the process. All the same, it's hard not to be nervous. So what do we have so far?
- We have a fairly complete model for the MVP.
- We have a library of tests ensuring that the model works as intended.
- We have a scene that faithfully maps the model into sprites.
- We have a lightweight animation system bringing the scene to life.
- We have an API for interactions in the scene to be translated to the model.
- We have a dialogue system for which there is currently no content.
- We have a growing collection of adorable hand drawn images.
And what do we need to do? Well there's a long list I suppose but first and foremost we need to nail down the gameplay. This is the main reason I haven't shared anything about the game as whole just yet; it's mostly just a toy you can mess around in right now. After that there's a laundry list of things that are needed for the MVP that aren't related to gameplay: a simple menu system, progress saving, testing distribution, etc. All the things it's easy to ignore during the rapid development cycle.
But after that it's all about content and testing. Little bits of coding where our content exceeds our current model, and of course where we identify bugs, but really just filling it up and fleshing it out. In the meantime please enjoy the lovely farming village scene below. Good luck everyone!
Day 4: Mid-Week Ruminations
When we started out doing PyWeeks back in 2007 it was very exciting for me. I was not really a programmer, I didn't think of myself as one at any rate. I had messed around with PyGame and I'd heard about PyWeek and decided to take part. I had no idea at the time of the difficulty there is in taking an idea for a game and realising it. I was very fortunate to have friends willing to help out; friends who were much more experienced programmers than I was. It was a great experience overall and while I didn't properly acknowledge it at the time Adam and Martin carried me through that event. Thank you, guys.
Back then it was the three of us, coders all, in the same room, on various computers. We were doing things and talking about what we were doing and every time someone got something to work it was always a point of interest for the rest of the team. Being together fundamentally meant that we were working together and the successes of others kept each of us motivated and interested and powering through. Cementing all of that we had Carrie, the fourth and final member of our team, who made us a different pie every day of PyWeek, highlighting once again, being part of a team is a lot more than the work you do, it's about how you support each other. Thank you, Carrie.
Which brings me back to 2021, where the world is so different and where so many people have had to get used to the idea of working in their own little isolation bubbles. On the one hand I definitely have a lot more experience than I used to. I know how to create and ship a simple and probably quite silly game in a week. But this isn't really the point, is it? Put simply, if we can't work together, how can we work together? Because it seems like for that to happen we need to be doing something more than merely the job that is in front of us.
I'm going to avoid moralising here, but it's definitely food for thought. One thought that I had was that it can be easy, especially when a project has a compressed time frame, for us as individuals to get tunnel-vision. It can be easy to end up so focused on your part of the endeavour that you forget about the parts others are playing in it all. It can be easy to forget to check in with your teammates and say "Hey. This thing you did, nice work!"
Anyway, thanks for reading. Be good to each other everyone.
Day 5: Minding The Gap
Quick diary entry today. We're coming down to it and it's important to keep track of what still needs doing. I've been furiously adding and removing things from the to do lists in Trello. Here's a screenshot from our dialogue system featuring some unexpected faces.
Day 6: State of the art.
But... I'm not a graphic designer. I draw comics by hand on physical paper, and my normal approach is very slow. When I draw art to show on a website, here are the normal tools I use:
I go through the following steps, and here's an image of what some of those steps look like with one of my character drawings
- Make a Pencil Sketch on artboard
- Using pigment liners, carefully draw out the important linework in permanent ink
- Wait for ink to dry (several hours)
- Erase pencil marks
- Second ink layer (this is used to make lines properly black, thicken up important lines etc)
- Wait for ink to dry
- Colour the art with special pigment coloursoft pencils
- Digitally clean up mistakes and minor tweaks and fixes
- Add transparancy, resize, export.
This is... not a fast process. An image like this would take several days to work through, and that's fine! I'm drawing to relax and have fun.
Pyweek is exciting because everything about how I normally draw has to be thrown out of the window. In past events, my workflow has been terrible, and nearly everything I learned from the event was in the form of what not to do.
This event is my fifth pyweek, and the fourth where I was producing the majority of the art for the game - but also, this event was the first time that I felt like we were working with an art style I was comfortable with (hand drawn pencil drawings, rather than graphic design.) As a bonus for our coders, it meant that I could give them pencil scans early to place on the screen and play with during the coding process. I was surprised how helpful it was to me though. Seeing how the asset appeared on the screen really helped me better visualize how the drawing would behave in the environment. More importantly, much less of my time was spent trying to understand how to make an asset that could be incorporated into the game.
However... this is still a very slow process, none of the steps are missing. It's an extremely valuable experience to me to make these pictures to such a tight deadline, to learn where I can cut corners, to figure out which parts need to match my expectations, and which parts you can kind of just fudge and still have them come out okay.
For the first couple of days, this was an extremely stressful situation, how could I draw enough things to make a game? Where should I be spending my time? But as the days ran on, I settled into a groove and started working faster. All of the art has mistakes and issues and problems that I'd like the time to improve, but the result is something about 90% as good as I wanted, but in 10% of the time. It's bolstering to know that if I really need to, I can work faster.
It's good to do things that put you out of your comfort zone. That's how you learn and grow, and coming back to pyweek after years of drawing the same way has been a good experience.
Day 7: Copcake Caper
It's a truism that there's always one more thing you could do. The last several hours of PyWeek really bring this idea home. You only have to look at the rates people are committing things to their repositories to be sure of that. But all things must and so we are proud to present our entry... COPCAKE CAPER!
Copcake Caper is a bit of a culinary adventure. Two playful raccoons are getting into all kinds of trouble with the law and devise a clever plan to distract the police from their escapades. Featuring:
- Straightforward, mouse-only gameplay
- Completely hand drawn storybook art
- Story mode with "voiced" dialogue
- Endless mode for additional challenge
Thank you, everyone, for all the wonderful feedback. And congratulations to everyone who took part too. Looking at the comments there are a lot of very positive remarks and we are truly very flattered, thank you 😊. Everyone loved the art and sound aspects it seems, as did we. It's encouraging to know that all that work was so appreciated.
We were not very happy about the theme, bottom of all of our lists. It seemed too charged a topic for us, too divisive. So we aimed for something utterly inoffensive. I hope we succeeded. Others with the same problem went in different directions, (i.e. Cosmologicon). I suppose the theme is always just a starting point. In the past I remember people have used anagrams of the theme to design their games. You can't really do that with "cops".
A few people struggled with the initial learning curve. I'm sorry about that; we didn't have any external playtesting so that kind of thing was likely. All the same I think we were aware it was tight but it was also very challenging to find the right balance point.
Well, it's over for another five months. Well done again to everyone, hope to see you all next time.
PS. Did anyone play our "Endless" mode? Post your score if so!