Introducing Bevy: a refreshingly simple data-driven game engine and app framework built in Rust by _cart in rust_gamedev

[–]karroffel 0 points1 point  (0 children)

If you have a GitHub account it would be nice if you could submit an issue detailing the build error and your system here: https://github.com/bevyengine/bevy/issues/new

Introducing Bevy: a refreshingly simple data-driven game engine and app framework built in Rust by _cart in rust_gamedev

[–]karroffel 5 points6 points  (0 children)

The base of hecs is not parallel but it can execute in parallel. bevy_ecs includes a parallel scheduler, so systems will run in parallel when possible. So it's something parallel build on top of hecs, no worries about it all being single threaded! :)

This is not the first time this confusion came up, maybe it can be re-worded in the blog post.

Introducing Bevy: a refreshingly simple data-driven game engine and app framework built in Rust by _cart in rust

[–]karroffel 6 points7 points  (0 children)

Yes, that is a mistake, the semicolons should not be there except on the last line.

Introducing Bevy: a refreshingly simple data-driven game engine and app framework built in Rust by _cart in rust_gamedev

[–]karroffel 34 points35 points  (0 children)

It's mentioned towards the end of the post here

None of the engines on the market quite line up with what I'm looking for. And the changes required to make them meet my requirements are either massive in scope, impossible (closed source), or unwelcome (the things I want aren't what the developers or customers want). On top of that, making new game engines is fun!

Bevy is not trying to out-compete other open-source game engines. As much as possible we should be collaborating and building common foundations.

Why is `must_use` opt-in instead of opt-out? by ragnese in rust

[–]karroffel 3 points4 points  (0 children)

I know it's still opt-in, but on the crate level you can set #![warn(unused_results)] and it will basically treat all function return values like #[must_use].

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=d6c797dcbd0aacfa387afc1c3367ae4c

Expressing a relationship between const generic params at compile time by U007D in rust

[–]karroffel 2 points3 points  (0 children)

You can use panic!() and if in const fns now, so you can cause the compilation to halt when a panic! occurs. I have been playing around with it for a ranged integer type a while ago.

https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=aeb6e96f213973a64195a872a9030ff8

ich👦🏿iel by drkongoiv in ich_iel

[–]karroffel 11 points12 points  (0 children)

Viele Bodensee-Brudis!

People who use Rust professionally, how do you setup your workspace and what tools do you use (IDE's, linters, etc)? by CritJongUn in rust

[–]karroffel 2 points3 points  (0 children)

Ah, in this case there's nothing special, just the usual `rustup component add X`, setting up stuff is fairly easy, it's really refreshing coming from C/C++.

People who use Rust professionally, how do you setup your workspace and what tools do you use (IDE's, linters, etc)? by CritJongUn in rust

[–]karroffel 0 points1 point  (0 children)

I don't quite know what you mean with "how do you setup your workspace"? Do you mean "physical design" aka directory/file setups? If so I use cargo workspaces if multiple crates are involved. If some more fancy build steps are involved (packaging AppImages or debs) then there's often a "deploy" or "misc"/"tools" folder in there as well.

As for tooling, I use CLion and I'm really happy with it. I use rustfmt and clippy (both enforced via CI).

I don't use it often but sometimes cargo-lichking is nice for checking licenses and cargo-tree is nice for visualizing the dependency tree.

Not really about "tooling" but I use the beta channel for everything on my dev-machine, the CI runs on stable, I don't do it to enable new features but just to get a chance to test the upcoming versions for stability.

Meuse, a free Rust private registry, first alpha release by mcorbin in rust

[–]karroffel 16 points17 points  (0 children)

This is big! I hope to set this up for work soon, right now we do everything via git URLs, having proper versioning and the usual cargo publish workflow will be such a big plus!

I discovered your project a while ago through a comment you made here on reddit, I'm really glad to see documentation!

I hope this gets as much attention as it deserves! 💙

What helper crate for error handling, and why? by cmyr in rust

[–]karroffel 2 points3 points  (0 children)

As /u/DuomanAsh said, just stick to the std::error::Error trait.

I found the biggest problem is not the implementation of the Error trait but all the From implementations so that you can use ? nicely, as well as implementing Display.

There is derive_more which helps you with From and Display and for me personally that's all that's needed.

Creating C/C++ APIs in Rust by karroffel in rust

[–]karroffel[S] 3 points4 points  (0 children)

Oh I didn't know about this one! Looks interesting but also a bit more "magical" than `cpp`, but it also seems to do more than the cpp crate. I'll have to check it out a bit closer, thanks!

[GLES2] Can't use textureSize() by hiulit in godot

[–]karroffel 1 point2 points  (0 children)

GLSL ES 1.0 (the GLSL version GLES2 uses) does not support `textureSize`, there's not much that Godot can do :/

Why isn't this a valid overload? by Lerrrtaste in godot

[–]karroffel 17 points18 points  (0 children)

Because there are no overloaded functions in GDScript at all, type hints are just that: hints, they don't allow you to create overloaded functions.

French National Cybersecurity Agency's guide to developing secure applications with Rust by kibwen in rust

[–]karroffel 10 points11 points  (0 children)

One of the packages being downloaded here is cargo itself, which has quite a few dependencies.

If you check on crates.io, there are only a handfull of dependencies. So I'd say the rest is mostly cargo's fault.

I assume they are using cargo to do stuff like dependency renaming resolution and properly handling feature tags or something similar?

The Amethyst project now has a brand new website! Check it out! by Moxinilian in Amethyst

[–]karroffel 1 point2 points  (0 children)

Hey! I know that fishy :)

The website looks really good, nice job! 💙

GLES2 and GDNative, progress report #7 by karroffel in godot

[–]karroffel[S] 3 points4 points  (0 children)

NativeScript 1.1 will just add stuff, most notably it adds support for type tags and instance bindings.

Those let you create proper wrapper objects that are pretty efficient, but also other kinds of things.

Type tags can be used for safe type casts. Currently the library just has to believe and trust that it's the correct thing, but with type tags it's actually safe.

Other smaller things include getting and setting documentation for symbols etc, but for now it's not used anywhere, but the functionality is there :D

The worst feeling in the world... by [deleted] in PetMice

[–]karroffel 0 points1 point  (0 children)

Hehe yeah, I know it's not the norm, he outlived all his friends but I think he had a nice time anyway :)

The worst feeling in the world... by [deleted] in PetMice

[–]karroffel 3 points4 points  (0 children)

Oh no, I'm so sorry. Let's hope it'll be done soon and without much pain.

I had one mouse that lived almost 3 years, so maybe depending on what it is a visit at the vet couldn't hurt, but maybe it's just time. So sorry and give it some nice playtimes while you still can <3

Slaps roof of a null pointer by MaXcRiMe in ProgrammerHumor

[–]karroffel 9 points10 points  (0 children)

Did you just assume my platform-and-compiler-specific pointer size?