⬡ Zone of Control is a hexagonal turn-based strategy game written in Rust. [DISCONTINUED]

Overview

Zone of Control

license loc travis-ci appveyor-ci

The project is discontinued

Sorry, friends. ZoC is discontinued. See https://ozkriff.github.io/2017-08-17--devlog.html

Downloads

Precompiled binaries for linux, win and osx: https://github.com/ozkriff/zoc/releases

Overview

ZoC is a turn-based hexagonal strategy game written in Rust.

Core game features are:

  • advanced fog of war
  • slot system (single tile fits multiple units)
  • reaction fire (xcom-like)
  • morale and suppression

http://i.imgur.com/TYoAVj6.png

http://i.imgur.com/DxfBok2.png

http://i.imgur.com/V4ZPCrT.png

Player's objective is to capture and hold control zones for certain number of turns.

Terrain types:

  • Plain
  • Trees
  • Water
  • Road/Bridge
  • City

Unit types:

  • Infantry - weak, but can use terrain like Trees or City to get a defence bonus and hide from enemies; can be transported by trucks. Types:
    • rifleman - basic infantry type, 4 soldiers in a squad;
    • smg - more deadly on short distances, less deadly on full range, 3 soldiers in a squad;
    • scout - weak, but have advances visibility range and can better detect hidden enemies, 2 soldiers in a squad;
    • mortar - defenceless, but can shoot smokescreen rounds, slow;
    • field gun - effective against vehicles, slow and can't be transported inside of track, but can be _towed_;
  • Vehicles - can't hide in terrain, can't occupy buildings. Can't see hidden infantry. Leave a wreck when destroyed. Can take in a tow vehicle or wrecks lighter than themselves. Types:
    • jeep - fast and effective against infantry and helicopters;
    • truck - can transport infantry;
    • light tank
    • light self-propelled gun - has an armor of a light tank, but a gun of medium tank;
    • medium tank
    • heavy tank
    • mammoth tank
  • Aircrafts - can fly above all terrain features; it's line of sight isn't blocked by terrain. Only one type was implemented: - Helicopter

Morale/Suppression system:

  • every unit initially have 100 morale points and restore 10 points every turn
  • morale is reduced by half a a damage chance (hit chance / armor protection) when a unit is attacked even if attack missed;
  • if a soldier of the squad is killed additional suppression is added
  • if a unit's morale falls below 50, then it's suppressed and can't attack anymore

Videos:

Assets

Basic game assets are stored in a separate repo: https://github.com/ozkriff/zoc_assets

Run make assets (or git clone https://github.com/ozkriff/zoc_assets assets) to download them.

Building

make or cargo build.

Running

make run or cargo run or ./target/zoc.

Android

For instructions on setting up your environment see https://github.com/tomaka/android-rs-glue#setting-up-your-environment.

Then just: make android_run - this will build .apk, install and run it.

License

ZoC is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT for details.

Comments
  • Helicopters, stage 1

    Helicopters, stage 1

    Every wargame needs air units. Planes are too fast and need thair own set of rules, but helicopters can be controlled almost as simple ground units (like in Wargame: AB).


    Какой варгейм может обходиться без летающих боевых машин?! Самолеты они быстрые, скорее всего ими нельзя будет управлять как обычными отрядами, а можно будет только вызывать на следующий ход, выбирая примерную траекторию полета (как в Wargame: AB). А вот вертолеты - этими вполне можно и нужно командовать как обычными отрядами.

    План:

    • [x] lives in its own slot (SlotId::Air) in a tile
    • [x] flies above anything without slowdown
    • [x] препятствия на карте не создают за собой зрительной "тени", т.е. он видит все в своем радиусе обзора (хотя пехота все равно может прятаться в лесу или еще какой клетке-укрытии)
    • [x] most weapons can't shoot it
    • [x] draw reachable tiles on the ground (as for other units)
    • [x] is not loosing move points when attacked (as it can't "duck")
    • [x] can't capture sectors
    • [x] special model
    • [x] has no "hunt" command
    • [x] bobbing animation

    <остальные подпункты вынесены во второй этап>

    p-high t-feature 
    opened by ozkriff 21
  • android: signal 7 (SIGBUS), code 1 (BUS_ADRALN)

    android: signal 7 (SIGBUS), code 1 (BUS_ADRALN)

    На данный момент это происходит в ветке WIP_gfx, но мне что-то подсказывает, что оно не пропадет после вливания в мастер.


    RIght now it crashes in WIP_gfx branch, but looks like it still be crashing after merging to into master.

    adb logcat -v time | grep 'Rust\|DEBUG'
    07-26 09:19:13.228 D/RustAndroidGlueStdouterr(19877): Entering android_main
    07-26 09:19:13.228 D/RustAndroidGlueStdouterr(19877): Creating application thread
    07-26 09:19:30.518 I/DEBUG   (  443): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    07-26 09:19:30.518 I/DEBUG   (  443): Build fingerprint: 'Xiaomi/kenzo/kenzo:5.1.1/LMY47V/V7.3.7.0.LHOMIDD:user/release-keys'
    07-26 09:19:30.518 I/DEBUG   (  443): Revision: '0'
    07-26 09:19:30.518 I/DEBUG   (  443): ABI: 'arm'
    07-26 09:19:30.518 I/DEBUG   (  443): pid: 19877, tid: 19906, name: rust.zoc  >>> rust.zoc <<<
    07-26 09:19:30.518 I/DEBUG   (  443): signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 0xe32bd0c2
    07-26 09:19:30.558 I/DEBUG   (  443):     r0 e3800fc8  r1 e32bd0c2  r2 00000001  r3 e32bd0c2
    07-26 09:19:30.558 I/DEBUG   (  443):     r4 e3801164  r5 e38011ac  r6 0000001d  r7 00000000
    07-26 09:19:30.558 I/DEBUG   (  443):     r8 e3801670  r9 e40263d8  sl e3801c78  fp e3800f98
    07-26 09:19:30.558 I/DEBUG   (  443):     ip 00000004  sp e3800f68  lr e40ff138  pc e40ff3b8  cpsr 600d0010
    07-26 09:19:30.558 I/DEBUG   (  443): 
    07-26 09:19:30.558 I/DEBUG   (  443): backtrace:
    07-26 09:19:30.558 I/DEBUG   (  443):     #00 pc 0024a3b8  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN10visualizer4geom26index_to_circle_vertex_rnd17h4fdc28498d8707a5E+64)
    07-26 09:19:30.558 I/DEBUG   (  443):     #01 pc 0024a134  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN10visualizer4geom22exact_pos_to_world_pos17h78d4994f5f0296afE+380)
    07-26 09:19:30.558 I/DEBUG   (  443):     #02 pc 0024fe8c  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN10visualizer15tactical_screen14TacticalScreen15add_map_objects17h420cba47cb86d87fE+1304)
    07-26 09:19:30.558 I/DEBUG   (  443):     #03 pc 0024f13c  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN10visualizer15tactical_screen14TacticalScreen3new17h61f9a4ba53b2dc9bE+3912)
    07-26 09:19:30.558 I/DEBUG   (  443):     #04 pc 0025814c  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN10visualizer16main_menu_screen14MainMenuScreen25handle_event_button_press17h93b77bec5c6ec831E+176)
    07-26 09:19:30.558 I/DEBUG   (  443):     #05 pc 00258070  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN10visualizer16main_menu_screen14MainMenuScreen24handle_event_lmb_release17hbb0b76ad5b53e4d0E+108)
    07-26 09:19:30.558 I/DEBUG   (  443):     #06 pc 002587c4  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN91_$LT$visualizer..main_menu_screen..MainMenuScreen$u20$as$u20$visualizer..screen..Screen$GT$12handle_event17h11b385386398d722E+348)
    07-26 09:19:30.558 I/DEBUG   (  443):     #07 pc 00263688  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN10visualizer10Visualizer13handle_events17h61fc2bae63deec06E+820)
    07-26 09:19:30.558 I/DEBUG   (  443):     #08 pc 002630e0  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN10visualizer10Visualizer4tick17hd01772e13b480bfeE+28)
    07-26 09:19:30.558 I/DEBUG   (  443):     #09 pc 0017141c  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN3zoc4main17h308ba5ec18216eedE+68)
    07-26 09:19:30.558 I/DEBUG   (  443):     #10 pc 005eb748  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN3std9panicking3try4call17h5df3ac2979db3c90E+28)
    07-26 09:19:30.558 I/DEBUG   (  443):     #11 pc 005fa9f8  /data/app/rust.zoc-2/lib/arm/libmain.so (__rust_try+16)
    07-26 09:19:30.558 I/DEBUG   (  443):     #12 pc 005fa8c4  /data/app/rust.zoc-2/lib/arm/libmain.so (__rust_maybe_catch_panic+28)
    07-26 09:19:30.558 I/DEBUG   (  443):     #13 pc 005ea97c  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN3std2rt10lang_start17hfe9ab243c60ffb9bE+1188)
    07-26 09:19:30.558 I/DEBUG   (  443):     #14 pc 001716f0  /data/app/rust.zoc-2/lib/arm/libmain.so (main+60)
    07-26 09:19:30.558 I/DEBUG   (  443):     #15 pc 0068d078  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN8glue_obj12android_main28_$u7b$$u7b$closure$u7d$$u7d$17ha4de04c9f531cb2bE+28)
    07-26 09:19:30.558 I/DEBUG   (  443):     #16 pc 00683968  /data/app/rust.zoc-2/lib/arm/libmain.so (_ZN23cargo_apk_injected_glue13android_main211main_thread17h46175ddba5b4db24E+172)
    07-26 09:19:30.558 I/DEBUG   (  443):     #17 pc 0001333f  /system/lib/libc.so (_ZL15__pthread_startPv+30)
    07-26 09:19:30.558 I/DEBUG   (  443):     #18 pc 00011357  /system/lib/libc.so (__start_thread+6)
    07-26 09:19:30.718 I/DEBUG   (  443): 
    07-26 09:19:30.718 I/DEBUG   (  443): Tombstone written to: /data/tombstones/tombstone_01
    

    т.е. вообще какая-то внезапная ошибка не с самой графикой, а с геометрическими вычислениями О.о


    Very strange error: it is not caused by GFX or something graphics-related, just math in Core module O.o

    pub fn index_to_circle_vertex_rnd(count: ZInt, i: ZInt, pos: &MapPos) -> VertexCoord {                                                   
        let n = 2.0 * PI * (i as ZFloat) / (count as ZFloat);                                                                                
        let n = n + ((pos.v.x as ZFloat + pos.v.y as ZFloat) * 7.0) % 4.0; // TODO: remove magic numbers                                     
        VertexCoord {                                                                                                                        
            v: Vector3{x: n.cos(), y: n.sin(), z: 0.0} * HEX_EX_RADIUS                                                                       
        }                                                                                                                                    
    }
    

    что, блин, в этой функции так громко упасть вообще может я даже не знаю


    I have no idead what can go wrong in that simple func

    t-bug p-high 
    opened by ozkriff 14
  • Can't run on Windows 10

    Can't run on Windows 10

    Any ideas for debugging?

    D:\Downloads\zoc-master\zoc-master>cargo run Running target\debug\zoc.exe GL_VERSION: 4.5.0 NVIDIA 365.19 GLSL_VERSION: 4.50 NVIDIA GL_VENDOR: NVIDIA Corporation GL_RENDERER: GeForce GTX 660 Ti/PCIe/SSE2 thread '

    ' panicked at '0(1) : error C0000: syntax error, unexpected $undefined, expecting "::" at token "" ', src\zgl\src\shader.rs:168 note: Run with RUST_BACKTRACE=1 for a backtrace. Process didn't exit successfully: target\debug\zoc.exe (exit code: 101)

    t-bug p-high 
    opened by ricklamers 11
  • Obj: add support for edges

    Obj: add support for edges

    Сейчас мой костыльный парсер .obj умеет загружать только треугольники. Надо научить его загружать еще и "грани" из двух вершин.

    Нужно для загрузки и отображения сеточных моделей. Например, здание, в котором пехота.

    p-high t-feature 
    opened by ozkriff 7
  • Add hover effect for buttons

    Add hover effect for buttons

    It's hard to distinguish buttons currently. I can add a hover effect in the draw step since the context is passed (and can obtain the mouse pos). Something simple like a bg color or text color change.

    Let me know if you are interested in such a change and will submit a PR.

    t-feature 
    opened by mdenchev 6
  • Can't run zoc - An unknown error occurred

    Can't run zoc - An unknown error occurred

    I am using Ubuntu 12.04. Tried to run with --verbose and got such output:

    GL_VERSION: 2.1.2 NVIDIA 304.125
    GL_SHADING_LANGUAGE_VERSION: 1.20 NVIDIA via Cg compiler
    GL_VENDOR: NVIDIA Corporation
    GL_RENDERER: GeForce 310M/PCIe/SSE2
    thread '<main>' panicked at '', src/zgl/src/shader.rs:175
    Process didn't exit successfully: `target/debug/zoc` (exit code: 101)
    
    opened by Vinatorul 5
  • Panic

    Panic "called `Option::unwrap()` on a `None` value"

    Cross compiled from Bash on Ubuntu on Windows to i686-pc-windows-gnu.

    Will try to reproduce on real linux.

    Binary: https://1drv.ms/u/s!ArN-vh3Q5uflg3jCDUgWI3r2ufX0

    Backtrace:

    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore\option.rs:323
    stack backtrace:
       0:   0xaf6e6e - <unknown>
       1:   0xaf7468 - <unknown>
       2: 0x77a05c0b - <unknown>
       3: 0x77a05b31 - <unknown>
       4:   0xb0831c - <unknown>
       5:   0x490cd9 - <unknown>
       6:   0x585528 - <unknown>
       7:   0x5863b8 - <unknown>
       8:   0x5876f7 - <unknown>
       9:   0x586471 - <unknown>
      10:   0x5876f7 - <unknown>
      11:   0x5878e5 - <unknown>
      12:   0x5883e9 - <unknown>
      13:   0x568d25 - <unknown>
      14:   0x568c5c - <unknown>
      15:   0x5943fd - <unknown>
      16:   0xaf7187 - <unknown>
      17:   0x5a6b32 - <unknown>
      18:   0x4013dd - <unknown>
      19: 0x768462c3 - <unknown>
      20: 0x77a20fd8 - <unknown>
    
    t-bug 
    opened by bjorn3 4
  • Не перерендеривается вьюшка без изменения размеров окна - Archlinux + Cinnamon

    Не перерендеривается вьюшка без изменения размеров окна - Archlinux + Cinnamon

    Не перерендеривается вьюшка без изменения размеров окна - Archlinux + Cinnamon. Нажимаешь на кнопку изменения карты - нет эффекта, зарессайзил окно - поменялось. В игре - двигаешь камеру - нет эффекта, зарессайзил окно - вьюшка перерендерилась. Информация о компьютере:

    [loomaclin@localhost ~]$ archey3
    
                   +                OS: Arch Linux x86_64
                   #                Hostname: localhost
                  ###               Kernel Release: 4.7.1-1-ARCH
                 #####              Uptime: 27 days, 5:18
                 ######             WM: None
                ; #####;            DE: Cinnamon
               +##.#####            Packages: 739
              +##########           RAM: 8203 MB / 15927 MB
             #############;         Processor Type: Intel(R) Core(TM) i5-6400 CPU @ 2.70GHz
            ###############+        $EDITOR: None
           #######   #######        Root: 36G / 118G (30%) (ext4)
         .######;     ;###;`".      
        .#######;     ;#####.       
        #########.   .########`     
       ######'           '######    
      ;####                 ####;   
      ##'                     '##   
     #'                         `#  
    
    
    t-bug p-high 
    opened by LooMaclin 4
  • Crashes when minimized on win7

    Crashes when minimized on win7

    @alexmironof reported:

    thread 'main' panicked at 'The aspect ratio cannot be below zero, found: NaN', .cargo\registry\src\github.com-1ecc6299db9ec823\cgmath-0.10.0\src\projection.rs:101
    
    t-bug 
    opened by ozkriff 4
  • Fix bridges

    Fix bridges

    Сейчас "мосты" это на самом деле хак, который сам собой получился, вообще-то это просто дороги.

    Пехота по "мостам" двигаться не может - у нее нет бонусов для обычных дорог, так что и через воду бонуса движения нет.

    Мост имеет три слота, хотя по задумке слот должен быть всего один, для того что бы затруднить его преодоление под обстрелом большой группой отрядов.

    p-high t-feature 
    opened by ozkriff 4
  • Display only non-empty buildings using wireframe

    Display only non-empty buildings using wireframe

    Сейчас здания всегда отображаются в виде сетки. По идее, они бы должны в отрисовку сеткой переключаться только когда что-то содержат внутри, но для этого надо добавить возможность по ObjectId просить у сцены узел.

    t-feature 
    opened by ozkriff 4
  • Split reinforcements popup into groups

    Split reinforcements popup into groups

    I can't add more unit types into the game with current dull widget system because widgets have no support for scrolling. The short-term solution is to split single reinforcements popup into separate popups specific to unit groups:

    • infantry
    • light vehicles
    • heavy vehicles
    • air units
    • ships
    • ???
    t-feature s-active 
    opened by ozkriff 0
  • Disable cmd window for windows release builds

    Disable cmd window for windows release builds

    Replace barbaric make call with cargo rustc --release -- -Clink-args="-Wl,--subsystem,windows" in appveyor.yml.

    See http://stackoverflow.com/questions/29763647/how-to-make-a-program-that-does-not-display-the-console-window

    t-feature 
    opened by ozkriff 0
  • Refactor CoreEvent & Command enums into bunch of structs & traits

    Refactor CoreEvent & Command enums into bunch of structs & traits

    У меня есть важный тип - CoreEvent. он перечисление всех возможных событий.

    Он много где обрабатываются и везде его обработка выглядит как огромная функция с огромным match хотя бы строк на 150:

    • https://github.com/ozkriff/zoc/blob/bcf253d/core/src/internal_state.rs#L180-L381
    • https://github.com/ozkriff/zoc/blob/bcf253d/core/src/filter.rs#L72-L308
    • https://github.com/ozkriff/zoc/blob/bcf253d/core/src/lib.rs#L946-L1134

    и еще в паре мест.

    Вроде бы это мне пока особо и не мешает, но как-то раздражает. (и кроме CoreEvent еще есть похожий Command с теми же проблемами).

    Вот я думаю, может мне варианты этого перечисления вынести в честные структуры, сделать для каждого такого match свой типаж и реализовать его для каждого события/команды?

    Сейчас есть, например,

    InternalState::apply_event(&mut self, event: CoreEvent)

    а будет какой-нибудь

    impl InternalStateEvent from CoreEventMove {
        fn apply(&self, state: &mut InternalState() {....}
    }
    
    t-refactoring s-active 
    opened by ozkriff 3
  • Core: Integration tests

    Core: Integration tests

    Я успел наколбасит достаточно говнокода, что бы уже начать порядочно путаться в нем. Особенно в логике фильтрации событий.

    Наверное, стоит замутить какие-то интеграциооные тесты для ядра, что бы хотя бы в его работе быть более-менее уверенным.

    Смотри https://gist.github.com/ozkriff/eb85dda5b3ec868366a5e5fddbd8acf1 - прям сейчас можно вот такие многословные тесты делать. Надо бы придумать какой-то набор функций, что бы спрятать всякую рутину.

    Было бы круто определять содержимое небольших карт через какое-то такое строковое ascii описание:

    let map = "
    ... ... ... ...
      ... ... ... ...
    ... ... t.. r..
      t.. t.. r.. ..B
    r.A r.. r.. ..C
      ... t.. ... ...
    ";
    
    t-inquiry t-idea 
    opened by ozkriff 2
Releases(v0.1.3)
Owner
Andrey Lesnikóv
Rust enthusiast and hobby game developer. GMT+3
Andrey Lesnikóv
😠⚔️😈 A minimalistic 2D turn-based tactical game in Rust

Zemeroth is a turn-based hexagonal tactical game written in Rust. Support: patreon.com/ozkriff News: @ozkriff on twitter | ozkriff.games | facebook |

Andrey Lesnikóv 1.3k Jan 5, 2023
Fish Game for Macroquad is an online multiplayer game, created as a demonstration of Nakama, an open-source scalable game server, using Rust-lang and the Macroquad game engine.

Fish Game for Macroquad is an online multiplayer game, created as a demonstration of Nakama, an open-source scalable game server, using Rust-lang and the Macroquad game engine.

Heroic Labs 130 Dec 29, 2022
The video game for Fonts of Power. A tabletop roleplaying game made in Rust with Bevy!

The code and rules for Fonts of Power, a tactical TTRPG / video game about exploring magical places. You can follow its development in our Discord ser

null 25 Dec 23, 2022
Red Light, Green Light is a traditional Korean children's game, popularised by the Squid Game TV series.

Red Light, Green Light Red Light, Green Light is a traditional Korean children's game, popularised by the Squid Game TV series. This project is the di

Cedric Chee 1 Jan 10, 2022
A game inspired by the classic atari game: demon attack

rusty_demon_attack A game inspired by the classic atari game: demon attack You can play the game in the web!

null 58 Jan 4, 2023
The classic tetris game written in Rust using ncurses

tetris.rs This is the classic tetris game I wrote to have a bit of fun with Rust. Installation and playing cargo install --

null 71 Jul 25, 2022
Data-oriented and data-driven game engine written in Rust

What is Amethyst? Amethyst is a data-driven and data-oriented game engine aiming to be fast and as configurable as possible. Principles These principl

Amethyst Engine 7.9k Dec 31, 2022
A solver for the popular Wordle game written in Rust.

Wordle Solver A solver for the popular Wordle game written in Rust. It does not attempt to be the most efficient solver possible but tries to avoid us

William Hoggarth 2 Jul 1, 2022
A roguelike game in Rust

A fantasy deathcrawl in Rust Work in progress. To run, with Rust compiler and Cargo package manager installed: cargo run --release When building on W

Risto Saarelma 347 Nov 21, 2022
This is a simple implementation of the classic snake game in rust

My snake game Looks like this. This is with Roboto Mono Nerd Font. If you use a different font it may look different or distorted. Install rust In ord

Konstantinos Kyriakou 16 Apr 4, 2021
A refreshingly simple data-driven game engine built in Rust

What is Bevy? Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever! WARNING Bevy is still in the ve

Bevy Engine 21.1k Jan 3, 2023
Rust library to create a Good Game Easily

ggez What is this? ggez is a Rust library to create a Good Game Easily. The current version is 0.6.0-rc0. This is a RELEASE CANDIDATE version, which m

null 3.6k Jan 4, 2023
Minesweeper game developed with Rust, WebAssembly (Wasm), and Canvas

?? click here to play the game ?? Minesweeper game Revealing all the cells without hitting the mines is the task. Each number in the cell denotes how

Karthik Nedunchezhiyan 23 Dec 28, 2022
Snake Game in rust for the web

About This template shows how to create a web app using Yew and wasm-pack. ?? Usage ??️ Build When building for the first time, ensure to install depe

PsiAphex 1 Oct 24, 2021
A simple power 4 game wrote in Rust.

?? ?? Power 4 This is a simple power 4 game wrote in native Rust. There's only one dependencie for colored terminal. ❓ How to try it? To try this game

null 1 Apr 25, 2022
A finnish version of the word guessing game Wordle implemented in Rust.

Sanuli A finnish version of the word guessing game Wordle implemented in Rust. Live version running at sanuli.fi. Quick start Follow Rust installation

Jaakko Husso 59 Nov 29, 2022
👾 The classic Space Invaders game made in rust!

?? Invaders The classic space-shooter game now in your terminal! And the good part: made in Rust! ❕ This game was made during the course Ultimate Rust

João Augusto Perin 1 Feb 8, 2022
A block game made in Rust and SFML

septadrop A block game made in Rust and SFML. For packaging instructions, see the build folder. Game Controls ??/?? arrow keys: horizontal movement ??

Elnu 1 Dec 19, 2022
🚢 Battleship game implemented in Rust

?? Battleship game implemented in Rust. Fully playable between 2 players on the terminal. To play on the public instance: $ nc battleship.o

Orhun Parmaksız 55 Jan 2, 2023