March 2025 challenge: “Downstream”
28 entries

Downstream
- downstream-v1.0.zip — source code
Made in 7 days for PyWeek 39. Theme "Downstream".
Running from build:
Download the package for your OS (macos, windows or linux).python -m pip install -r requirements.txt
To run the game, use:
python run_game.py
Controls
* W-A-S-D: rowing
* Mouse: look around
* Mouse wheel: zoom
* Esc: back to title and pause
Credits
All assets were created from scratch using Blender for 3d models and Procreate for 2d images.
* Programming: msPear
* Art design: msPear
Produced by MOONBRAIN INTERACTIVE.
With special thanks to Tim & Entikan
Aron, Coen, Entikan, Marnik, Monique, Rink, Tim & Willie <3
Entrant: MsPear

Rolldown
- Rolldown.zip — The game!
How to install required packages:
pip install -r requirements.txt
If it doesn't run after installing those packages (macOS, I'm looking at you), try installing pyogg too:
(Thank you, ambv, for that suggestion)
pip install pyogg
How to run:
python run_game.py
How to play:
- Push ball with WASD or arrows
- The effect is MUCH larger when hitting a wall or object
- Activate boost with SPACE (boost indicator is at the top right corner)
- Open the menu with ESC
- Oh, and try to collect all the gems
- Happy rolling!
Cheats:
I implemented these mostly for development purposes, and forgot to disable them before uploading the file, so I’m just mentioning them here. They aren’t intended for use and might interfere with things like the score or your overall enjoyment of the game =P
- Ctrl-N - jump to the next level
- Ctrl-P - jump to the previous level
- Ctrl-R - restart current level
- Ctrl-B - fill one bar of boost
Entrant: Gato

Manxicade
- Untitled_Raft_Game.zip — Untitled Raft Game
Team: Manxuma123, Barracade

Logs Odysseys
- Logs_Odysseys_LjNmOnq.zip — Game source code
## Overview
Logs Odysseys is a log-floating game built using Panda3D, a powerful game engine for 3D rendering and game development. It aims to create semi-realistic fluid flow mechanics where players navigate logs through a braided river system. It was developed as an entry for PyWeek 39, where the theme for the game jam was "Downstream".
## Rules
You just bought a ton of wood upriver. You must float it down to the sawmill to sell at a higher price. Watch out so timber doesn't get stuck or lost off to side rivers. Use left mouse button to push wood with a shock wave. Use right mouse button to place a river barrier. Longer logs have more mass and fetch a higher price at the sawmill, but are more difficult to control. Each batch of wood you buy gets more expensive. Please keep the wood flowing to the mill! If you run out of money in the bank, the game is literally over.
## Features
- Semi-realistic water simulation based on the Navier-Stokes equation
- Log floating in a braided river system
- Interactive elements for user engagement
- Economic system
## Requirements
- Python 3.8 or later
- Panda3D 1.10 or later
## Installation
1. Clone the repository:
```bash
git clone <repository-url>
```
2. Navigate to the project directory:
```bash
cd river
```
3. Install dependencies:
```bash
pip install -r requirements.txt
```
## Usage
Run the main script to start the simulation:
```bash
python main.py
```
## Assets
- Sound effects: https://freesound.org/people/MessySloth/sounds/750289/
- 3D Models: https://www.blenderkit.com/asset-gallery-detail/72ce2c5b-03b6-44e3-9c2a-4e0e38e3cbb0/
- Water shader adapted from: https://www.shadertoy.com/view/ldd3WS
## Contributing
Contributions are welcome! Please fork the repository and submit a pull request.
## License
This project is licensed under the MIT License. See the `LICENSE` file for details.
Entrant: omnia

DownStream
- pyweek39-main.7z — Src Code Zip (build-able w instructions)
- PyWeek39Anders.0.1.0.exe — Windows Build
- PyWeek39Anders.0.1_CHlus3N.0 — Linux Build
- PyWeek39Anders.0.1.0 — Mac Upload
** treating this as learning opportunity and for fun. The planned game is very very simple :)
## HOW TO PLAY:
- download one of the 3 pre-built packages for Mac, windows or linux and run via double-click on windows or using the terminal on Mac/linux
NOTE: you may need to allow you OS to open the package / trust it since it was made with pyinstaller
- unzip the folder of source code and follow the README to install the requirements.txt and run natively, or build your own version locally with pyinstaller
Entrant: Anders

The Great Flood
- The-Great-Flood.zip — final submission
Master the flood as a resource and weapon against enemies. Prepare for highly tactical gameplay.
Controls
- Space to release water - R to restart level or reset walls - N to continue to next level - Mouse click and dragging to draft walls
Entrant: Apex

Rowing on Rapids
- Rowing_on_Rapids_2.zip — Final zip. I mean it this time!
- Rowing_on_Rapids.zip — game zipfile
You find yourself in a row-boat on a moving river dragging you downstream.
Row against the current and navigate around the rocks.
controlsPress left or right cursor keys to move one of the oars. Each
press pushes the boat forward a little and turns the boat.
Press both keys to go straight (the rotations cancel out)
Row against the stream to slow down for a short while.
Pay attention to the orientation of the boat.
Good Luck!
Entrant: cbemeijer

Datastream Defender
- datastream_defender.zip — zip folder of game
DATASTREAM DEFENDER
* Defend the datastream from the incoming obstacles!
* Use ARROW KEYS to move and press/hold SPACE to shoot
* You can shoot down the obstacles to gain money
* Use the money to buy health and upgrades (press F)
* Shooting also costs a small amount of money
* You'll lose health if you collide with an enemy
* You'll also lose health when enemies reach the top
Hint: Don't forget to get upgrades and health!
-----------------
-----------------
Mobile controls are not implemented due to lack of time, so desktop only.
-----------------
This game uses zengl to render with OpenGL/WebGL, webwindow for Pyscript window and input handling, pygame-ce for utility functions like collisions and image loading (+ audio and window when running natively), and numpy for data manipulation.
Image assets were generated with DALL*E 3, music generated with SUNO, sfx created with JSFXR font from https://fonts.google.com/. The shader code for the background was adapted from/inspired this shadertoy contribution
-----------------
You can also checkout the repo to run locally.
To run in local browser:
python -m http.server -d .
Then navigate to http://localhost:8000/
(internet connection required still for dependencies)
Or run natively:
pip install zengl pygame-ce numpy python -m main
Entrant: Djorm

\|_/\\.|/
- Pyweek39_g6r9Yt5.zip — With readme and requirements.txt
- Pyweek39.zip — Submission as of deadline.
python -m pip install -U panda3d panda3d-simplepbr

Golden Hound
- GoldenHound-0.02.zip — source code
Controls: WASD or arrow keys (Look at readme for more details)
Uses Python 3.12 and pygame-ce 2.5.3
Run with: python main.py
Playthrough: https://youtu.be/KjW4boHdQXA?si=lB2lwUqhEjlw88Nk
Entrant: speedlimit35

Catfish Escape
- Catfish_Escape.zip — Final game submission
Team: regarrzo, curious__being, senwelley

Streamline
- streamline.tar.xz — Local playable archive
Play at: https://ambv.pyscriptapps.com/streamline/latest/
Entrant: ambv

Scuffy
- scuffy_final.zip — Final Game (various bug fixes)
- scuffy_v1.zip — First Submission of Game
Help Scuffy navigate down the river, while collecting power-ups, items and new abilities to aid in your adventure.
Requires: pyxel, numpy
Controls: Arrow Keys + Z + X + SPACE, P to pause/map (Instructions are in-game) (see "consts.py" if you want to change buttons!)
Game playing notes:
- If you get lost, you can see the map at any time in the pause screen by pressing P
- The game takes approx. 25-30 minutes to complete, depending on how fast you progress! Sorry, I know it's a bit long for Pyweek, but it's a bit hard to make a short metroidvania :) ... thanks if you make it to the end!
Play Online/in the Browser:
"Scuffy" is built in pyxel, which can convert projects into HTML. You can play Scuffy in the browser here:
https://mit-mit-randomprojectlab.github.io/pyweek39/scuffy.html
Entrant: mit-mit

A Tube
- atubefinal.zip — some fixes and made it 3x4 aspect ratio
- atube_9H1dAeN.zip — had an all nighter
- atube.zip — kinda finished early upload just in case
pip install ursinacontrols:
python main.py
space bar or start button - play
left/right arrow or A/D keys - movement
down arrow or S or C key - duck
up arrow or W or R key - parry (bombs)
Entrant: inkontoasty

Flow
- pywee-39-flow-windows.zip — Windows build
- pyweek-39-flow-source.zip — Source code
This is our entry for the pyweek 39 with the topic downstream.
Battle it out with your sword against either a bot (offline) or against other players online.
We submitted our source code and a windows build. More builds are availabe as a release in out github repo.
ControlsWASD - Move
Left Mouse - Sweep
Right Mouse - Block
Shift - Stab/Dash
Space - Jump
Online PlayWhen playing online, keep in mind that there aren't many players. You may want to queue at the same time as a friend. The matchmaking system does not use an MMR system but instead matches players as quickly as possible.
You can edit and persist your username in the settings. :)
To change the network configuration (e.g., switching to a self-hosted server), edit `./game/const/networking.py`. (Host and whether or not to use ssl when connecting)
Note: Our resources are limited. We will be hosting the game server for a while, but there will only be an EU instance. You can still play from other parts of the world, but you may experience latency issues.Game
Install the requirements
python3 -m pip install -r requirements.txt
Run the game
python3 ./run_game.pyServer
Honestly it's easiest to just start the docker compose :)
docker-compose up -d
For development just install the additional server requirements
python3 -m pip install -r server/requirements.txt
Run the server
python3 ./run_server.py

Keep The Downstream Clean!
Speed down a trashed and abandoned river on your trusty motorboat to collect the plastics to clean the river. But beware of the currents and rocks, for they can killTeam: DR0ID, tabishrfx, PyNon, Ununennium

Swimmy Submarine
- swimmy_sub.zip — Zipped up assets of the final version of the entry.
Entrant: ntoll

Anyport
- anyport-v1.tgz — Final entry v1
Set off from Anyport in your airship and collect resources above a stormy sea. Upgrade your fuel tank and build jet streams to reach farther.
How it fits the theme: the main mechanic involves moving downstream in windy areas. It seems like an obstacle at first, but it may be used to your advantage.
I recommend collecting at least one artifact before judging. This will give a pretty good idea of the game, and might take 10 minutes. Any more than that is optional.
If you're concerned about flashing lights, see README.txt.
Entrant: Cosmologicon

The Current of Time - ときのながれ (Tokinonagare)
- TokinonagareFinal.zip — Added requirements.txt
- TokinonagareNew_Pzm62B0.zip — Final Game Submission
Once you enter the current, can you ever go back?
Entrant: KNKWasTaken

Down the toilet
- downstream.zip — final final
This is a 1-player game where player surfs downstream the inside of a toilet. In which we seems to be in a endless space-river. Surf throu the river back and forth and avoid getting hit by all the random shit the space-toilet trows at you.
## How to play the game
Surf around by using the `'W', 'A', 'S', 'D'` or the `'UP', 'LEFT', 'RIGHT', 'DOWN'`- KEYS
## Enjoy the Game!
Feel free to reach out for any issues or feedback. Happy gaming!
**Studio Rakkas**' contribution to the **pyWeek39** game jam, with the theme "Downstream".
## Requirements
To run this project, ensure you have at least **Python 3.13** installed.
### Installation
You can run the game without installing dependencies globally by using a virtual environment, to do so, navigate to the quisling directory and then:
1. **Install Pipenv:**
- If you don't have pipenv already installed:
```bash
pip install --user pipenv
```
1. **Create a virtual environment:**
```bash
pipenv run install-req
```
2. **Run the game:**
```bash
pipenv run start
```
### Alternative: Install Globally
1. **Install the dependencies:**
```bash
pip install -r requirements.txt
```
2. **Run the game:**
- Using terminal:
```bash
python path/to/main.py
```
- Or run main.py within your IDE.

Riverborn
- riverborn-1.0.4.zip — Fix packaging problems
- riverborn-1.0.0.tar.gz — Source Distribution
A game about canoeing on a tropical river.
You have 5 minutes to get photos of 3 river animals. Some Aussie guy is very insistent about this.
Where is the river? Are all these creatures authentic river fauna? Is this a canoe or a kayak?
Launching
The easiest way to run the game is to install uv and uv run riverborn.
ControlsAt the title screen, press Space to play.
- Left Arrow - paddle on the left side
- Right Arrow - paddle on the right side
That's it! Go spot some fauna! Quick, because your mate said so.
When you're doneThere are some editor controls you can play with. They are all invoked using the mouse.
Press Tab to cycle tools (the CLI says which tool is selected). Click/drag to use the tool. Mousewheel to cycle animals.
The terrain and animals are persisted when you quit the game. Don't mess up your copy of the game data and blame me.
Entrant: mauve

Driftwood
- Driftwood-Win.zip — Driftwood. Windows version.
- Driftwood.zip — Driftwood. Final entry.
Entrant: Tee

River Trade
- River_Trade.zip — Final Game
You must navigate the river, avoid hazardous rocks, and manage your resources wisely to out-earn your friend and rival within a span of 26 weeks. Each week, you'll travel to various towns to trade goods. Buy low, sell high, and make strategic decisions to grow your fortune. Will you prove yourself as the "best merchant"?
Controls:
WASD/Arrow Keys: Navigate menus and control your ship.
Spacebar/Enter: Interact with menus and progress through the story.
ESC to exit, saves progress automatically.
Entrant: Master_cheese12

Awaking
- Python-Game-Jam-2025-main.zip — The game
- IMG_20250328_160449_865.png — Awaking | Logo
Team: Walkercito, CanIIAweekee

Captain Falls and the 'Secret' Treasure of the Coconut Kingdom
- Race_in_Coconut_Kingdom.zip — Pyweek 39 Submission
Install and Run:
pip install pygame
python main.py
Game Instructions:
You are on a boat heading downstream on a river in the Coconut Kingdom.
You have to get to the treasure before your health runs out.
Hitting rocks reduces the health by 2 points.
Getting hit by an arrow from the coconut archers reduces the health by 1 point.
Use the Up/Down/Left/Right keys to control your boat.
Avoid rocks and arrows and reach the treasure.
Controls:
Up - reduces boat speed
Down - increases boat speed
Left - moves boat left
Right - moves boat right
Team: smoktwix, Doger, Pykemon010

Phantasma's Downstream Fishing
- Phantasmas_Downstream_Fishing.zip — Game folder for this games submission
How to play:
- press any key to start
- mouse movement controls the fisherman
- Catch as many fish as you can while avoiding the bad ones
Fish points guide
Blue - 10tps
Green - 25pts
Purple - 50pts
Yellow - 100pts
RED - Bad fish
Entrant: Phantasma

Drifty Ducky
- DriftyDucky.zip — Final entry, unless I think of something else I need to add
Entrant: Spears Dracona