PyWeek 28 challenge: “Tower”

24 entries

Tower of Rapunzel

OK, so. This might end up being rubbish.

A calendar week gives me so little actual development time. What with work and family and so on.
But that's the challenge.

You can write a poem in a week. You can write a song.
There must be some way you can come up with a game in that timespan too.

So, I'm all about stripping everything back so that it becomes a realistic possibility.
I'm going for a game that's rich in text, sparse on sound, and light on graphics.

Buggy or boring, though? We can't imagine yet where the finger will point.

Update: Instructions for use
Install

Create a Python virtual environment (version 3.7 or above):
python3 -m venv torvenv

Install the game (the version number may differ):
torvenv/bin/pip install tower_of_rapunzel-0.6.0.tar.gz

Play

Launch the server:
torvenv/bin/torgame

You should see this message:
======== Running on http://127.0.0.1:8080 ========
(Press CTRL+C to quit)

Point your browser to that address:
firefox http://127.0.0.1:8080

Entrant: tundish

Nerdozog's Ascent

Help a hapless alien manage his world's first space elevator. I recommend Kurzgesagt on space elevators if you don't know what they are.

Complete 20 missions to beat the game. For graphics and audio options, see the README.

Team: Cosmologicon, xmzhang1, Unicorn Markets

m47pyweek28

Entrant: Master47

Devils Tower

Devils Tower

NOTICE: Depending on your CPU, it can take quite a while before the game starts (Black Screen). On my workstation it loads in about 4-5 seconds, but it could take a lot longer, depending on your CPU and the available SIMD instruction set. There is also a small chance of it getting stuck in an infinite loop while placing certain objects in the world, so give it a chance to do its magic, but kill it and retry if really nothing is happening on screen ;) .

It also seems like the 32-bit Windows build doesn't work properly (at least when I tried it just now, 10/07/19, the Nonogram solver hides after a few inputs and then never shows again!!!) Please try to either to play the game directly from source or, if possible, use the 64-bit Windows build, which doesn't suffer from the problem. Thanks.

About

A puzzle / exploration game that heavily relies on procedural generation.

I wasn't too excited about the theme Tower at first and when searching the web, I stumbled on the "Devils Tower" in Wyoming, USA, which looked like a shape I could more or less generate and thus decided to build a game that takes place around the Devils Tower.

Most of the time, I spent writing various parts of procedural generators as a basis to generate geometry, place objects, etc. Also a notable amount of time I invested in things I wasn't even sure whether they would come in handy later on...

As a challenge I wrote a veeery basic collision system more or less from the ground up. I obviously didn't want to implement linear algebra ops from scratch, when I have libraries that do that faster than I could ever optimize a piece of code... I did implement a quadtree just because I wanted to at the beginning, which in the end proved very helpful together with the collision system.

This was a blast and I'm looking forward to playing all the games in this contest :)

Here's a video of me playing my game in the almost final version you can get here: Playthrough

Build / InstallInstructions
Thanks to rdb I now have a Windows 32/64-bit builds alongside the source, though getting this to run should be easy enough for anyone familiar with pip and the appropriate tool-chains and header-files/libraries to build Python extensions for your OS (No build tools necessary for 64-bit windows, since there are binary wheels available).

This game requires Python 3.6+

To get the appropriate build-tools on Ubuntu, this command does the trick:
sudo apt-get install build-essential python3-dev

My recommendation is to either clone from github or download the zip file and then simply run
pip install -r requirements.txt
(preferably in a virtualenv, imho... if you're unfamiliar with virtual environments and python, this could help fill that hole you didn't know was there before...)

Running the Game

python3 run_game.py / python3 run_game.py

Game Instructions

General
You can move around with whatever keys are mapped to the location, where the WASD keys are located on a US English Keyboard layout. I purposely did not add a bunch of text in the game, because I want the player to explore the world and find out what the goal is on their own. Since my character has a tendency to dive below the terrain, you can move the camera with the mouse movement as to at least see what's above ground...

Nonogram (also called Picross or Griddlers)
One form of puzzles you find around the world are Nonograms, that are a form of logic puzzle that describes an image by a series of numbers. To the left and right of every block, there needs to be at least one empty cell. If to the left of a row or above a column you find "3 2 1", you know, that in that row/column there are 3 connected blocks, one with three, the second with two and the last with just one cell connected, all while between every block remains at least one inactive cells before the beginning and after the end of the block. If its still unclear to you how to solve a Nonogram first read the Wikipedia page about it, linked above or search the web for a more thourough explanation.

When you find one of the puzzles and solved it (or if you want to get back to it at a later time), you can just move away and move around normally. The first time you encounter a Nonogram, a screenshot from the article about it on Wikipedia is shown. To close this screenshot, simply press one of these keys/buttons: (space, enter, right or middle mouse-button).
You don't have to solve a Nonogram completely, the game saves the grid after the last manipulation and you can always come back to solve it later.

Debug switch I left in the game: You can switch to wireframe view with F1 inside the game at any time.

Have fun!!

Credits
  •  Using Nonogram for puzzles was the idea of my good friend Evelyne
  •  SFX and the song playing in the background are from my neighbor/friend Joel
  •  The Panda3D community for helping me figure out  technical problems

Special Thanks to

  • Kathy for keeping my back free during this jam week so I could focus 100% on creating this
  • Evelyne to help brainstorm ideas and help me keep my motivation when I got frustrated
  • My neighbor joel, both for the music and the regular requests to come outside to let our dogs play in the garden -> the only fresh air I got in 7 days :P
  • rdb for motivating me to take part in this competition in the first place

Videos and Screenshots


Nonogram Solver

Mysterious obelisk inside a stone circle...


Entrant: tizilogic

Spire of Chaos

  • v1.2.zip — Final upload (25.62 Mbytes on 2019/09/29)

No one could stop the dragon, and now he is ruling your beloved city. A seasoned adventurer like you know that he will get bored and devour everyone in a few days. But a seasoned adventurer likes you knows there is nothing that can harm the monster except for an enchanted dragon slaying arrow.

Nobody has seen one of those in ages. It is said that the wizard kept one in his tower nearby... but he died a century ago. Others have tried to get into the building just to escape with reports of deadly traps and monsters. There is no choice now but face the dangers within if you are to slay the evil dragon. The time is running out and the path will certainly be filled with peril, it's not an accident this place is called...

THE SPIRE OF CHAOS

You have a week, adventurer.


My first solo entry in PW! A dungeon crawl rogue-like....

Entrant: Darni

TowerJumpers

Solo entry for making a game this time with python on the web.. (Transcrypt). Am Pretty excited about the whole thing.

Play the game in browser: Play

Entrant: gizmo_thunder

Towers of Strength

  • towers_of_strength-master.zip — Towers of Strength - a classic tower defence game with a twist: instead of the 'towers' hindering, they are there to help. Place supporters, food and drink stations along the course so the runners can reach the end (4.70 Mbytes on 2019/09/29)
Our game "Towers of Strength".


We created a twist on the classic tower defence game. The 'towers' along the route are there to help the runners, not hinder them. They are food and drink stations, and supporters. 

When runners get hungry, thirsty or discouraged they start to slow down. With lots of encouragement they speed up - but use more food, drink and will power. How quickly can you get the first fifteen runners over the finish line?

Currently with 3 different levels

Unfortunately one of us had some urgent business to take care off and didn't get a chance to contribute very much. So we didn't have as much person-power as we would have liked, and it has mostly been a solo effort

To run it, install requirements from requirements.txt, then python3 main.py

Drag the 'towers' into place. At the end of the third level the game just crashes out - I didn't have time to give it a proper ending

I've developed it on Linux, and made sure it also works on Windows

You can also find it at https://github.com/CompassMentis/towers_of_strength

Entrant: coen

Babel

  • Babel.zip — The final game. (19.06 Mbytes on 2019/09/29)
In Babel, you must build the Tower of Babel by placing coloured bricks next to other coloured bricks. However, the instructions regarding the desired location of each block are given in several languages, which makes the game substantially more difficult.

Features:
  • Se incluyen diez idiomas diferentes. (Ten different languages are included.)
  • Le jeu a six couleurs de brique passionnantes. (The game has six exciting colours of block.)
  • Os tijolos caem bem e fazem um baque. (The bricks fall nicely and make a thud.)
  • Когда вы проигрываете, ваша башня падает. (When you lose, your tower falls down.)
  • C'è musica. (There is music.)
  • तीन कठिनाई स्तर हैं। (There are three difficult levels.)
  • 不需要键盘。(No keyboard is required.)
  • Wenn Sie versuchen, zu schnell zu spielen, werden Sie vergessen, wie links und rechts herum sind. (If you try to play too fast, you will forget which way round left and right are.)
  • গেমটিতে এমন অনেকগুলি ভাষা রয়েছে যে আমি তাদের সবার জন্য অর্থবোধক বৈশিষ্ট্যটি ভাবতে পারি না। (The game has so many languages that I was unable to think of a meaningful feature for all of them.)

Entrant: LeopardShark

Stacky Tower

A father and son team. Our game is called Stack Tower.


Playing Stacky Tower

The game may be played from source or by using a pre-built Windows executable.

The easiest way to play from source is to use the Mu editor. Check out the Stacky Tower code from this repo (or extract a zip file) to your preferred location and open stackytower.py in Mu. Choose PyGame Zero from the Mode selection button and then click Play.

You can also simply extract the .zip file into a virtualenv, pip install pgzero==1.2 and run pgzrun stackytower.py.

If you are running on a Windows platform you may opt to use a pre-built executable (stackytower.exe).

Game Play

The game opens to a menu. Follow the basic instructions for play within the game.

Custom Keyboard Layouts

If you use a non-QWERTY keyboard layout you'll need to play from source. You can edit the key mapping at the top of stackytower.py to suit your preferences.

Team: dowski, wooster

The Tower of Torment


An old-fashioned Wizardry style dungeon crawler, except, yanno, upside down.

Team: schilcote, tieff

The Alchemist's Tower

This is a point and click adventure story. Due to time constraints I didn't start properly until Thursday afternoon.

My aim was simple: to create an experience reminiscent of the mysterious explorations found in similar games of the past, such as Myst.

It's also an opportunity for me to try to exercise my PyperCard library (a simple shim around Kivy, that works like HyperCard).

The story starts in a dinghy on Lake Zurich, Switzerland.

I've uploaded a play-through to YouTube (spoiler alert, you'll see the puzzles being solved).

Installation

Clone the Git repository (apologies that it's so big, I've been using uncompressed game assets), or download the and unzip the compressed source.

The Alchemist's Tower only works with Python 3. Create a new virtualenv:

    python3 -m venv tower

Then within the root directory of the source repository install the dependencies:

    pip install -r requirements.txt

Finally, run the game from the root directory of the repository like this:

    python main.py

You should be presented with a screen asking for your name. Please also make sure you have sound switched on -- it's an important aspect of the game.

I hope you enjoy it..!

Linux Sound Issues

Due to a bug in Kivy, sound may not work on Linux based systems. The fix is to compile and install the ffpyplayer package in your virtualenv before installing from requirements.txt.

Links for how to do this can be found at the following GitHub issue: https://github.com/matham/ffpyplayer/issues/71

tl;dr - install a bunch of system wide packages along with your Python headers, then just:

     pip install . 

within the virtualenv from the root directory of the ffpyplayer Git repository - detailed instructions here: https://matham.github.io/ffpyplayer/installation.html#linux.

Entrant: ntoll

Battle Tower

Battle Tower - A simple 2D game 

 

You are here to challenge the Battle Tower 

Which will test on your reaction and doging skils 

Search for  patterns between the attacks 

And never give up coming back! 

 

  • Use [A] [D] [W] [S] to walk around 
  • Hold [SPACE] to attack 

 

There are a total of 5 stages, the difficulty gets harder 

 

For windows users: download the BattleTower and run BattleTower.exe 

For Mac and Linux users: download the BattleTower-src, make sure you have pygame1.9.4 installed and are using python 2.7.10. Then run main.py 

 

Walkthrough Video: 

 

Bgm credits to branflakes, check out his channel! 

https://www.youtube.com/channel/UCDTfibJPnxyb6wAZep7Z-hA

Entrant: chrisyan2000

Derplings: Tower Ascent

IMPORTANT: We saw that the requirements.txt was missing and there was a bug inside the map please use the following version if you test play the game: https://github.com/macskay/derplings/blob/master/derplings.zip?raw=true


Unfortunately there are some issues we couldn't fix in time, so please be aware of the following:
Known Issues:
 - When deleting a ladder it could happen that derplings fall of the ladder and die. Workaround: Wait until deprlings have reached a platform then delete the ladder.
 - On Stage 7: When placing the TNT on the destructible floor (red floor) make sure that no derplings are actually currently standing on the floor, as the destruction will cause the game to crash as derplings will have an orphaned reference to the platform.
 - The game won't actually tell you when the game is over, however the game is over when there are either no free derplings left or when all free derplings jump of the platform at the top of the tower.



# Derplings: The Ascent

Team: The Over Engineers
Members: macskay, saki, wkmanire, bitcraft
License: see LICENSE.txt

## Running the Game


Only python 3.6 or newer is supported.

* For linux, you need to make sure you have the python-dev packages available to build the wheel for planar
* For Windows install the requirements and run the game as described in Running the Game in a Virtual Environment. For the planar dependency the Microsoft Visual C++ Build Tools are required. They can be downloaded at: https://go.microsoft.com/fwlink/?LinkId=691126 There are also pre-built versions of planar downladable here: https://www.lfd.uci.edu/~gohlke/pythonlibs/#planar
* For Mac OS. Gee we sure hope this works ¯\_(ツ)_/¯

Use pip to install the dependencies in requirements.txt (as seen below)

then run

    python run_game.py

### Running the Game in a Virtual Environment


Make sure you create an environment with python >= 3.6. Then run

    python -m pip install -r requirements.txt

then

    python run_game.py


## How to Play the Game

Your goal is to get as many derplings you can to the top of the tower where they can parachute to safety. Use the items to help the derplings ascend the tower.

1. Left click on an item to place it
2. Right click to get out of item placement mode
3. Right click on placed items in the map to return them to your inventory
4. Don't let the derplings fall too far or they will explode
5. Up/Down Arrow to move camera

Team: bitcraft, wkmanire, macskay, Saki

Tower Inc.

  • Tower_Inc..zip — Balancing changes (62.21 Mbytes on 2019/09/28)
  • Tower_Inc.zip — Should be finished, there's an executeable in the source/dist/main/main.exe, please read the How to Play before playing. (62.21 Mbytes on 2019/09/28)
Just a couple of uni lads wanting to get roasted on their sub-par programming ability. Nothing to see here.

Team: RanD0, no_sleep

decorporation

Hi, i still dont't  know if i will have time to participate, i try.

Entrant: Buffalo974

The Infinite Tower

  • pyweek28_src.zip — The Infinite Tower for Python 3 (27.58 Mbytes on 2019/09/28)
  • pyweek28_win.zip — The Infinite Tower for Windows (21.38 Mbytes on 2019/09/28)
About The Infinite Tower

Ever wanted to see what it's like to climb up a tower, for eternity? In the Infinite Tower, you can do just that and more! Fight enemies on each floor, collect gold and upgrades, and see how far you can ascend the tower before you die.


Python 3 Install

Note​: Contrary to my previous games, this games source code ONLY works in Python 3.

​Extract the .zip file and open the folder contained in it.

​To run it, have Python 3 (any 3.x version works) and Pygame 1.9.x installed (preferably pygame 1.9.6).

You can run it in the terminal by typing:

​​python main.py


Windows Install

​​Note: Requires Windows XP or newer to run. (Not like anybody would try it on Windows 98, but I'll say it anyway.)

​​Extract the .zip file and open the folder contained in it. 

​Run the program ​main.exe​.

External Links

One More Thing...

​There was a font used in the game who's license I forgot to include, I'll leave a link here to the font and it's license:

https://www.fontsquirrel.com/fonts/Silkscreen?q%5Bterm%5D=pixel&q%5Bsearch_check%5D=Y​

Entrant: OrionDark7

Improbable Mission Force

Improbable Mission Force

If you have difficulty beating the baddies and want to play the game through, see the note in readme.txt about beefing up the hero's hit points.

If you need help getting the program running or just want to chat, look for us in Discord or IRC #pyweek, #pygame @ freenode.net.

Ahnold has this invaluable tip, "GET IN THE CHOPPA! GET IN THE CHOPPA NOWWW!"

Team: DR0ID, gummbum, mit-mit, Axiom, erglim

Roller Knight

A devilishly hard game of melee combat.

Copyright 2019 Daniel Pope and Larry Hastings


Overview

Ah, good, you're here! The prince is trapped at the top of the tower!

Please go rescue him!

You are a knight with a magic sword--but the sword only works when you're moving really fast! So you've strapped roller skates to your armor. The good news is now you can use your sword--the bad news is it can be hard to control when you're moving that fast!


Running Roller Knight

Run

python3 game.py

in the Roller Knight directory.

Make sure all the requirements are installed first!

If you're having framerate issues, you can turn off all particles with the --no-particles option. Sadly the game is way less pretty without particles, but it may help running the game on older machines. Just run it as 

python3 game.py --no-particle

Also, you can specify which level you want to start at, as a single positional command-line argument. For example, to jump directly to level 6, you'd run 

python3 game.py 6

And to jump to level 10 of Endless mode, run

python3 game.py "Endless 10"
Gameplay

Roller Knight support keyboard controls (WASD) and joysticks.

Simply move in the direction you want to go; your Roller Knight will rotate to face that direction.


When you're moving fast enough, your sword will glow! This creates a sort of arc of protection directly in front of you, which you can see.

So you'll be safe as long as the bad guys--or the bullets--are directly in front of you. But watch out for bad guys crowding in on the sides!


You can also fire off bombs, with the space bar or joypad button.

But you only have a limited number of bombs! Although you can occasionally pick up extra bomb powerups.


Technology

Roller Knight was written using the excellent new wasabi2d.


Release History

v1.0.3

  • Added invisible walls around the whole level to close up gaps, preventing monsters from spawning there, and hopefully also preventing the player from warping there when the framerate tanks.
  • Fixed bug: pressing the space bar always started a new game.
  • Added --no-particles command-line option.

v1.0.0

  • Initial release.

Team: mauve, larry

platfromer

Probably some sort of platformer type

We'll see

Entrant: Cody

The Leap of a Frugal Man

This is about a game where you jump off a tower. you need pygame and python3

to play: do```python3 main.py```

Gameplay: use space bar and arrow keys to progress, when falling off tower, make sure to not crash into birds or the building! , do what the game tells you

playthrough: https://youtu.be/Zx66xY5EAnM

github: https://github.com/weijingwang/The-Leap-of-a-Frugal-Man

Entrant: speedlimit35

Sid

I'm making a small TD game because I didn't have a lot of free time to dedicate towards this.

Entrant: siddhartha13

Hobot's Ascent

Meet Hobot, a quirky little robot who one day wakes up to find himself in the basement of a strange tower. Help him use the limited means at his disposal to ascend through the fantastical floors, to discover what is at the very top!

Use the ← → ↓ ↑ keys to move and the Enter key to interact. To switch to fullscreen, press Alt+Enter or F11.

To run the game, just type:
python3 run_game.py

The only dependency is Panda3D 1.10.4.1, which can be installed using the following command:
pip install -r requirements.txt

BINARY BUILDS
Binary builds with all dependencies packaged are available from the downloads, though there should not be issues with running from source code.

With the macOS .app bundle, note that you may get an error after clicking Hobot's Ascent.app about me being an untrusted developer. Go to System Preferences, Security, and click "Open anyway".

If you run into any issues, please send the output log. In the binary builds, the output is saved to the following log files:
Windows: C:\Users\You\AppData\Local\Hobot's Ascent\output.log
macOS: /Users/You/Documents/Hobot's Ascent/output.log
Linux: /home/you/.local/share/Hobot's Ascent/output.log

CREDITS
Artwork by rdb and momojohobo using the GIMP
Animations by momojohobo using Blender 2.80
Programming by rdb using Panda3D
Original soundtrack and sound effects by momojohobo using FL Studio 12
All source assets are from public domain sources and all created assets are placed in the public domain.

Team: rdb, zwerver

Planet SMASH!

Welcome to Planet SMASH!, an intergalactic reality show where Earth has to repel an alien invasion with a melee weapon. What melee weapon, you ask? A massive tower, of course!

(This one was really tight with time, and it lacks a number of features and balancing. It is beatable though. Hope you enjoy it!)

Entrant: Tee

Souls Of The Tower

Developer who can't finish game without deadline pressure and who has much free time. Source code of horror - is a horror.

Dependencies for run from source code:
  • Python 3.5
  • PyGame 1.9.6
You can find newer versions compiled for Windows and Linux on my itch.io page

Development of the game will be continued after end of the challenge.
You can join game discord server for more news, videos and screenshot. Also follow the project news on my Twitter: @MihailRis

Entrant: MihailRis