diff options
Diffstat (limited to 'server/src/server.ts')
-rw-r--r-- | server/src/server.ts | 41 |
1 files changed, 41 insertions, 0 deletions
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}`); |