Pacewar
Saved games stay in this browser only.
About the game
A green fleet and a red fleet share a huge patch of space. You fly one ship of your team; the rest of the fleet is flown by the computer, and so is the enemy's. Shoot down every enemy ship before yours are gone and you win the round, and the meter at the top of the screen slides a notch toward your side.
The meter is also the difficulty. The closer it gets to your end, the more ships the other side receives in the next round, so a winning streak makes every round harder to win, and a losing one gives you more ships and a chance to come back. A match ends when one side fills its half of the meter, which is set at 1 to 8 points in the start menu.
If the ship you are flying blows up, you are handed another one from your team at once, as long as someone is still alive. The ships turn and thrust like in the old arcade classics, with a bit of inertia, and the bullets are fast but short-lived, so a duel is all about angle and timing.
Playing it here
The first time you click Play the page downloads the Python runtime and the pygame library (about 23 MB), which takes a few seconds; after that a "click to start" message appears, and one more click opens the menu. The download is kept by your browser, so every other pygame game on the site opens faster. Nothing is loaded from other sites. Your key bindings are saved in this browser only.
Choose "1-player" to fight the computer or "2-player" for a split screen on one keyboard. The Controls menu lets you change the keys of each player (a joystick can be set up there too, if your browser sees one).
Controls
| Key | Player 1 | Player 2 |
|---|---|---|
| Thrust | Up | W |
| Turn left / right | Left / Right | A / D |
| Shoot | Space | Left Shift |
| Key | Action |
|---|---|
| Enter | pause and resume |
| F7 | show or hide the colour-blind marks on the meter |
| Esc | back in the menus, leave the match during play |
Tips
Do not just chase. Bullets live for half a second, so firing from far away wastes them. Line up the nose with the target and get close.
Watch the nebulae and the edge. The arena is large and the camera follows your ship, so a quick look at where the rest of your fleet is flying tells you where the fight is.
Use the swap. When your ship dies you take over another one, so a bad position is not the end of the round.
Frequently asked questions
Does it save my progress? There is nothing to save but your key bindings, which stay in this browser.
Does it work on a phone? It needs a keyboard, so it is meant for a computer.
Can two people play? Yes: choose "2-player" in the menu and share the keyboard.
Is it free? Yes. The game is free software: the code is under the GNU GPL, and the art and music under Creative Commons licences.
Credits and licence
Pacewar was made by onpon4 for PyWeek 19. The code is released under the GNU General Public License, version 3 or later. The spaceships and nebulae are by Skorpio (CC BY-SA 3.0), the explosion by Osmic and the targeting marker by Jordan Trudgett (CC BY 3.0), the lasers by Rawdanitsu, the bitmap font by gnsh, the HUD by Buch and the logo and some sounds by the author (CC0), the explosion sound by dklon and the menu click by NenadSimic (CC BY 3.0), and the music "RailJet" by Deceased Superior Technician (CC BY 3.0). The game runs on the Pygame SGE (LGPL-3.0-or-later). The version served here has some changes so it can run in a browser (the main loop and the menus can no longer wait inside loops, the Quit entry is gone and the key bindings are saved in the browser); the changes, the full source and every licence text are linked from the Licenses page. The game also runs on pygame-ce (LGPL-2.1) and CPython, whose licences and source are linked there too.