What's everyone working on this week (22/2019)?

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

Porting my game to use rendy. It runs on both Windows and Linux already, but automated tests aren’t working yet:

  • segfaults on Windows CI due to issues with memory (de)allocation and threading (as imposed by cargo test).
  • segfaults on Linux from my user’s command line, not sure why.
  • fails to detect Vulkan on Linux CI – haven’t figured out how to tell the headless service to use it, though it’s available.
3 Likes

Reading https://www.manning.com/books/deep-learning-and-the-game-of-go – anyone want to work on a Rust impl?

Just released version 0.1.1 of my XV hex viewer, that adds highlighting for bytes that change after a reload, and for the target byte of a go to.

Next up is expanding that infrastructure for selecting and copying text or data to the clip board on various platforms.

1 Like

I just finished writing a tutorial on making Rust apps extensible with Rust plugins:

Rendered Page

Many thanks to @Michael-F-Bryan for the plugin section in his Rust FFI Guide.

2 Likes

Finally, I worked not on rs-pbrt for a couple of days:

https://www.janwalter.org/jekyll/blender/rust/blendinfo/2019/05/28/blend_info.html

Some Rust code to explore binary Blender files …

2 Likes

I will adapt the backend api for https://gloria-kwok.com made in rust to services others portfolios

Trying to get an executable running on an arm target. No success yet.

I just released a driver for AD983x waveform generators / DDS. As an example application I wrote a simple MIDI player that plays Beethoven’s Ninth Symphony using a STM32F3Discovery board.
Check out the video here :smiley:

1 Like

Tracked down Redox-os and see lots of potential for it. Currently, I’m thinking about how the Worlds concept (in the OMeta sense) could be leveraged within Redox-os. I imagine programs passing usable Worlds between each other rather than text streams; possibly over networks as well…

All in all though, exploring the language and community! Just arrived a day or two ago :slight_smile:

2 Likes

I finished porting my python Dense Visual Odometry to Rust. It was part of my Master’s Thesis. The paper I based it on iis linked in the repo. In contrast to most academic source code I tried to keep naming and functions as intuitive as possible.

In my spare time, I’m continuing to develop and improve my browser-based, casual, multiplayer game (early access at https://alpha.sneakysnake.io), which is written mostly in Rust (and a bit of Typescript). I’m currently adding webgl text rendering for player names that hover over player’ heads.

I was stuck for several hours trying to understand why texSubImage2D was complaining about not having the right amount of data for some glyphs but not others (when updating a glyph atlas cache texture). Eventually I come to realize (through trial and error) that texSubImage2D can only update regions that are aligned to 4x4 texel boundaries. This seems to be due to a misreading of the spec (for uncompressed textures), but since all browsers seem to require it, I have no choice but to implement it… So that’s my next step.

3 Likes

Hi scottjmaddox ! Any more details of implementing? Crates of uses? Source code? How u write game logic/loop/ etc
Please more!

Thanks for asking! The game “engine” is all from scratch. My approach has been heavily influenced by Casey Muratori’s Handmade Hero project (I highly recommend checking it out if you haven’t already). All data structures are specific to the problem they’re trying to solve. Rendering is raw WebGL calls from the web-sys crate (or OpenGL calls from the gl crate for the native prototyping client). I’m using WebRTC data channels for low latency (unreliable) data transfer; I wrote the WebRTC data channel server basically from scratch, just using mio and openssl. I am using actix-web for the HTTP server , though (and for the client in the match making server).

Once I’m ready to market the game, I’ll likely write some blog posts about the implementation. One trick I came up with, in particular, for debugging the network code would, I suspect, be useful for others. In short, I kept the client and server in a single process and used a shader to do a visual diff of them. This tool proved critical for eliminating desync bugs.

It’s pretty much all closed source, at least for now. I’m hoping to turn it into a profitable business in the near future. I do have a rust-game-boilerplate repo on my github that’s open source. And when I have time, I’ll likely open source some of the packages, such as the one I wrote for doing markov-chain asymmetric numeral system entropy encoding (i.e. compression).

2 Likes

Trying to figure out how to replace sysfs::gpio with the newer API. A previous developer used this API and it now generating errors for some strange reason, when it wasn’t generating any errors a few weeks ago…

Stumped once again… :frowning: