https://github.com/geokureli/advent2020-server
Server code for the Newgrounds Advent 2020
https://github.com/geokureli/advent2020-server
Last synced: about 2 months ago
JSON representation
Server code for the Newgrounds Advent 2020
- Host: GitHub
- URL: https://github.com/geokureli/advent2020-server
- Owner: Geokureli
- Created: 2020-11-18T02:27:17.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-09-09T01:46:11.000Z (almost 3 years ago)
- Last Synced: 2024-03-15T17:04:06.869Z (about 1 year ago)
- Language: TypeScript
- Size: 154 KB
- Stars: 4
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Copied from [`@GeoKureli/ColyseusTest-Server`](https://github.com/GeoKureli/ColyseusTest-Server)
which is the server side to [`@GeoKureli/ColyseusTest`](https://github.com/GeoKureli/ColyseusTest)
which was copied from [`@AustinEast/bass-master-online`](https://github.com/AustinEast/bass-master-online)## Haxelibs
* zerolib: `0.8.0`
* colyseus: `0.14.9`
* colyseus-websocket: `1.0.10`## Austin's Server code
The Server is made up of two parts:
* The Game's logic, written in Haxe (Game.hx)
* The Colyseus server, written in Typescript (index.ts & GameRoom.ts)You may be wondering what the motivation was behind writing the Game logic in Haxe, even though its output is run on a server by a Typescript-based Node app. Normally it would be simpler to write it all in Typescript, but there are a couple of advantages to doing it this way:
1) It allows the Game instance running on the Server to easiy share Types and Utility methods with the Client app (which is built with Haxeflixel, a Haxe-based Game Framework). Check out the `shared` directory the see what I mean.
2) It gives access to the Haxe ecosystem, which includes its awesome standard library along with other great game-oriented libraries ([zerolib](https://github.com/01010111/zerolib) in this case)!
3) It's more fun to write code in Haxe!### Building
Direct your terminal to the `server` directory:
```
cd server/
```
Install the Node dependencies, then build the Colyseus Schema:
```
npm i
npm run schema
```
Compile the Haxe code:
```
haxe game.hxml
```
Start the Server:
```
npm start
```## Client
TODO
# Development
## Server
TODO## Client