14 releases (6 breaking)
new 0.7.2 | Dec 1, 2024 |
---|---|
0.7.1 | Nov 23, 2024 |
0.6.3 | Nov 17, 2024 |
0.1.1 | Jun 5, 2024 |
#4 in #teeworlds
1,212 downloads per month
Used in 7 crates
(3 directly)
85KB
2.5K
SLoC
Snapshot reprentation
Goals:
-
Can be used to render
-
Can be produced by game implementation
-
Can be serialized into DDNet demo
-
Can be deserialized from DDNet demo
-
Can be used as input from game implementation
-
valid utf-8
-
no allocations
-
usability first
Goals, if it doesn't affect the representation, otherwise another snapshot is necessary
- Can be deserialized from Teehistorian
Non-goals:
- repr(C) to serialize
- Implement functions on snap objects like trajectory.
- no_std
- Serialization can be played by old DDNet clients or Teeworlds Client
- resemblance of [i32; k] strings by Teeworlds
- writing non-DDNet snapshots (other mods)
Architecture:
- Using
fixed
to represent uniform scales for all distance related variables: 1 per tile - vek for points
- arrayvec for stack strings/arrays
- rust enum for protocol enums
- bitflags
- bools
- One snapshot per team
Dependencies
~8MB
~141K SLoC