Readme update
This commit is contained in:
parent
f5380927fd
commit
89e2f52063
9 changed files with 60 additions and 148 deletions
44
README.md
44
README.md
|
|
@ -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* :)
|

|
||||||
|
|
||||||
|
## 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
5
game/README.md
Normal 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)
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
138
game/readme.md
138
game/readme.md
|
|
@ -1,138 +0,0 @@
|
||||||
This is a fork of [phaser3-typescript-parcel-template](https://github.com/ourcade/phaser3-typescript-parcel-template)
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
# Phaser 3 + TypeScript + Parcel Template
|
|
||||||
> For people who want to spend time making Phaser 3 games in TypeScript instead of configuring build tools.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
secret = oIMzR4YvM9x9NoPrQfk4
|
secret = HVuwh1dmaFhg4q1fef7xI4D6UeV7ImGK6NTp7i9eH6qiyJ9kxsvqPu29JXnhNGQY
|
||||||
enableJusticeGuard = 1
|
enableJusticeGuard = 1
|
||||||
|
PORT = 3001
|
||||||
|
|
|
||||||
5
server/README.md
Normal file
5
server/README.md
Normal 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)
|
||||||
|
|
@ -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": [],
|
||||||
|
|
|
||||||
|
|
@ -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
BIN
ss.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 131 KiB |
Loading…
Add table
Add a link
Reference in a new issue