mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-09 14:07:57 -06:00
66 lines
1.8 KiB
Markdown
66 lines
1.8 KiB
Markdown
# Pac-Man
|
|
|
|
If the title doesn't clue you in, I'm remaking Pac-Man with SDL and Rust.
|
|
|
|
The project is _extremely_ early in development, but check back in a week, and maybe I'll have something cool to look
|
|
at.
|
|
|
|
## Feature Targets
|
|
|
|
- Near-perfect replication of logic, scoring, graphics, sound, and behaviors.
|
|
- Written in Rust, buildable on Windows, Linux, Mac and WebAssembly.
|
|
- Online demo, playable in a browser.
|
|
- Automatic build system, with releases for Windows, Linux, and Mac & Web-Assembly.
|
|
- Debug tooling
|
|
- Game state visualization
|
|
- Game speed controls + pausing
|
|
- Log tracing
|
|
- Performance details
|
|
|
|
## Experimental Ideas
|
|
|
|
- Perfected Ghost Algorithms
|
|
- More than 4 ghosts
|
|
- Custom Level Generation
|
|
- Multi-map tunnelling
|
|
|
|
## Installation
|
|
|
|
Besides SDL2, the following extensions are required: Image, Mixer, and TTF.
|
|
|
|
### Ubuntu
|
|
|
|
On Ubuntu, you can install the required packages with the following command:
|
|
|
|
```
|
|
sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev
|
|
```
|
|
|
|
### Windows
|
|
|
|
On Windows, installation requires either building from source (not covered), or downloading the pre-built binaries.
|
|
|
|
The latest releases can be found here:
|
|
|
|
- [SDL2](https://github.com/libsdl-org/SDL/releases/latest/)
|
|
- [SDL2_image](https://github.com/libsdl-org/SDL_image/releases/latest/)
|
|
- [SDL2_mixer](https://github.com/libsdl-org/SDL_mixer/releases/latest/)
|
|
- [SDL2_ttf](https://github.com/libsdl-org/SDL_ttf/releases/latest/)
|
|
|
|
Download each for your architecture, and locate the appropriately named DLL within. Move said DLL to root of this project.
|
|
|
|
## Building
|
|
|
|
To build the project, run the following command:
|
|
|
|
```
|
|
cargo build
|
|
```
|
|
|
|
During development, you can easily run the project with:
|
|
|
|
```
|
|
cargo run
|
|
cargo run -q # Quiet mode, no logging
|
|
cargo run --release # Release mode, optimized
|
|
``` |