mirror of
https://github.com/Xevion/Pac-Man.git
synced 2025-12-06 23:15:42 -06:00
docs: update README with badges, remove unnecessary install details, change workflow names
This commit is contained in:
2
.github/workflows/build.yaml
vendored
2
.github/workflows/build.yaml
vendored
@@ -1,4 +1,4 @@
|
|||||||
name: Build
|
name: Builds
|
||||||
|
|
||||||
on: ["push", "pull_request"]
|
on: ["push", "pull_request"]
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/test.yaml
vendored
2
.github/workflows/test.yaml
vendored
@@ -1,4 +1,4 @@
|
|||||||
name: Test
|
name: Tests
|
||||||
|
|
||||||
on: ["push", "pull_request"]
|
on: ["push", "pull_request"]
|
||||||
|
|
||||||
|
|||||||
95
README.md
95
README.md
@@ -1,9 +1,33 @@
|
|||||||
# Pac-Man
|
# Pac-Man
|
||||||
|
|
||||||
If the title doesn't clue you in, I'm remaking Pac-Man with SDL and Rust.
|
[![Tests Status][badge-test]][test] [![Build Status][badge-build]][build] [![Code Coverage][badge-coverage]][coverage] [![Online Demo][badge-online-demo]][demo] [![Last Commit][badge-last-commit]][commits]
|
||||||
|
|
||||||
The project is _extremely_ early in development, but check back in a week, and maybe I'll have something cool to look
|
[badge-test]: https://github.com/Xevion/Pac-Man/actions/workflows/test.yaml/badge.svg
|
||||||
at.
|
[badge-build]: https://github.com/Xevion/Pac-Man/actions/workflows/build.yaml/badge.svg
|
||||||
|
[badge-coverage]: https://coveralls.io/repos/github/Xevion/Pac-Man/badge.svg?branch=master
|
||||||
|
[badge-demo]: https://img.shields.io/github/deployments/Xevion/Pac-Man/github-pages?label=GitHub%20Pages
|
||||||
|
[badge-online-demo]: https://img.shields.io/badge/GitHub%20Pages-Demo-brightgreen
|
||||||
|
[badge-last-commit]: https://img.shields.io/github/last-commit/Xevion/Pac-Man
|
||||||
|
[build]: https://github.com/Xevion/Pac-Man/actions/workflows/build.yaml
|
||||||
|
[test]: https://github.com/Xevion/Pac-Man/actions/workflows/test.yaml
|
||||||
|
[coverage]: https://coveralls.io/github/Xevion/Pac-Man?branch=master
|
||||||
|
[demo]: https://xevion.github.io/Pac-Man/
|
||||||
|
[commits]: https://github.com/Xevion/Pac-Man/commits/master
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
A faithful recreation of the classic Pac-Man arcade game written in Rust. This project aims to replicate the original game's mechanics, graphics, sound, and behavior as accurately as possible while providing modern development features like cross-platform compatibility and WebAssembly support.
|
||||||
|
|
||||||
|
The game includes all the original features you'd expect from Pac-Man:
|
||||||
|
|
||||||
|
- [x] Classic maze navigation and dot collection
|
||||||
|
- [ ] Four ghosts with their unique AI behaviors (Blinky, Pinky, Inky, and Clyde)
|
||||||
|
- [ ] Power pellets that allow Pac-Man to eat ghosts
|
||||||
|
- [ ] Fruit bonuses that appear periodically
|
||||||
|
- [ ] Progressive difficulty with faster ghosts and shorter power pellet duration
|
||||||
|
- [x] Authentic sound effects and sprites
|
||||||
|
|
||||||
|
Built with SDL2 for cross-platform graphics and audio, this implementation can run on Windows, Linux, macOS, and in web browsers via WebAssembly.
|
||||||
|
|
||||||
## Feature Targets
|
## Feature Targets
|
||||||
|
|
||||||
@@ -12,68 +36,17 @@ at.
|
|||||||
- Online demo, playable in a browser.
|
- Online demo, playable in a browser.
|
||||||
- Automatic build system, with releases for Windows, Linux, and Mac & Web-Assembly.
|
- Automatic build system, with releases for Windows, Linux, and Mac & Web-Assembly.
|
||||||
- Debug tooling
|
- Debug tooling
|
||||||
- Game state visualization
|
- Game state visualization
|
||||||
- Game speed controls + pausing
|
- Game speed controls + pausing
|
||||||
- Log tracing
|
- Log tracing
|
||||||
- Performance details
|
- Performance details
|
||||||
|
|
||||||
## Experimental Ideas
|
## Experimental Ideas
|
||||||
|
|
||||||
- Perfected Ghost Algorithms
|
- Perfected Ghost Algorithms
|
||||||
- More than 4 ghosts
|
- More than 4 ghosts
|
||||||
- Custom Level Generation
|
- Custom Level Generation
|
||||||
- Multi-map tunnelling
|
- Multi-map tunnelling
|
||||||
- Online Scoreboard
|
- Online Scoreboard
|
||||||
- WebAssembly build contains a special API key for communicating with server.
|
- WebAssembly build contains a special API key for communicating with server.
|
||||||
- To prevent abuse, the server will only accept scores from the WebAssembly build.
|
- To prevent abuse, the server will only accept scores from the WebAssembly build.
|
||||||
|
|
||||||
## 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.
|
|
||||||
|
|
||||||
In total, you should have the following DLLs in the root of the project:
|
|
||||||
|
|
||||||
- SDL2.dll
|
|
||||||
- SDL2_mixer.dll
|
|
||||||
- SDL2_ttf.dll
|
|
||||||
- SDL2_image.dll
|
|
||||||
- libpngX-X.dll
|
|
||||||
- Not sure on what specific version is to be used, or if naming matters. `libpng16-16.dll` is what I had used.
|
|
||||||
- zlib1.dll
|
|
||||||
|
|
||||||
## 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
|
|
||||||
```
|
|
||||||
|
|||||||
Reference in New Issue
Block a user