https://github.com/tsoding/koil
Online Multiplayer Browser Game with Old-School Raycasting Graphics.
https://github.com/tsoding/koil
doom game multiplayer-game raycasting typescript vanilla-js
Last synced: 1 day ago
JSON representation
Online Multiplayer Browser Game with Old-School Raycasting Graphics.
- Host: GitHub
- URL: https://github.com/tsoding/koil
- Owner: tsoding
- License: mit
- Created: 2024-06-19T15:47:13.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-04-28T18:41:06.000Z (2 days ago)
- Last Synced: 2025-04-29T12:14:31.525Z (1 day ago)
- Topics: doom, game, multiplayer-game, raycasting, typescript, vanilla-js
- Language: C++
- Homepage: https://tsoding.github.io/koil
- Size: 10.7 MB
- Stars: 360
- Watchers: 5
- Forks: 42
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Koil
> [!WARNING]
> This Game is a work In Progress! Anything can change at any moment without any notice! Use this Game at your own risk!Online Multiplayer Browser Game with Old-School Raycasting Graphics.

Offline version available on GitHub Pages: https://tsoding.github.io/koil/
> [!WARNING]
> We are intentionally rendering on HTML 2D Canvas without employing any hardware acceleration to see how much we can push the boundaries of the software rendering in browsers. So the renderer may run unexpectedly slow on some machines and browsers, but we are working it.## Quick Start
Dependencies
- Build from scratch commit [855be928](https://github.com/c3lang/c3c/tree/855be9288121d0f7a67d277f7bbbbf57fbfa2597) of [C3 compiler](https://github.com/c3lang/c3c). This commit is pinned and will not be updated.
- Clang (18.1.8+)
- Node (v20.9.0+)*We are working on reducing the amount of dependencies, please, bear with us.*
```console
$ npm install
$ node run build
$ npm run serve
$ https://localhost:6969/
```This script starts up http-server at http://localhost:6969/ to serve the content of the current folder and the server of the game. See [serve.js](./serve.js) for more details.
## References
- Renderer implementation is heavily inspired by https://lodev.org/cgtutor/raycasting.html
- The Networking is Based on https://github.com/tsoding/multiplayer-game-prototype