A game made with Bun, Vite and JavaScript.
In order to run the game, you must have the Bun runtime, after you havee cloned this repo, run bun install
at your terminal to install any dependencies, then run bun run dev
, Vite will provide the localhost link to open a browser tab with the game running
If you have incoutered any error/problem while trying to run the game, please consider opening an issue, this helps with the development of the game
- player render (draw) ✅
- correctly apply/implement player movement ✅
- add filter to entityManager so it can separate the objects on different arrays so only necessarie objects will suffer update ✅
- plans on convert to TypeScript if possible ✅🎉
- add physics + colision detector
- polish player movement
- implements gravity and correctly apply it
- implement Events
- add logger/console for depuration
-
...
-
typescript soft-errors (errors that doesn't prevent from the code running without issues, mostly type mismatches), at collisionQuery.ts:37:35 error says that potentialCollisions mey be null, at quadtrees.ts:93:19-94:19-95:19-96:19 error about not yet disponible (non created) arrays, says "not possible to find array name", at spawner.ts:40:47 error says "argument of type 'string | undefined' can't be atribued to parameter of type 'string'", the cause is the optional argument that is conditionally used.
-
for loop at quadtrees.ts:76:13 used for pre-collision detection not working correctly for enemy entity, the for loop dont iters over the player entity which is in the objects array of the quadtree, but for the player entity it works fine.
-
box() method of class BoundingBox not providing info correctly at boundingBox.ts:22:16, which info is captured by itself for isColliding method at collisionQuery.ts:30:42, theres no error on console. FIXED
-
foreach not working cause an undefined property on entityManager.ts:20:57, see a screenshot of the error. FIXED
- player not rendering properly: one of the causes was the gravity module, which caused the player sprite to vanish, other possibilitie may be the file importing with JavaScript. FIXED