Skip to content

Kicshikxo/Pico-TD

Repository files navigation

Logo

Pico TD

Pixel-art Tower Defense Game

[ English | Русский ]

Stargazers License

About the Project

Pico TD is a pixel-art tower defense game where you defend against waves of enemy vehicles using soldiers. The concept is inspired by the Bloons TD series.

Pico TD features tactical gameplay where you place your soldiers to maximize their efficiency. The game includes different soldier classes, enemy types, multiple levels, and the ability to load custom levels following this example.

There are three soldier classes:

  • Regular Soldier: A balanced unit with moderate damage and a fast rate of fire.
  • Rocket Launcher: High area damage, but a slow rate of fire.
  • Sniper: Long-range, high-damage unit with a slow rate of fire.

Enemies can be ground, naval, or air units, including trucks, tanks, drones, planes, boats, and more. Both soldiers and enemies have multiple levels, increasing the difficulty as the game progresses.

The game is designed to be played with a mouse but also supports touch input.

Play Online

You can play the game directly in your browser:

Built With

The following tools were used to build this project:

  • Rust 1.91.0
  • Bevy 0.17.2

Installation and Run

Install Rust

First, install Rust if you haven't already. Follow the installation instructions here: https://www.rust-lang.org/tools/install.

Clone the Repository

git clone https://github.com/Kicshikxo/Pico-TD.git
cd Pico-TD

Native Run

Run the project on your native platform:

cargo run --features bevy/dynamic_linking

Build the project in release mode:

cargo build --release

To reduce the final binary size, you can use UPX:

upx --best --lzma target/release/pico_td

Run with WebAssembly (WASM)

To run the project with WASM, install the wasm32-unknown-unknown target:

rustup target install wasm32-unknown-unknown

Install wasm-server-runner to run the project

cargo install wasm-server-runner
cargo run --target wasm32-unknown-unknown

For a release build, install wasm-bindgen-cli:

cargo install wasm-bindgen-cli
cargo build --release --target wasm32-unknown-unknown
wasm-bindgen --out-name pico_td --out-dir wasm --target web --no-typescript target/wasm32-unknown-unknown/release/pico_td.wasm

For additional optimization, use wasm-opt.

cargo install wasm-opt
wasm-opt -Oz --all-features --output wasm/pico_td_bg.wasm wasm/pico_td_bg.wasm

Run on Android

To build for Android, install the required targets:

rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android i686-linux-android

And install cargo-ndk:

cargo install cargo-ndk

Then build the game for all platforms:

cargo ndk -t armeabi-v7a -t arm64-v8a -t x86 -t x86_64 -o android/app/src/main/jniLibs/ build --release --link-libcxx-shared

Finally, open the android folder in Android Studio and build the project.

External Assets

License

Distributed under the WTFPL License. See LICENSE for more information.

About

Tower Defence игра в пиксельной стилистике на Bevy

Topics

Resources

License

Stars

Watchers

Forks

Languages