#ddnet #weapon #jump #game #hook #team #kill

twgame-core

Game trait, helper types and helper functions for twgame

1 unstable release

0.1.0 May 19, 2024

#1128 in Hardware support

Download history 62/week @ 2024-05-13 115/week @ 2024-05-20 4/week @ 2024-06-03

181 downloads per month
Used in 3 crates (via twgame)

AGPL-3.0-only

42KB
1K 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

~8.5MB
~163K SLoC