PyWeek #23 challenge: “The Lesser of Two Evils”
22 entries
The Phantom Racer
- ThePhantomRacer_PyWeek.zip — My entry - tested with Python3, should work with python2. Please just run main.py
The Phantom Racer : rised from the death. This is a racing game using procedurally generated tracks - you have to maintain your vessel in order to win the Tntergalactic Championship. You start from a national, noob cup, then you try to reach the top level.
Entrant: YannThor
Lunar Patrol
- LunarPatrol_V0.2.zip — LunarPatrol Source and Binary
- LunarPatrol.zip — LunarPatrol_Final_bin
- lunarpatrol_bin.zip — LunarPatrol_Binary
Martin and Roger on their daily patrol around space station "Lunar 1". Never knowing what could happen today. Sometimes meteroids, sometimes space pirates, sometimes both. Due to limited resources on ammunition, oxygen and fuel, they have always to take care how far they can go when in struggle. In the worst case they have to decide between the lesser of two evils: A colliding maneuver with an enemy to drag at least this last enemy still into death or staying alive in space avoiding any collision until all resources on board are exhausted.
Features
- 800x600 resolution - should be suffiicient even on older monitor ;-)
- retro-style graphics with several colors
- amazing sound effects and ambient music
- smoothest text scrolling effects
- parallax starfield background
- event triggered power-ups and additional enemy appearance
- supports keyboard only, no additional controller needed :)
- 5-keys-only control
- Score and HiScore keeping
- graphical ammunition stock display
- hand-made from scratch in Germany :-)
Video Preview
Development
soon on GitHub
License
MIT
Have fun, and thank you for judging :-)
Entrant: prake
Glory_hole
- glory_hole.zip — glory_hole
Entrant: Buffalo974
My Enemy's Enemy is my Friend
- enemys_enemy_pyweek23.zip — Final Game
Requires pygame and numpy. Please play with sound on!
Playthrough Videos:
Part 1 of 3: https://youtu.be/MzEqs0aj1y8
Part 2 of 3: https://youtu.be/bz7x3VbqBMc
Part 3 of 3: https://youtu.be/neNqHciPZXI
Alternate Ending: https://youtu.be/xagWlKJZlB0
Game Website:
http://randomprojectlab.blogspot.com.au/2017/03/pyweek-23-my-enemys-enemy-is-my-friend.html
Entrant: mit-mit
Calvin's God Simulator
- calvins_god_simulator.py — Calvin's God Simulator 1.0
Entrant: jmm0
The Final Choice
- final-choice-v1.tgz — first final version
See the README for details about options like setting the resolution, graphics level, and gameplay orientation. See help.png for info on your ship's features.
Team: Cosmologicon, marybee, EnigmaticArcher, Goldhand
The Lessor of 2 Evil St.
- lessor.zip — Final Submission
Requires python and pygame to play (runs on py2 or 3, but for some reason the font looks way better on 2.7 than it does on 3.4)
You are the owner and manager of 2 Evil St., an apartment building for monsters.
Your goal is to accumulate $666,666.
CONTROLS
Up/Down speed up / slow down time
F1 toggle fullscreen
ESC exit
M toggle music
SPACE change song
Entrant: iminurnamez
G(r)ate mystery.
- codogupywk23-final.tar.gz — Game - Final
There are 5 levels: four of increasing difficulty to hone your skills, and one insane boss level. See the README.txt for gameplay details.
Oopses:
- If you have an older pygame you'll need to change main.py:101 to "pygame.mixer.music.play(-1)". (Cosmo told me in IRC, but I skimmed right past it and did not fix it in time. -- Gumm)
Hope you have fun, and thank you for playing.
If you need help or just want to chat, come to IRC freenode.net #pyweek or #pygame.
Wing Craft
- pyweek23.zip — single-mode
- Wing_Craft-master.zip — ver 0.1
ESC for Quit
{ 1P: 5 for coin, 1 for start, WSAD for directions, JK for button A B,
2P: 6 for coin, 2 for start, arrow key for directions, num 1,2 for button A B}
And also in title page, press Tab key to set you own buttons
Hope you enjoy it, any comment and suggestions are welcomed! ^ v ^
Entrant: xmzhang1
Ms. Information
- Ms. Information.zip — Mac OS .app file (Tested on Yosemite!)
- msinformation-bin-win_amd64.zip — Windows 64bit binary (tested on Win10!)
- msinformation-sdist-2.zip — Source distribution (requires Python 3.5+)
Play as a TV political pundit laying down the spin!
- Use space bar to jump
- 'S' or down arrow crouches
- 'P' to pause!
Source requires Python 🐍 3.5+, pygame, and fysom.
Mac users: download "Ms. Information.zip" below and extract for an app file. Double click it to play!
Windows users: download "msinformation-bin-win_amd64.zip". An exe is inside, double click to run!
Team: assertivist, paperstarships, mikekronberger
ObPortum
- ObPortum_2502_1225.zip — 25/02, 12:25
Two coloured teams interact, and by attacking one of them, you will change your diplomacy level.
When "enemy", the units will have higher probability to target you then other enemy units, and their damage will be proportional to the enemy level.
When "neutral", the units will target you around as often as they do for other units, depending on the diplomacy level.
When "friend", the units will still target you, but way less often.
Fix for one possible bug:
If you have: "TypeError: Cannot cast ufunc add output from dtype('int16') to dtype('uint8') with casting rule 'same_kind'"
it is due to new behavior of latest numpy version (unfortunately, I was not aware of that and I did not checked with the latest numpy version).
You can fix this bug really easily by changing the following lines 371, 372 and 373 in game/op_display.py (in fct medal_paint):
"arr[:,:,0] += l[1][0]-255" becomes "arr[:,:,0] = arr[:,:,0]+l[1][0]-255"
"arr[:,:,1] += l[1][1]-255" becomes "arr[:,:,1] = arr[:,:,1]+l[1][1]-255"
"arr[:,:,2] += l[1][2]-255" becomes "arr[:,:,2] = arr[:,:,2]+l[1][2]-255"
Few tips:
- The diplomacy level for team A will increase if you kill an unit of team B. But it will change more in case of number of units imbalance (if there is 10 units of team A and 1 unit of team B, or if there is 1 unit of team A and 10 units of team B).
- When an unit of team B is killed, the diplomacy level for team B will decrease, independently of the number balance.
- The diplomacy level is always slightly decreasing with time. It will decrease faster and faster as long as you don't hit an opposite team unit. It decreases also faster for the team with the highest diplomacy level.
- The amount of firing will slowly increase with time. The bonuses will also get more rare. Eventually, the game will be harder and harder.
- The achievements and high scores are separated for each difficulty setting.
- There are 2 difficulty settings with more than 2 teams. It is basically "normal" with extra teams. In this case, the diplomacy level increase is divided into the non-hit teams.
- For color-blind people, you can change the color scheme in the options to "white, blue and red". As far as I know, they are distinguishable for everyone. You can also edit the save.cfg file with the line "col [[255,255,255],[255,0,0],[0,255,0],[0,0,255],[255,255,0],[0,255,255],[255,0,255]]" to choose specific colours.
Strategy:
- One strategy is to maintain a low level of unit all the time.
- One strategy is to target one team, getting a large number imbalance of your ally team. But when the ally becomes too big (increasing the risk you get hit), you can suddenly attack it and reverse the situation (the large imbalance will make you switch side quickly)
The game is developed here: https://gitlab.com/cauch/ObPortum
Entrant: cauch
The evolution of evil
- the_evolution_of_evil.zip — Zipped form (I forgot!!)
- evolution_of_evil.py — python game
Space-bar to restart if you die or win. Only the arrow keys can help you.
q to quit... but you won't be needing that, HAHAHAHA!!
Entrant: Unicorn Markets
Bokeh
- bokeh_1.zip — Only added the README file which was missing, and licence headers to the sources.
- bokeh.zip — Final submission.
python27, numpy, pysdl2 and some of the libraries it uses (SDL2, SDL2_ttf, SDL2_mixer, SDL2_image)
I tested it on Linux, Windows and Mac, so as long as you have the libraries installed, there should be no problem.
The game:
You're the Good Green Blob who tries to survive being chased by the Evil Red Pathogen (ERP). You can move jumping from cell to cell through the channels that connect them by clicking on the cell you want to jump to. Whenever you move, a channel is consumed (unless you're using a power-up). You gain points by removing channels.
You can use a power-up whenever you have consumed two or three channels in a row. The difference between the two is, the first powerup leaves the number of channels intact, and the second powerup creates a new channel, actually subtracting points from you. (Another thing that subtracts points is every time the ERP consumes a channel). Regardless, you'll find sometimes it will be preferable to choose that second power-up, even if it will end up taking away points from you. The longer the channel, the more points get added or subtracted. Oh, I almost forgot! you can activate either power-up by hitting enter or space.
The ERP only has one power-up: it can jump to any cell once it has consumed three channels.
The easiest way to die is by being on the same cell as the ERP, either because it landed on your cell or you landed on its. Another way to die is by running out of points.
You finish a level successfully whenever you and the ERP can't move anymore. Notice, though, that the level doesn't end until it ends... if you can move, you must move.
Running the game:
From the same directory where run_game.py is, you can run the game either by typing:
python run_game.py
or
python bokeh
The license:
The game is being released under the MIT license.
Entrant: Gato
Population
- Population.tar.gz — The finished game.
Entrant: LeopardShark
Werewolves
- werewolf_exe_final.zip — windows executable
- PW23_Werewolf_final.zip — source code
Very simple survival game where you have to fight against werewolves choosing between heal/transform them back to humans, or kill humans directly to reduce number of future werewolves.
Move with arrow keys, shot humans with Z, heal werewolves with X.
Team: ilseppia, circusblatta
A Knight of Curses
- AKnightOfCurses-Win.zip — A Knight of Curses. Windows version (py2exe'd).
- AKnightOfCurses.zip — A Knight of Curses. Final version.
Entrant: Tee
Solar Flair
- solar-flair-final.zip — This is the final version of Solar Flair
Solar Flair is a quirky, fun, interesting, and surprisingly difficult take on a platformer. Rather than horizontal motion, everything is vertical! You'll have to focus on two different evils: managing characters and the delicate balance between jumping and switching. Try to run away from the sunrise below.
Prerequisites
Python 2.7.x and Pygame 1.9.1 are required. Everything else should work as is. We are in the process of preparing redistributable packages for Windows users.
Running the Game
Headphones Recommended!
Install prerequisites above, then open a command prompt or terminal in the game directory, and type python main.py to execute it. That's it!
Settings can be changed in the config.py file. One of the challenges I wanted to address was display-resolution-independent rendering, so the default screen setting is RESIZABLE. Go ahead and resize the window however you like, the game will capture the events and resize it! However, if you would like to play full-screen, open up lib/config.py and change screen_setting to FULLSCREEN. Depending on your machine, you may be able to also use FULLSCREEN | HWSURFACE | DOUBLEBUF - use some combination of these flags and experiment for best performance!
If the game is running slowly on your machine, you can change the resolution to 1600 x 900 by changing width and height - please do not modify GAME_WIDTH or GAME_HEIGHT as these are used to calculate the game board and are not used for the display resolution.
You are the orange star. The enemy? The vast, unending space and sunrise below. Don't fall into the pit! Switch between the parallel universes to make your way as high as possible before burning out like the beautiful.
Up arrow - Switch universe
Space - Jump
Left + Right Arrows to move
If you do not like this key configuration, feel free to change the keys in lib/config.py.
Solar | Flair was coded by Luke Paireepinart. I am a professional C# developer who started life out as a Python developer many moons ago. Since Python was my O.G. language, and my wife Courtney has recently gotten into art, we decided Pyweek would be a good candidate for a quick game to test our mettle before we get into making a more epic game.
Features that we'd like to have implemented but didn't have time:
- Multiple background tracks with random selection
- High Score splash screen that lets you enter your initials
- Settings page
- Controller support
What's next for Solar | Flair? We want to release it on mobile devices and cross-platform, and the Python tools for that are just not great right now. We may try to run it under Kivy, but since we want to continually develop the game, we may decide to migrate to Unity as I am more familiar with the C# ecosystem.
A Death at Sea
- a-death-at-sea-1.0.1.zip — A Death At Sea 1.0.1
When a passenger is found dead, the ship's bellhop is tasked to investigate.
Controls:
- Move - Left/right cursors
- Interact - Up cursor
- Conversations - Cursors + Enter
- Press escape to access the save/load menu.
Running: Use run_game.py, or python3 -m pgzero murder.py
Release Changelog:
- 1.0.1 - fix problems with calling bundled pgzero from run_game.py
- 1.0.0 - initial (midnight) release
Entrant: mauve
Killer Execution
- game.zip — Final game
Entrant: knowledge
"It'll Cost an Arm or a Leg"
- ICYAAOAL.zip — Better Readme, better launching stuff, finalisty of the finals
EXCEPT
The game currently isn't about any of that. Currently, the game is about flying everywhere except into boxes. And nice tilemap scrolling. But if we finish, it will have the above stuff too.
Clarissa does design and game code, Peter does engine code and music
Entrant: pmdevita