Skip to content

Commit ded68a5

Browse files
authored
Merge pull request #216 from sparkoo/readme
init readme
2 parents cff4376 + f27bda6 commit ded68a5

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

README.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# CS2 2D Demo Viewer
2+
3+
A web-based application for visualizing Counter-Strike 2 (CS2) demo files in 2D.
4+
5+
- [Live environment](https://2d.sparko.cz)
6+
- [Staging environment](https://dev.2d.sparko.cz)
7+
- [Chrome extension](https://chromewebstore.google.com/detail/kagfmemgilamfeoljmajifkbhfglebdb?utm_source=item-share-cb)
8+
- [Firefix extension](https://addons.mozilla.org/en-US/firefox/addon/faceit-2d-replay/)
9+
10+
## Project Components
11+
12+
### Parser (`parser/`)
13+
Written in Go, built into WebAssembly.
14+
15+
Using CS demo parser library https://github.com/markus-wa/demoinfocs-golang ❤️
16+
17+
### Frontend (`web/`)
18+
Written in JavaScript using Preact.
19+
20+
- Homepage component at `web/src/Index` (only static page, nothing interesting here)
21+
- Player component at `web/src/Player`
22+
23+
**Player** is using *parser webassembly* to parse the binary demo. It then stores received data from the parser into the memory and plays them.
24+
25+
### Protocol Buffers ( `protos/`)
26+
27+
Custom message format to send demo data between parser and the *Player* application.
28+
29+
### Backend (`server/`)
30+
31+
- Serving of static web content
32+
- Demo download proxy
33+
34+
### Faceit browser plugin (`browserplugin/faceit/`)
35+
Adds several buttons to Faceit interface to play the demo. Internaly it resolves the real demo URL and opens player link with the demo url in parameter. Works for Firefox and Chrome-based browsers.
36+
37+
### Containter
38+
Whole application is built into container and deployed to GCP. Everything is server by Go server.
39+
40+
### CI/CD (`.github/workflows/`)
41+
Using GitHub Actions
42+
43+
## Development
44+
`Makefile` to ease the development.
45+
46+
To build the Parser WebAssembly
47+
```sh
48+
make wasm
49+
```
50+
51+
To run the frontend (together with *wasm*, it is enough to )
52+
```sh
53+
make dev
54+
```
55+
56+
To run the server
57+
```sh
58+
make server
59+
```

0 commit comments

Comments
 (0)