What's everyone working on this week (12/2020)?

New week, new Rust! What are you folks up to?

Still working on Von Neumann Defense Force. Improvements since last week include:

  • Various cleanups
  • Implementation of a more accurate numerical integration method (leading to much better path prediction)
  • A camera that follows your ship (the perspective was completely static before)
  • Zooming of said camera

Hey mate. I cloned your project and I'm trying to run it. But I get the following error:

name@MacBook-Pro-van-Name vndf-tests % cargo run
error: failed to parse manifest at `/Users/name/School/Rust/VNDF/vndf/Cargo.toml`

Caused by:
  feature `profile-overrides` is required

this Cargo does not support nightly features, but if you
switch to nightly channel you can add
`cargo-features = ["profile-overrides"]` to enable this feature

in vndf-test

Thanks for the interest!

I think you just need to upgrade to a newer Rust version. Profile overrides were made stable in one of the recent releases.

If you don't want to upgrade, you can make it work by removing these two lines, which will work just as well, at the cost of reduced performance when compiling without --release: https://github.com/hannobraun/vndf/blob/e0ae2ca83be8e850c237e13472d57388d33978ce/Cargo.toml#L19-L20

1 Like

Hahah damn! That's a cool game! Let us know when the test-server is more stable so I'm able to fight other people with my ship. :wink:

Thank you! Personally I think it's more a collection of partially broken mechanics instead of a game, but I'm glad you like it :slight_smile:

I'll keep posting here about my progress. I need to build a continuous deployment pipeline, so the test server and the repository are always in sync.

I worked on a new release of my Rust implementation of Physical Based Rendering:

https://www.rs-pbrt.org/blog/v0-8-1-release-notes/

I've been putting more work into my online set searcher for the Monster Hunter video games. It's a toy utility with some bits of JavaScript calling into a Rust-based WebAssembly module that does all the heavy lifting of the searches in its own Web Worker. Since I needed to get it up and running in a hurry (before the latest game came out), a few parts of the codebase wound up with sub-optimal implementations that I'd been meaning to get around and fix.

Since I'd been passing around the queries and results to JavaScript using JSON-encoded strings (because JavaScript has very fast, built-in JSON.parse() and JSON.stringify() functions), I'd been using the plain json crate and doing a lot of deserialization/serialization using a bunch of ad-hoc functions. But now I've managed to cull about 200 lines of that sort of code by switching over to Serde. I was initially concerned I'd need to write some messy custom serialization routines for a few types, however by using the "from", "try_from" and "into" container attributes, I got the whole thing ported over without any custom serialization whatsoever.

Another victim of my early haste was punting to the use of Rc pointers early on for references to elements I expected to be frequently cloned. But now that I have a better handle on using lifetimes correctly, I've finally gotten around to pulling out nearly all those Rc pointers and replaced them with proper references with lifetimes.

It's not much, but it's been a gratifying experience turning a messy and unsightly codebase into one that's a lot smaller and cleaner than it was when I started. And I've learned a lot about the language in the process.

1 Like

I released the 0.2.0 and 0.2.1 of yew_styles which I implemented navbar. Now I'm working in create unit tests for yew_styles components: