summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-07-20 22:22:26 -0700
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-07-20 22:22:26 -0700
commit619a039942c3c02552f72275634a9f6c0788c570 (patch)
tree43151191c920d0d705db71306f58409e97b60d03 /server
parent72c6c7de12e9833f52bf2d0718d70f044f8ab57e (diff)
downloadjumpstorm-619a039942c3c02552f72275634a9f6c0788c570.tar.gz
jumpstorm-619a039942c3c02552f72275634a9f6c0788c570.zip
very basic websocket setup
Diffstat (limited to 'server')
-rw-r--r--server/README.md15
-rw-r--r--server/index.ts0
-rw-r--r--server/package.json2
-rw-r--r--server/src/index.ts3
-rw-r--r--server/src/server.ts41
5 files changed, 42 insertions, 19 deletions
diff --git a/server/README.md b/server/README.md
deleted file mode 100644
index 84286d5..0000000
--- a/server/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# server
-
-To install dependencies:
-
-```bash
-bun install
-```
-
-To run:
-
-```bash
-bun run index.ts
-```
-
-This project was created using `bun init` in bun v0.6.14. [Bun](https://bun.sh) is a fast all-in-one JavaScript runtime.
diff --git a/server/index.ts b/server/index.ts
deleted file mode 100644
index e69de29..0000000
--- a/server/index.ts
+++ /dev/null
diff --git a/server/package.json b/server/package.json
index 0bb97a9..17d3c25 100644
--- a/server/package.json
+++ b/server/package.json
@@ -1,6 +1,6 @@
{
"name": "server",
- "module": "src/index.ts",
+ "module": "src/server.ts",
"type": "module",
"devDependencies": {
"bun-types": "^0.6.14"
diff --git a/server/src/index.ts b/server/src/index.ts
deleted file mode 100644
index 138762b..0000000
--- a/server/src/index.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-import { Game } from "../../engine/Game";
-
-console.log(Game);
diff --git a/server/src/server.ts b/server/src/server.ts
new file mode 100644
index 0000000..f699ea9
--- /dev/null
+++ b/server/src/server.ts
@@ -0,0 +1,41 @@
+import { Game } from "../../engine/Game";
+import { Floor, Player } from "../../engine/entities";
+import {
+ WallBounds,
+ FacingDirection,
+ Physics,
+ Input,
+ Collision,
+} from "../../engine/systems";
+import { Miscellaneous } from "../../engine/config";
+
+const TICK_RATE = 60 / 1000;
+
+const game = new Game();
+
+[new Physics(), new Collision(), new WallBounds(Miscellaneous.WIDTH)].forEach(
+ (system) => game.addSystem(system)
+);
+
+[new Floor(160), new Player()].forEach((entity) => game.addEntity(entity));
+
+game.start();
+setInterval(() => {
+ game.doGameLoop(performance.now());
+}, TICK_RATE);
+
+const server = Bun.serve<>({
+ port: 8080,
+ fetch(req, server) {
+ server.upgrade(req, {
+ data: {},
+ });
+ },
+ websocket: {
+ // handler called when a message is received
+ async message(ws, message) {
+ console.log(`Received ${message}`);
+ },
+ },
+});
+console.log(`Listening on localhost:${server.port}`);