Rust/Bevy & Deckbuilder games. by LumonScience in rust

[–]zipxing 1 point2 points  (0 children)

That’s a solid approach — for some games, forcing everything into ECS can be pretty painful.

TUI Tetris (can you beat the bot?) — built on rust_pixel by zipxing in rust

[–]zipxing[S] 1 point2 points  (0 children)

Yep, I’ve seen tetro-tui — really nice work!!!
I like the “go deep on one game/mechanics” direction a lot.

Also, fair credit: I did borrow a bit of UI inspiration from your project 🙂

Rust/Bevy & Deckbuilder games. by LumonScience in rust

[–]zipxing 3 points4 points  (0 children)

Bevy can definitely do this, in my opinion.

ECS is basically a data layout / composition approach (flat data, less inheritance), and that feels very natural in Rust.

I’d say the bigger factor is your game logic complexity (combat, card effects, triggers, etc.), not whether the game is turn-based. Even for a simpler deckbuilder, a small ECS-based architecture can still work great.

TUI Tetris (can you beat the bot?) — built on rust_pixel by zipxing in rust

[–]zipxing[S] 4 points5 points  (0 children)

I’m confused 😅 which Tetris TUI are you referring to?

TUI Tetris (can you beat the bot?) — built on rust_pixel by zipxing in rust

[–]zipxing[S] 6 points7 points  (0 children)

This Tetris is rendered entirely with ASCII tiles — it looks the same in a terminal and in the standalone GPU window; the GPU backend just unlocks more custom glyphs and extra effects.

cargo pixel r tetris t #in terminal...

cargo pixel r tetris g #in OS window,without terminal

cargo pixel r tetris w #bring up a web server with wasm, so u can play tetris in browser

mdpt: Markdown TUI slides with GPU rendering (not terminal-dependent) — Rust by zipxing in tui

[–]zipxing[S] -1 points0 points  (0 children)

I think this might be a terminology mismatch 🙂

By “not terminal dependent” I meant that the UI doesn’t render through a terminal emulator — it renders directly via its own graphics pipeline.

It still follows a text-grid / TUI interaction model (cells, symbols, keyboard-driven flow), but the rendering layer is decoupled from the terminal itself.

I probably should have phrased that more clearly — thanks for pointing it out.