Possibly the most challenging puzzle game ever created for the Atari 2600
AStar is a puzzle game for the Atari 2600 featuring colorful graphics and a unique play mechanic. You control a character ("Bob") who must navigate a series of levels to collect items. Bob has no relation to any character in any other game.
- The goal: Collect all the items on each level. Cherries, pretzels, ice cream cones, roses, and more! To win the game you must complete each level in the minimum number of moves.
- The catch: You can only move in straight lines and you can't stop unless you run into a wall. Though to help, you can also control a block ("Alan") to influence your movement.
The game will count your moves on each level and change the color of the counter if you go too high. But feel free to keep playing or skip to a different level. Have fun!
The name AStar comes from an old calculator game DStar, which inspired the puzzle mechanic. Coincidentally, the game is also a good use case for the A* pathfinding algorithm.
AStar is free software as described by the GNU General Public License (v3). See LICENSE.md for details. The license does not apply to content exclusive to the cartridge version of the game, described below.
Want a copy on a real physical cartridge? Get it from Atari Age!
The cartridge includes 24 unique levels that are not present in the open source version of the game. The 8 levels here on GitHub were created specifically for the open source release and likewise do not appear in the cartridge version.
Input | Action |
---|---|
Joystick | Move the player or block |
Fire Button | Switch control between the player and block |
Left Toggle Switch | Undo the last move |
Right Toggle Switch | Turn the fade effect between levels on or off |
Reset | Restart the current level |
Select | Skip to the next level |
Reset + Select | Return to the title screen |
The game source has some limited support for the AtariVox. There's no speech, but the game can use the module's memory card to remember which levels have been completed in the minimum number of moves. Each completed level is shown with a dot at the bottom of the screen.
The memory card feature is currently disabled to avoid conflicts with the cartridge version of the game. (If enabled, it would erase any progress for levels 9-24 since they don't exist in the open source version.)
The project includes a tool to find an optimal solution for each level using the A* algorithm. Levels are written as plain text maps and the tool generates assembly source with solutions as comments. See solver/README.md for details.
Use CMake to build the game.
The map solver requires a C++17 compiler and the assembly source for the game was written for DASM. If DASM isn't installed in a standard path, use DASM_ROOT to tell CMake which directory to find it in.
mkdir build
cd build
cmake -DDASM_ROOT=/some/directory ..
make -j $(nproc)