import { Game } from "../../engine/Game"; import { Floor, Player } from "../../engine/entities"; import { WallBounds, Physics, Collision } from "../../engine/systems"; import { Miscellaneous } from "../../engine/config"; const TICK_RATE = 60 / 1000; const game = new Game(); [ new Physics(), new Collision({ width: Miscellaneous.WIDTH, height: Miscellaneous.HEIGHT }), 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}`);