Skip to content

Commit

Permalink
(#29) Docs: update the game description, split the contributor guide
Browse files Browse the repository at this point in the history
  • Loading branch information
ForNeVeR committed Jan 6, 2024
1 parent d63258c commit 37c56da
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 40 deletions.
44 changes: 44 additions & 0 deletions CONTRIBUTING.md
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`.
62 changes: 22 additions & 40 deletions README.md
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

0 comments on commit 37c56da

Please sign in to comment.