Curseofrust is curseofwar (Real Time Strategy Game for Linux) re-implemented in Rust.
The game supports both singleplayer and multiplayer, along with different platforms and networking protocols.
curseofrust: The root crate supports the game (grid, bots, etc.).curseofrust-net-foundation: Bare networking layer on the top ofunisock.curseofrust-msg: Curseofwar messaging protocol implementation.curseofrust-cli-parser: Simple CLI arguments parser for curseofrust.
curseofrust-console: TUI/CLI implementation. Supports multiplayer.curseofrust-gui-cocoa: GUI implementation based on Cocoa for macOS. Currently does not support multiplayer. It is now hosted here.curseofrust-server: The dedicated server implementation with a CLI interface.
Curseofrust supports following networking protocols:
udp: Fully compatible with curseofwar protocol.tcpws:Work-in-progress(works now!) WebSocket support.
The command line arguments are compatible with curseofwar format. Use -h to make the program display help information.
TUI/CLI implementation. Supports multiplayer.
The console version supports three controlling modes, as follow.
Use keyboard to control the game. Same as curseofwar.
- HJKL and Arrow Keys to control cursor.
- Space to toggle flag.
- X to unflag all tiles.
- C to unflag half of the tiles randomly.
- R or V to build and upgrade houses.
- F and S to control speed.
- P to pause the game.
- Q to quit the game.
A touchscreen keymap designed for playing with Termux.
- Tapping an unselected tile to control cursor position.
- Tapping the selected tile to toggle flag.
- Down Key to unflag all tiles.
- ALT + Down Key to unflag half of the tiles randomly.
- HOME or Up Key to build and upgrade houses.
- PGUP and PGDN to control speed.
- END to pause the game.
- ESC to quit the game.
Keyboard mode with following features:
- Clicking an unselected tile to control cursor position.
- Clicking the selected tile to toggle flag.
GUI implementation based on Cocoa for macOS. Currently does not support multiplayer. It is now hosted here.
The dedicated server implementation with a CLI interface.
On legacy Mac OS X (10.11 and lower), follow these steps:
- Get
git,rust,legacy-support, and a recent version ofclang(eg.clang-18) via Macports. - In Cargo's
config.toml, set the linker toclang(instead of systemld64) and statically link toMacportsLegacySupport. It is recommended to enablenet.git-fetch-with-clias well. - Build and run just like any other Rust projects.
Below is an example config.toml:
[target.x86_64-apple-darwin]
linker = "clang"
rustflags = [
"-C", "link-arg=-mmacosx-version-min=10.8",
"-C", "link-arg=/opt/local/lib/libMacportsLegacySupport.a",
]
[net]
git-fetch-with-cli = true