Readme update

This commit is contained in:
KGrzeg 2021-10-18 03:09:28 +02:00
parent f5380927fd
commit 89e2f52063
9 changed files with 60 additions and 148 deletions

View file

@ -2,9 +2,45 @@
Tested on node `v14.17.3` Tested on node `v14.17.3`
You can play the game [here](#) You can play the game [here](https://mystifying-hypatia-4b1cef.netlify.app/) (unfortunelly I can not setup server, so this instance do not provides ranking 😥).
Please be patient. The game **will** load, but slower on the crappy, free hosting, than on localhost.
In the `game` directory there game client. The game was created for the first edition of [Hackerspace Trójmiasto's Community](https://github.com/hs3city/hs3-jam) Jam.
In the `server` directory there are authentiaction and ranking server.
To start the app locally, you need... *TODO* :) ![Screenshot](ss.jpg)
## How to start a game
You need the [NodeJS](https://nodejs.org/en/) installed.
The game's server do not serve game client's files. They are separately apps.
The server is responsible for authentication and storing records.
Data is stored as plain JSON files in `server/storage` directory.
You do not have to setup any external database :)
The game *should* work without server, with some limitations.
Game works fine on desktop
Steering: `WSAD + Mouse`
## Setup and run server
```sh
🐧 cd server
🐧 npm install # install dependencies
🐧 cp .env.example .env
🐧 # edit .env file - UPDATE THE SECRET!
🐧 npm start # the server listening on port 3000.
```
## Setup and run client
```sh
🐧 cd .. # only if your cwd is server directory
🐧 cd game
🐧 npm install # install dependencies
🐧 # edit first line of src/api.ts to match your server
🐧 npm start # to run in Dev mode (hot reloading and recompilling)
🐧 npm run build
🐧 # your app is in dist directory, you need to serve it via www server
```
## Enjoy!

5
game/README.md Normal file
View file

@ -0,0 +1,5 @@
# Start Game Client
For more info look at main README.md
I used [phaser3-typescript-parcel-template](https://github.com/ourcade/phaser3-typescript-parcel-template) as startup project (but typescript config was messed up)

View file

@ -4,9 +4,7 @@
"description": "Simple Phaser 3 game for the Hackerspace Trójmiasto's little game jam", "description": "Simple Phaser 3 game for the Hackerspace Trójmiasto's little game jam",
"scripts": { "scripts": {
"start": "parcel src/index.html -p 8000", "start": "parcel src/index.html -p 8000",
"build": "parcel build src/index.html --out-dir dist --no-source-maps", "build": "parcel build src/index.html --out-dir dist --no-source-maps"
"test": "echo \"Error: no test specified\" && exit 1",
"lint": "eslint ./src --ext .js,.jsx,.ts,.tsx"
}, },
"author": "Grzegorz Kupczyk", "author": "Grzegorz Kupczyk",
"license": "MIT", "license": "MIT",

View file

@ -1,138 +0,0 @@
This is a fork of [phaser3-typescript-parcel-template](https://github.com/ourcade/phaser3-typescript-parcel-template)
![phaser3-parceljs-template](https://user-images.githubusercontent.com/2236153/71606463-37a0da80-2b2e-11ea-9b5f-5d26ccc84f91.png)
# Phaser 3 + TypeScript + Parcel Template
> For people who want to spend time making Phaser 3 games in TypeScript instead of configuring build tools.
![License](https://img.shields.io/badge/license-MIT-green)
This is a TypeScript specific fork of [phaser3-parcel-template](https://github.com/ourcade/phaser3-parcel-template).
## Prerequisites
You'll need [Node.js](https://nodejs.org/en/), [npm](https://www.npmjs.com/), and [Parcel](https://parceljs.org/) installed.
It is highly recommended to use [Node Version Manager](https://github.com/nvm-sh/nvm) (nvm) to install Node.js and npm.
For Windows users there is [Node Version Manager for Windows](https://github.com/coreybutler/nvm-windows).
Install Node.js and `npm` with `nvm`:
```bash
nvm install node
nvm use node
```
Replace 'node' with 'latest' for `nvm-windows`.
Then install Parcel:
```bash
npm install -g parcel-bundler
```
## Getting Started
Clone this repository to your local machine:
```bash
git clone https://github.com/ourcade/phaser3-typescript-parcel-template.git
```
This will create a folder named `phaser3-typescript-parcel-template`. You can specify a different folder name like this:
```bash
git clone https://github.com/ourcade/phaser3-typescript-parcel-template.git my-folder-name
```
Go into your new project folder and install dependencies:
```bash
cd phaser3-typescript-parcel-template # or 'my-folder-name'
npm install
```
Start development server:
```
npm run start
```
To create a production build:
```
npm run build
```
Production files will be placed in the `dist` folder. Then upload those files to a web server. 🎉
## Project Structure
```
.
├── dist
├── node_modules
├── public
├── src
│ ├── scenes
│ │ ├── HelloWorldScene.ts
│ ├── index.html
│ ├── main.ts
├── package.json
```
The contents of this template is the basic [Phaser 3 getting started example](http://phaser.io/tutorials/getting-started-phaser3/part5).
This template assumes you will want to organize your code into multiple files and use TypeScript.
TypeScript files are intended for the `src` folder. `main.ts` is the entry point referenced by `index.html`.
Other than that there is no opinion on how you should structure your project. There is a `scenes` folder in `src` where the `HelloWorldScene.ts` lives but you can do whatever you want.
## Static Assets
Any static assets like images or audio files should be placed in the `public` folder. It'll then be served at http://localhost:8000/images/my-image.png
Example `public` structure:
```
public
├── images
│ ├── my-image.png
├── music
│ ├── ...
├── sfx
│ ├── ...
```
They can then be loaded by Phaser with `this.image.load('my-image', 'images/my-image.png')`.
## TypeScript ESLint
This template uses a basic `typescript-eslint` set up for code linting.
It does not aim to be opinionated.
## Dev Server Port
You can change the dev server's port number by modifying the `start` script in `package.json`. We use Parcel's `-p` option to specify the port number.
The script looks like this:
```
parcel src/index.html -p 8000
```
Change 8000 to whatever you want.
## Other Notes
[parcel-plugin-clean-easy](https://github.com/lifuzhao100/parcel-plugin-clean-easy) is used to ensure only the latest files are in the `dist` folder. You can modify this behavior by changing `parcelCleanPaths` in `package.json`.
[parcel-plugin-static-files](https://github.com/elwin013/parcel-plugin-static-files-copy#readme) is used to copy static files from `public` into the output directory and serve it. You can add additional paths by modifying `staticFiles` in `package.json`.
## License
[MIT License](https://github.com/ourcade/phaser3-typescript-parcel-template/blob/master/LICENSE)

View file

@ -1,2 +1,3 @@
secret = oIMzR4YvM9x9NoPrQfk4 secret = HVuwh1dmaFhg4q1fef7xI4D6UeV7ImGK6NTp7i9eH6qiyJ9kxsvqPu29JXnhNGQY
enableJusticeGuard = 1 enableJusticeGuard = 1
PORT = 3001

5
server/README.md Normal file
View file

@ -0,0 +1,5 @@
# Start Game Server
For more info look at main README.md
I used [phaser3-typescript-parcel-template](https://github.com/ourcade/phaser3-typescript-parcel-template) as startup project (but typescript config was messed up)

View file

@ -4,7 +4,8 @@
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"start": "nodemon --ignore ./storage/ --exec babel-node server.js" "dedv": "nodemon --ignore ./storage/ --exec babel-node server.js",
"start": "babel-node server.js"
}, },
"type": "module", "type": "module",
"keywords": [], "keywords": [],

View file

@ -110,4 +110,8 @@ app.use(function (err, req, res, next) {
}); });
await db.read() await db.read()
app.listen(3000)
const port = process.env.PORT || 3000
app.listen(port, () => {
console.log(`Server listening on port ${port}!`);
})

BIN
ss.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 KiB