summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
Diffstat (limited to 'server/src')
-rw-r--r--server/src/index.ts3
-rw-r--r--server/src/server.ts41
2 files changed, 41 insertions, 3 deletions
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}`);