-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
(#29) Docs: update the game description, split the contributor guide
- Loading branch information
Showing
2 changed files
with
66 additions
and
40 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
Contributor Guide | ||
================= | ||
|
||
## Development requirements | ||
|
||
- JDK 16 | ||
|
||
## Desktop client | ||
|
||
To run the standalone game client, use the following shell command: | ||
|
||
```console | ||
$ ./gradlew client:run | ||
``` | ||
|
||
## Web client | ||
|
||
To run the web version of the game, use the following shell command: | ||
|
||
```console | ||
$ ./gradlew web:frontend:build | ||
``` | ||
|
||
Then open a file `web/frontend/build/www/index.html` using a web browser. | ||
|
||
## Game server | ||
|
||
To run the game server, use the following shell command: | ||
|
||
```console | ||
$ ./gradlew web:run | ||
``` | ||
|
||
## Testing | ||
|
||
To execute the test suite, run the following command in your shell: | ||
|
||
```console | ||
$ ./gradlew test | ||
``` | ||
|
||
### Logging | ||
For debugging purposes you might want to enable trace logging. To do that, open file `src/log4j.properties` and replace | ||
`DEBUG` with `TRACE`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,55 +1,37 @@ | ||
Hyperspace [![Status Umbra][status-umbra]][andivionian-status-classifier] | ||
========== | ||
Hyperspace is a network multiplayer game designed for two players, a re-implementation of [Slingshot][slingshot]. It consists of a dedicated server application and a client application. | ||
|
||
Hyperspace is a [Slingshot][slingshot] clone written in Clojure and Kotlin. | ||
|
||
Game Description | ||
---------------- | ||
![Gameplay Footage][gameplay] | ||
|
||
## Development requirements | ||
|
||
- JDK 16 | ||
|
||
## Desktop client | ||
|
||
To run the standalone game client, use the following shell command: | ||
|
||
```console | ||
$ ./gradlew client:run | ||
``` | ||
|
||
## Web client | ||
|
||
To run the web version of the game, use the following shell command: | ||
Hyperspace is a turn-based physic simulator game. There are two players and a number of planets on the game field. Each player shoot a missile during each turn (but he could choose to skip the turn; that could also happen due to turn timeout); missiles behave as a bodies of mass in a static environment with Newtonian physics. Only missiles and planets have mass; missiles, planets and players also have a collision radius that should be taken into account by the simulation. | ||
|
||
```console | ||
$ ./gradlew web:frontend:build | ||
``` | ||
If the player is hit by enemy's missile, he's dead. If the missile hits the planet surface, then the missile explodes. If the missile hits the game world boundaries, it's considered "lost". | ||
|
||
Then open a file `web/frontend/build/www/index.html` using a web browser. | ||
Player controls the shot power (in some diapason allowed by server) and direction. | ||
|
||
## Game server | ||
The player turns are performed simultaneously. If both of the players are hit by enemy missiles at the same turn, the game is a tie. | ||
|
||
To run the game server, use the following shell command: | ||
Current Project Status | ||
---------------------- | ||
- [ ] Server implementation (ongoing) | ||
- [ ] Client re-implementation | ||
- [x] Obsolete local client (to be removed after the re-implementation) | ||
|
||
```console | ||
$ ./gradlew web:run | ||
``` | ||
Usage | ||
----- | ||
For now, only run from sources is supported. See the [Contributor Guide][docs.contributing] for the information on that. | ||
|
||
## Testing | ||
|
||
To execute the test suite, run the following command in your shell: | ||
|
||
```console | ||
$ ./gradlew test | ||
``` | ||
|
||
### Logging | ||
For debugging purposes you might want to enable trace logging. To do that, open file `src/log4j.properties` and replace | ||
`DEBUG` with `TRACE`. | ||
Documentation | ||
------------- | ||
- [Contributor Guide][docs.contributing] | ||
- [License (MIT]][docs.license] | ||
|
||
[andivionian-status-classifier]: https://github.com/ForNeVeR/andivionian-status-classifier#status-umbra- | ||
[docs.contributing]: CONTRIBUTING.md | ||
[docs.license]: LICENSE.md | ||
[gameplay]: docs/footage.gif | ||
[slingshot]: https://web.archive.org/web/20120226132228/http://slingshot.wikispot.org/ | ||
|
||
[status-umbra]: https://img.shields.io/badge/status-umbra-red.svg | ||
|
||
[gameplay]: docs/footage.gif |