PyWeek 29 challenge: “The butterfly effect”

22 entries

Caterpillar Effect

Cause: Build a cocoon.
Effect: A butterfly hatches.

INSTALL & RUN (see README for details)

This game requires numpy, pyglet, and a few other small libraries; all listed in requirements.txt.
Developed on Python 3.7, so that's recommended, but 3.6 and 3.8 should work too. Please use a recent version of pip to install requirements.

Launch using the script.


Controls should be self-explanatory. A keyboard with arrows, numbers and Enter is enough; a mouse works for level selection.
Press F to go fulscreen; S to take a screenshot.


Don't play levels 1, 3 and 6.


I don't have a Windows machine available, so I didn't test there. Turns out that it doesn't work there.
As the rules say – if it crashes, it's on me. So you can mark it as "Failed to run". But if you'd still like to play the game on Windows, a fixed version is available on GitHub (link to archive). Thanks to claxo for sending be a backtrace and testing the fix!

If the window is resized or fullscreen, mouse doesn't work for level selection. (Also fixed on GitHub.)

Entrant: encukou

Calm Waters

A game where you try to move a boat by only throwing pebbles to create ripples in the water, which moves the boat. You then move that boat around a maze. That's the gist of it.

Screenshots are not up to date, obviously. The boat is not a white rectangle anymore. Don't let that throw you off.

Also check out the game's page!

Download + Run Instructions


Make sure you have the following dependencies installed:

  • pygame 1.9+
  • pytmx 3.2+

These are listed in the requirements.txt file, which you can use to pip install these packages.

After that, extract the file and run in python 3.


Extract the contents of the zip file, and run main.exe in the PYWEEK29 folder.

Entrant: OrionDark7

Butterfly Destroyers!

Butterfly Destroyers is a 2.5D/Parallax Arcade Shooter written with Pygame.  We hope you enjoy!

In the year 20XX, butterflies have started to overpopulate the Earth (a problem of the future that you wouldn't understand). It is up to humans, the only intelligent species in the world, to reduce the butterfly populations. But the butterfly army and their leader, "Big Butta", won't go without a fight! :O

How to Play


pip install -r requirements.txt
python ./

Or in a virtual environement :

git clone butterfly-destroyer
cd butterfly-destroyer
python -m venv .env
source .env/bin/activate
pip install -r requirements.txt

The keyboard controls are simple :
  •  WASD or arrows to move
  •  Space or enter to shoot
  •  Shift to change weapons after unlock

But the game is better with a controler,
it was only tested with an Xbox controler
and there is no guarantee that it will work with
correct mappings on others.
  • Main sticks to move
  • A/B or RB/LB to shoot
  • X/Y to change weapons after unlock

One of the most important thing missing is
a way to select the level. If you quit the game and
want to start at a certain level, just pass the number of
the level to the command line. For instance:

python 4  # Any number between 1 and 7 included
python intro
python credits

Most of the game is done, but as the deadline approched,
we did not have enough time to make all the levels we wanted
and the last levels need a lot more love that they received.
Some of them were even abandoned in a hurry.
Let's have a minute of silence for them.

If you want to know what the rest of the game would
have looked like, you can check the scenario
and use your imagination to design good levels with well balanced
ButtaBombers and Flyers. Also imagine the final boss with nice
butterfly paterns.

CreditsShip graphic:

And thanks to the pyweek team for giving us the opportunity to
have such a wonderful week ! It was the first pyweek for each of us
and we will definitely do it again :D

thanks for playing

Team: MysteryCoder456, jtiai, flipcoder, ddorn, tamwile

Showdown 2881

Two spaceships meet on opposite sides of a debris field in deep space. Only one will leave.

Entrant: schilcote

Flappy Butterfly

Help Barry the Butterfly find the butterfly princess, preferably without causing too many catatrophes along the way.

Entrant: gcewing

Magnetic Pictures

Its a magnetic puzzle game.

Entrant: DR0ID

Queen of the Hill

The Team:

Group of students trying to make the best of quarantine.

The Description:

As queen of an ant colony, you have many responsibilities and decisions to make. Every action you take affects your colony, and, little do you know, the entire world. You are presented with choices to make, from entering an alliance with a nearby bee hive, to choosing to explore, to paying termites for protection. There will be tough decisions and trade-offs, but you can only hope you do what is best for your colony. After each season, newspapers brought in from the human world can show the true impact of your decisions and the ways you might end up changing the world as we know it.

The game ends when you follow one of 4 paths of decisions to one of 5 possible endings.

The Github:

Github Repo

(Running from source requires python3, pygame, and pygame_gui)

The Sound Attributions:

Button sound by Mike Koenig on SoundBible 

Altered, trimmed so it's only half of the button sound effect

Newspaper music by John Stracke on SoundBible

Altered, trimmed so only the first trumpet notes can be heard

Game music by

Team: Starbuck5, icemoon97, IceFire, Vanessa1104, njbradley

Journey of the Monarch

Father and son team. Looking forward to another great week of hacking on a game.

And here's our result ...


You are a Monarch butterfly migrating to Mexico. This is the final leg of your 3000 mile journey from Canada and it will be the most perilous. You are weak and getting tangled in a bush is a real possibility. If that wasn't enough, you'll also have to contend with predatory birds swooping in for a butterfly flavored snack.

Thankfully there are Milkweed flowers here and there on your route. You can glide onto them to replenish some of your energy which decreases with every flap of your wings. The faster you fly, the more energy you use.


It's suggested that you run the game within its own virtualenv to avoid any dependency conflicts.

  1. Unzip the source archive
  2. Open the directory that was extracted from the archive
  3. Run pip install pgzero==1.2
  4. Run python


  • Up Arrow: speed up
  • Down Arrow: slow down
  • Left/Right Arrows: go left and right
  • Spacebar (hold): glide (uses glide power, conserves energy)

Quick Tips

  • Glide onto flowers for energy
  • Avoid or glide over bushes
  • Speed up or slow down to dodge birds


Glide power is used up faster than it is gained. Choose when to glide wisely. You'll need to glide to land on flowers to replenish energy. You can also glide over bushes if you can't dodge them. Once you've depleted your glide power, it has to build up to a certain point before you can glide again.

Going faster isn't necessarily better. It's harder to dodge bushes and plot your course to the next milkweed. On the other hand it can be useful for avoiding birds. Speaking of that, sometimes you might need to leave a flower before you've gathered all of its nectar.

Take deep breaths and relax. Try and balance energy, glide power, staying alive and completing your journey.


Built with Python, PyGame Zero, Mu and PyCharm. All graphics created in MS Paint 3D by Christian and Eli Wyglendowski.

Animated butterfly (graphics and code) by Eli Wyglendowski. Bushes and bird graphics also by Eli.

Original musical score by Christian Wyglendowski.

Uses the PixelLetters font by GeelynEdits.

Team: dowski, wooster

When the Wing Flaps

NOTE from N80: I forgot the end time was midnight UTC. I was working on coding until midnight EST. It is understandable if this affects judgement.

Theme: The butterfly effect


PyGame 1.9.6


Arrow keys: Move

Space: Fire

Butterfly Effect: Z

Escape: Pause




A simple shmup. When you kill an enemy, you gain a hurricane charge. After 4 successful kills, you can fire the Butterfly Effect, an unstoppable large whirlwind that kills everything in its path.


Hillbilly Swing by Kevin MacLeod Link: License:

necro-windB by ludist Link: License:

Check credits.txt file for additional resource links under CC0 license

Team: Enargy, N80


This game need python 3.6+ and PyQt5, I create this just for fun, it is only 24Kb, I think it should be the smallest entry, right?

To exit the game, right click :)

Entrant: xmzhang1


Feed your eggs and grow butterflies.

Beware of snakes.
Dont starve.

Team: ballipilla, pillitoka


"Flutter" is a run and gun action game where you play a lab technician trying to fight your way out of a research facility after genetically-mutated butterflies escape.

Playthrough Video:

Entrant: mit-mit


* This is the PyWeek#29 version. For the latest go to

!!! If you encounter a sound problem try badwing-nosound-src instead !!!


Embark on an enchanting adventure as Larry the Lepodopterist AKA BadWing


2D Physics Skateboarding/Adventure Game using Arcade & Pymunk

Libraries Used

The Python Arcade Library:


Copyright Attributions

All assets except for the butterflies came from The Python Arcade Library. See their site for further copyright info

The original source for most of these assets can be found at

The butterflies can be found at: No attribution required


Consult for instructions on how to install and run this game


Movement:  WASD + arrow keys (press up to do an Ollie!)

Pause/Menu:  Escape key


This was my second  PyWeek competition since #6 way back in 2008. I entered one week before the competition when I found out I would be temporarily unemployed because of the Corona Virus epidemic and would have time to give it my full effort.  I'm so glad I did because I learned and accomplished so much!!!

Special thanks to @jtrip for being a friend and beta tester on the journey

Team: kfields, jtrip

The Wandering Planet

How long can you make your planet survive?

Try to increase the time of your life in the planet, make it to civilization, you can get more force to control your planet.

Do let it crush by other big planets, don't let it become a star!

The Universe is shrinking and Gravity is increasing! Watch Out!

First choice is more important than other things --> Butterfly Effect!


Gameplay video on youtube:

Entrant: clingsz

Go forth and Butterfly

Short version:, python 3.6 or 3.7, pygame 2.0.0(dev)


Lead your flock through the levels. Sleep at night or perish. Eat when hungry or perish

When it is mating season, make little butterflies (oops, no level for this - functionality is mostly but not quite there - so no mating)

Installation instructions:

(Steps 1 and 2 - you can also download the zip file, either from github or the uploaded file for this pyweek entry, unzip it and change into the newly created directory with the unzipped files)

(Steps 3 and 4 to create a virtual environment - optional but recommended)

(Step 3, this needs at least python 3.6, but doesn't work with 3.8 - so 3.6 or 3.7)

(Step 5, the only dependency is pygame. It only works with 2.0.0(dev), not 1.9.6)

  1. git clone
  2. cd go_forth_and_butterfly/
  3. python3.7 -m venv .env
  4. source .env/bin/activate
  5. pip install -r requirements.txt
  6. python

Sorry, I couldn't get it to work with pyinstaller Please run it in Python instead

Entrant: coen


You can play the game with mouse or gamepad. The controls are simple: move the mouse or gamepad stick, and click the mouse, press shift or gamepad trigger to speed up.

Requires Python 3.7 or 3.8, plus the packages in requirements.txt.  If you can't run from source, you can use the binary builds instead.

If you get a crash, edit settings.prc and comment out the threading-related lines, but the game will run a bit slower.

Many thanks to lordmauve and all the other PyWeek participants for a great challenge!

Team: rdb, zwerver

Baby Unicorp

Hello fellow programmers; we are a small two-persons team, both of us hoping to get training and fun by coming here.

Team: Xyolidge, MrZ3n


IMPORTANT: If your butterfly moves way to fast and still want to play it like it's meant to be played, please re-download from

A pyweek love letter to Jeff Minter and Eugene Jarvis, being a loose combination of Gridrunner and Robotron 2084.
It was made in 4 days, spending the other days to help working on pollen.

  • Use the arrow keys or left analog stick to move your butterfly and destroy all evil snakeys.
  • Get the flower to activate your handy dandy flowerpower butterzapper.
  • Avoid the immortal Great Queen Spider.
  • Pull off super-combos by destroying an entire snakey from head to tail in one swoop.
  • Always try to shoot the heads or be punished with laser mines, score a fraction of points and ruin your combo.
  • Get an extra life every 25000 points.
  • Infinite levels!

Game made with Panda3d.
Models made with Blender
Music and sound-fx made with FLStudio
Anouncer lady made with balabolka and FLStudio

Let me know your highscore in the comments!

Entrant: zwerver


A puzzle game about a shiny butterfly and some very easily distracted goblins.

Entrant: Tee

Miranda the Lepidopterist

This a prequel to my PyWeek 11 entry, Mortimer the Lepidopterist. (If you missed that game, you can also play the JavaScript port at

You should be able to jump right in. See the README for tips, settings (resolution etc.) and cheat codes.

pip users: see kfields's suggested requirements.txt here.

v2 contains one additional in-game instruction based on playtesting feedback. They're mechanically identical, though, so feel free to play/rate v1. Just check the README if you get stuck.

Entrant: Cosmologicon

Nothing Suspicious Here

Nothing Suspicious Here: where a small action of yours will bring chaos to the world

Recommended volume: 30% or above

Note: it may take a few seconds to load the game, please be patient

  • You woke up in a rather empty room, with just a boring chat bot besides you
  • "What else is there to do?" you thought, and you tried talking to the box... 
  • You will need to solve three simple puzzles to result in two different endings
  • The third ending requires.. a little effort, by talking to the box
  • While the fourth, is the most boring one, only try to find that if you have a plenty of time!
  • Sorry if there's any typo, I do think there are some typos, I'm not very good at English :(

***Please try playing the game first before watching the walkthrough video!***

***also watch the video instead if the game is not working on your computer!***

There is supposed to be a fifth ending! But I didn't have time to finish that one, so I will just explain it here:

  • After you've finished all three endings(except the boring one), you will unlock a secret dialog with the box!
  • The box will talk about how you can free him by trying to crash the game, this dialog is actually included in the time travel ending, go check it out!
  • After the dialog is finished, a calculator will appear in the room, if you try to enter anything divided by 0, the game will crash(exit).
  • If you re-open the game, the game opens in a command line format. If you type "free chatbox" in the command line, the game restarts with the chat box gone.
  • This is more like an easter egg, but I didn't have enough time left to work on that. I will try to add an easter egg in the next pyweek project!

The README.txt is also included in each zip file

  1. Requires pygame 1.9.4 or above if you are using source version, the source code is compatible with both python2 and python3, python3 is recommended. Do "pip install pygame" to install this module.
  2. Run "" if you are using source version, run "main.exe" if you are using executable version. 
  3. You can use [K] to inspect an item or exit a GUI, [R] to restart a game, [ESC] to exit the game, [WASD] to move, you can use your cursor when inside a GUI. 
  4. There are four endings in the game, and three puzzles to solve, always talk to the chat box when you are stuck! 
  5. Please check the "copyrights.txt" in "texture" and "audio" folder for the copyright info about the textures or musics.

Entrant: chrisyan2000


This is the first time that I am doing PyWeek, so will probably not finish this game (actually, it is looking more likely that I will finish it now). But just in case I do, here are instructions on how to run it: install Panda3d (Install Panda3D, developed with Panda3D 1.10.6 and Python 3.7), unzip the archive that I will upload and run ppython

The aim of the game is to direct a ball to the target (in blue) using positionable blocks, while avoiding obstacles (in red). But if some of the blocks is positioned slightly out, the errors will accumulate and the butterfly effect will mean that the ball ends up nowhere close to the target!


  •  Click to place a block
  •  Left and right arrow to change rotation of most recently placed block
  •  X to delete most recently placed blocks
  •  Once you have arranged the blocks, hit space to start the ball moving straight ahead

Entrant: typewriter1