March 2025 challenge: “Downstream”

28 entries

Downstream

Made in 7 days for PyWeek 39. Theme "Downstream".


Running from build:

Download the package for your OS (macos, windows or linux).

Running from source:

Requires Python 3.11, Panda3d 1.10.14 and Panda3d-simplepbr.

To install the dependencies, use:

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

Thanks for the mental support and snacks:  
Aron, Coen, Entikan, Marnik, Monique, Rink, Tim & Willie <3


Entrant: MsPear

Rolldown

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

This is both our first times doing a game jam. Please be nice :)

Team: Manxuma123, Barracade

Logs Odysseys

# Logs Odysseys
## 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

First game jam. Solo


** 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

Strategic Simulation Game

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

You find yourself in a row-boat on a moving river dragging you downstream.

Row against the current and navigate around the rocks.

controls

Press 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

Screenshot


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!

-----------------

Play on the web here!

-----------------

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

\|_/\\.|/

You're a highly advanced nano-bot inside the heart of an ancient alien. Your task is to make sure blood stays oxygenated, is free of foreign bodies like viruses and parasites, and is sent to all organs. If an organ fails the game is over.

Requires Python 3.9+, with panda3d and panda3d-simplepbr (install using pip, make sure to install latest versions with -U):
python -m pip install -U panda3d panda3d-simplepbr

How to play:

Arrow keys: Aim your turret.
Space (when aiming at blood or bodies): shoot
Space (when aiming at blood vessels, look all the way down): pump chamber to organ

Credits:
3d art, programming, design, sfx: Entikan
Music, shaders, design: rdb
Produced by MOONBRAIN INTERACTIVE

Special thanks to:
Gerlinde, Tim, Monique, Coen, Willie, Rink, Aron, Marnik, Schwarzbaer, Moguri, Simulan, Nica, Pyweek organisation and community

Team: rdb, zwerver

Golden Hound

Golden Hound is a game about a hungry dog that jumps into the water for fish. The setting is during the Californian gold rush, so I tried to convey the setting through my art and music.


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: An oldschool roguelike dungeon crawler.

Team: regarrzo, curious__being, senwelley

Streamline

A single-tap synthwave rhythm game made with PyScript.


Play at: https://ambv.pyscriptapps.com/streamline/latest/

Entrant: ambv

Scuffy

A metroidvania based on the old school children's book "Scuffy the Tugboat" (Little Golden Book by Gertrude Crampton) (see: https://www.youtube.com/watch?v=g4sRbow6GKQ and https://en.wikipedia.org/wiki/Scuffy_the_Tugboat).

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

inspired by "Tube" - the theme and name of my pyweek 37 team entry (winner for fun category)

get downstream a river on a tube, avoid obstacles that slow you down before a giant avalanche hits you from the above!
there's a boss fight also :o

how to play
pip install ursina
python main.py
controls:
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)

this may be a solo entry, but i want to thank the Projammers (mit-mit, FlowGLOW, TZone, ZPrimeX, blob_killers) for giving me my first positive PyWeek experience and giving this game its base inspiration since I started this project a day late and there really wouldn't be enough time if I had to brainstorm a brand new idea.

also thanks to the ursina package owner/contributes for making such a wonderful and easy to use 3D library, really smooths the learning curve for people who had no experience with 3D programming like me

finally thanks for playing my game, have fun!

Entrant: inkontoasty

Flow

Flow - Pyweek 39

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.

Controls

WASD - Move 

Left Mouse - Sweep 

Right Mouse - Block 

Shift - Stab/Dash 

Space - Jump 

Online Play

When 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.py
Server

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

Team: coffee, Heuser

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 kill

Team: DR0ID, tabishrfx, PyNon, Ununennium

Swimmy Submarine

  • swimmy_sub.zip — Zipped up assets of the final version of the entry.
Nautical adventures with PyScript (Python in the browser).

Entrant: ntoll

Anyport

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)

Once you enter the current, can you ever go back?

Entrant: KNKWasTaken

Down the toilet

# Down the toilet
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.



Team: gurkwaan, Herjeman, jollilala

Riverborn

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.

Controls

At 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 done

There 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

An arcade game where you must pay the consequences for littering. :)

Post-Pyweek note: This game requires the latest version of pygame-ce. The requirements.txt from the package is incorrect.

Entrant: Tee

River Trade

Welcome to River Trade, a game that puts you in the role of a merchant competing to prove they're the best river trader! 


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

In a world that never stops, what if someone dared to pause

Team: Walkercito, CanIIAweekee

E13 Entry

E13 Game

Entrant: E13

Captain Falls and the 'Secret' Treasure of the Coconut Kingdom

Captain Falls and the 'Secret' Treasure of the Coconut Kingdom

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

A simple fishing game where you catch fish swimming down by the river. You're standing on a wooden bridge with a net to catch them.


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
A game about a ducky drifting downstream.

Entrant: Spears Dracona