From df8846a5bde8317bb09f3264c5edd17a00c44ce9 Mon Sep 17 00:00:00 2001 From: MHLoppy Date: Thu, 3 Oct 2024 23:38:22 +1000 Subject: [PATCH 1/5] Update documentation --- README.md | 126 ++++++++---------- documentation/{README.md => README-old-01.md} | 0 documentation/README-old-02.md | 74 ++++++++++ documentation/screenshot-01.png | Bin 0 -> 20969 bytes documentation/screenshot-02.png | Bin 0 -> 27183 bytes 5 files changed, 129 insertions(+), 71 deletions(-) rename documentation/{README.md => README-old-01.md} (100%) create mode 100644 documentation/README-old-02.md create mode 100644 documentation/screenshot-01.png create mode 100644 documentation/screenshot-02.png diff --git a/README.md b/README.md index f0b988d..0a9527e 100644 --- a/README.md +++ b/README.md @@ -1,74 +1,58 @@ # Below The Surface +## Technical overview -## How to Install - -- Install [Splashkit](https://www.splashkit.io) to your computer -- Enter command `git clone https://github.com/thoth-tech/arcade-games` to your terminal -- Enter command `cd arcade-games/games/BelowTheSurface` -- Enter command `skm g++ program.cpp -o game` -- Enter command `./game` to play - - - -> controls for arcade machine -### **Player 1** - -| Input | Description | -| --- | ----------- | -| Up Key or Left Alt| Jump | -| Left Key | Move Left | -| Right Key | Move Right | -| Down Key | Crouch | -| Left Crtl Key | Attack/Interact | - -### **Player 2** - -| Input | Description | -| --- | ----------- | -| R Key or S Key| Jump | -| D Key | Move Left | -| G Key | Move Right | -| F Key | Crouch | -| A Key | Attack/Interact | - -### **Other Buttons** - -| Input | Description | -| --- | ----------- | -| Enter / P Key | Pause | -| Enter / Left Ctrl Key | Selection | - - -#### Edited: - -- Enter command `skm g++ -O3 program.cpp -o game` for optimisations -- Reduced resolution on game and assets. -- Changed button placement and asset placement to better fit new resolution \ No newline at end of file +- **Language:** C++ +- **Current scope:** Large +- **Code quality:** Poor +- **Gameplay implementation:** Complete + +## Gameplay overview + +A puzzle-platformer supporting 1-2 players. Players have to redirect the flow of water through pipes while avoiding or eliminating enemies in order to reach the portal at the end of each level. + +### Player 1 Controls + +| Action | Key | +|---------------|----------------------| +| Move Left | Left arrow | +| Move Right | Right arrow | +| Jump / Climb | Up arrow / Right ALT | +| Crouch | Down arrow | +| Use/Attack | Right CTRL | +| Dance | Z | + +### Player 2 Controls + +| Action | Key | +|---------------|----------------------| +| Move Left | D | +| Move Right | G | +| Jump / Climb | R / Left ALT | +| Crouch | F | +| Use/Attack | Left CTRL | + +## Other + +- This game has an associated GUI level editor: [Splashkit-LevelEditor](https://github.com/thoth-tech/Splashkit-LevelEditor). +- Some miscellaneous documentation from the original authors is in `/docs/`, alongside additional documentation related to level editing. +- Relevant resources to use the 3rd-party Tiled level editor are in `/levels/tiled`. +- The game was originally designed to run at a resolution of 1600x896, but this was lowered to 800x446 for performance reasons on the arcade machines. The change has several implications for gameplay, level design, and screen layout. + +## Screenshots + +![](/documentation/screenshot-01.png) + +![](/documentation/screenshot-02.png) + +## Credits + +Originally created by 2022-T2 team: + +- Morgaine Barter +- Daniel Agbay +- Lily Lan +- Robert Osborne +- Jiahao Zheng +- Roy Chen +- Lachlan Morgan diff --git a/documentation/README.md b/documentation/README-old-01.md similarity index 100% rename from documentation/README.md rename to documentation/README-old-01.md diff --git a/documentation/README-old-02.md b/documentation/README-old-02.md new file mode 100644 index 0000000..f0b988d --- /dev/null +++ b/documentation/README-old-02.md @@ -0,0 +1,74 @@ +# Below The Surface + + +## How to Install + +- Install [Splashkit](https://www.splashkit.io) to your computer +- Enter command `git clone https://github.com/thoth-tech/arcade-games` to your terminal +- Enter command `cd arcade-games/games/BelowTheSurface` +- Enter command `skm g++ program.cpp -o game` +- Enter command `./game` to play + + + +> controls for arcade machine +### **Player 1** + +| Input | Description | +| --- | ----------- | +| Up Key or Left Alt| Jump | +| Left Key | Move Left | +| Right Key | Move Right | +| Down Key | Crouch | +| Left Crtl Key | Attack/Interact | + +### **Player 2** + +| Input | Description | +| --- | ----------- | +| R Key or S Key| Jump | +| D Key | Move Left | +| G Key | Move Right | +| F Key | Crouch | +| A Key | Attack/Interact | + +### **Other Buttons** + +| Input | Description | +| --- | ----------- | +| Enter / P Key | Pause | +| Enter / Left Ctrl Key | Selection | + + +#### Edited: + +- Enter command `skm g++ -O3 program.cpp -o game` for optimisations +- Reduced resolution on game and assets. +- Changed button placement and asset placement to better fit new resolution \ No newline at end of file diff --git a/documentation/screenshot-01.png b/documentation/screenshot-01.png new file mode 100644 index 0000000000000000000000000000000000000000..f9ddf1c5a3391bc60a3f2afaf39a2f7d2167d867 GIT binary patch literal 20969 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 Date: Thu, 3 Oct 2024 23:41:23 +1000 Subject: [PATCH 2/5] Clarified dance control in readme --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a9527e..c01795e 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ A puzzle-platformer supporting 1-2 players. Players have to redirect the flow of | Jump / Climb | Up arrow / Right ALT | | Crouch | Down arrow | | Use/Attack | Right CTRL | -| Dance | Z | +| Dance (both) | Z | ### Player 2 Controls @@ -31,6 +31,7 @@ A puzzle-platformer supporting 1-2 players. Players have to redirect the flow of | Jump / Climb | R / Left ALT | | Crouch | F | | Use/Attack | Left CTRL | +| Dance (both) | Z | ## Other From 3a24ed9d6ff9aea6ccc94d7863e079a2e50f49bd Mon Sep 17 00:00:00 2001 From: MHLoppy Date: Thu, 3 Oct 2024 23:42:19 +1000 Subject: [PATCH 3/5] Update readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c01795e..fed84ab 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ A puzzle-platformer supporting 1-2 players. Players have to redirect the flow of - This game has an associated GUI level editor: [Splashkit-LevelEditor](https://github.com/thoth-tech/Splashkit-LevelEditor). - Some miscellaneous documentation from the original authors is in `/docs/`, alongside additional documentation related to level editing. -- Relevant resources to use the 3rd-party Tiled level editor are in `/levels/tiled`. +- Relevant resources to use the 3rd-party Tiled level editor are in `/levels/tiled/`. - The game was originally designed to run at a resolution of 1600x896, but this was lowered to 800x446 for performance reasons on the arcade machines. The change has several implications for gameplay, level design, and screen layout. ## Screenshots From d3d05968672047550a4b8805b6592aed00048ca0 Mon Sep 17 00:00:00 2001 From: MHLoppy Date: Fri, 4 Oct 2024 06:30:18 +1000 Subject: [PATCH 4/5] Add Morgaine as point of contact in readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index fed84ab..c313f3f 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,7 @@ A puzzle-platformer supporting 1-2 players. Players have to redirect the flow of - Some miscellaneous documentation from the original authors is in `/docs/`, alongside additional documentation related to level editing. - Relevant resources to use the 3rd-party Tiled level editor are in `/levels/tiled/`. - The game was originally designed to run at a resolution of 1600x896, but this was lowered to 800x446 for performance reasons on the arcade machines. The change has several implications for gameplay, level design, and screen layout. +- [Morgaine Barter](https://github.com/MorgaineBarter) has offered to be a point of contact for future students who have need to get in touch from someone on the original team. She can be contacted via e.g., MS Teams via her staff account (not her student account). ## Screenshots From fb36182b710fc8ebb22728b1c506838f25f15f9e Mon Sep 17 00:00:00 2001 From: MHLoppy Date: Tue, 8 Oct 2024 21:53:34 +1100 Subject: [PATCH 5/5] Add build/run instructions --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index c313f3f..34ec3b6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ # Below The Surface +1. Requires a [SplashKit installation](https://splashkit.io/installation/). +2. Build using `skm clang++ *.cpp -o below-the-surface` while in the project folder. +3. Run using `./below-the-surface` while in the project folder. + +_See also: usage documentation for [SplashKit](https://splashkit.io/guides/using-splashkit/0-overview/) and [skm](https://github.com/splashkit/skm/blob/master/README.MD)._ + ## Technical overview - **Language:** C++