5 releases (breaking)

new 0.5.0 Oct 23, 2024
0.4.0 Oct 14, 2024
0.3.0 Oct 13, 2024
0.2.0 Oct 12, 2024
0.1.0 May 19, 2024

#656 in Algorithms

Download history 4/week @ 2024-08-19 13/week @ 2024-08-26 5/week @ 2024-09-16 15/week @ 2024-09-23 13/week @ 2024-09-30 201/week @ 2024-10-07 337/week @ 2024-10-14 137/week @ 2024-10-21

690 downloads per month
Used in 5 crates

AGPL-3.0-only

355KB
8K SLoC

TwGame

This repository contains multiple DDNet related libraries and tools. It is based on libtw2, twmap and teehistorian.

Features:

Bolded items have known edge cases not yet working:

  • DDNet physics
    • spawn
    • collision
    • movement
    • jump
      • jump count setter
      • wall jump
      • double jump refresher
    • hook
      • old hookthrough
      • hookthrough
      • directional hookthrough
    • freeze
      • deep freeze
      • freeze heart
      • live freeze
    • hammer
    • weapon switch
    • collectable weapons
      • shotgun
      • grenade
      • laser
      • ninja
    • shields (removing weapons)
    • solo
    • power ups
      • endless hook
      • weapons off
      • collision off
      • infinite jumps
      • jetpack
      • hook off
    • start/finish
    • checkpoints
    • teams
      • switching teams
      • /lock
      • unlock block
      • join team0 on finish
    • swap
    • ignoring practice
    • save/load
    • chat command /kill
    • teleporter
      • checkpoints
      • hook teleporter
      • weapon teleporter
    • telegun gun/grenade/laser
    • stopper
    • config variables
    • tune zones
    • switch layer
      • static freezing laser
      • rotating freezing laser
      • laser length changer
      • explosion turrents
      • moving bullets
      • dragger
      • doors
    • speedup layer
    • entity speeder
    • /spec and /pause
    • Spectator mode
    • ...
  • Unit tests for physics
  • Teehistorian replayer
  • Teehistorian indexer - making collections of teehistorian files searchable in sqlite3

Future plans:

  • Output teehistorian file as .demo
  • Allow using DDNet C++ physics via Rust bindings
  • Python binding to work with teehistorian files
  • Demo reader/writer allowing conversion to and from teehistorian
  • Make a server wrapper around the game implementation using libtw2 network library
  • Allow rendering teehistorian files with twmap
  • In teehistorian replayer allow checking which bugs quirks were abused like tele, shotgun, skippable tiles, ... or map specific bugs.

Dependencies

~16–29MB
~397K SLoC