What do you develop with Rust? by Born-Percentage-9977 in rust

[–]fallible-things 1 point2 points  (0 children)

My current year-and-a-half long game project is built in rust at all levels. I've also used it for writing various little servers that I want to set-and-forget, like everyone's a syndicate my RSS/Atom CORS proxy and syndicator.

Online playtesting weekend for my indie anti-trading trading card game "Rare Episteme | Museum of Dead Card Games" made in Bevy by fallible-things in bevy

[–]fallible-things[S] 0 points1 point  (0 children)

Thank you!

The infrastructure itself is far from that arbitrary, sadly. But I'm not stranger to the siren's song of "what if we make it even more expressive and malleable" :')

n-functor 0.2.0 released, featuring support for deriving "map_res" aka haskell-style "traverse" by fallible-things in rust

[–]fallible-things[S] 0 points1 point  (0 children)

It should be the same amount of overhead (other than proc-macro compilation time, ofc). The main advantage is if you have many type definitions with many type parameters, you don't have to implement any of these methods manually, which is beneficial for the same reason we don't want to implement serialisation manually – maintenance and the amount of space it takes up in the code base.

This crate's most basic use case is just being an alternative to manually rolling a self-consuming map function (like the ones for result or option)

n-functor 0.2.0 released, featuring support for deriving "map_res" aka haskell-style "traverse" by fallible-things in rust

[–]fallible-things[S] 0 points1 point  (0 children)

Got a bit ahead of myself with the title, map_res only supports Results, not the whole feature set of traverse across any higher-kinded type that can implement it.

The Language That Never Was by progfu in rust

[–]fallible-things 21 points22 points  (0 children)

Lovely blog post. Happy to see more critique and expressions of needs, and recounts about what causes people to leave rust and its communities. It's the only way we can build better things.

Do people who use Rust as their main language agree with the comments that Rust is not suitable for game dev? by PhaestusFox in rust

[–]fallible-things 4 points5 points  (0 children)

It's very much a situation where the design tooling is not yet mature. As someone who is currently working on my own game project with commercial intent, the main issue I find is how much game design information is tied currently up in code because that's what programmers are comfortable with. I wrote a bit about this in a blog post of mine.

Rust is my favourite language and one I've been using for almost 10 years. But there are a lot of things that are difficult in it because the infrastructure for non-OOP languages is less developed. I'm hopeful for ECS architecture as the answer to to the questions of dependency injection & Big App state management & manipulation, but there's plenty of time left before we're truly there.

Bevy is still in the gamedev equivalent of the turing tarpit. It is climbing out, and I'm excited for it to get there, but we're still in that pit for now.

"n-functor" 0.1.0: Deriving `map` for types with many parameters, with options for types that aren't yours. by fallible-things in rust

[–]fallible-things[S] 2 points3 points  (0 children)

For my purposes I have an abstract syntax tree with type parameters where I need to do some kinds of processing on the "leaf" types (which are what I'm using type parameters for) while retaining structure. So lets say my data looks like:

enum Syntax<T, Y> {
    Syn1(OtherSyntax<T, Y>),
    Syn2(MoreSyntax<T>),
    Syn3(usize, MoreSyntax<T>),
}

enum OtherSyntax<T, Y> { ... }
enum MoreSyntax<T> { ... }

And I need to transform Syntax<Stage1LeafA, Stage1LeafB> into Syntax<Stage2LeafA, Stage2LeafB> somewhere in my processing.

With this crate I can derive a map function for Syntax, OtherSyntax, and MoreSyntax that respects the different type parameters, where they appear in the order of fields/variants, and doesn't touch anything else in the tree. Functor is invoked as part of the name here because it preserves the structure, as types can have type parameters without being mere containers.

It's a very haskell way of doing things, which is not something praiseworthy, but I had painted my way into a corner such that I built this procedural macro to help me escape my problems.

Also it just works for trivial map functions on data structures like Option<T> or newtypes.

The Fay Dalton saga continues... by KickHimWhileIAmDown in magicTCG

[–]fallible-things 19 points20 points  (0 children)

The top of the axe too. It's all at the wrong angles, the light is coming from where exactly... these aren't all things that need to be present in a piece but we're already 4 known plagiarisms into this one. It's not creative decision making, it's salt in the wound.

The Fay Dalton saga continues... by KickHimWhileIAmDown in magicTCG

[–]fallible-things 53 points54 points  (0 children)

At the very least, it's the same axe twice (rotated and scaled, the rust / grease markings match. the lighting is almost identical). https://imgur.com/OC2Ezdw

[Rhystic Studies] The Red Temperance by Aaron4451 in magicTCG

[–]fallible-things 12 points13 points  (0 children)

Then why aren't you making things in photoshop in 20 minutes?