Thanks! Uh, I'm not good at writing/saying things that are not checked by a compiler. But I'll try to write a blogpost about it.
> AST based, hygenic macros, instead. Well and generics & traits. 99% of the places where C++ programmers use templates, they would use generics in Rust. `template std::vector<T>` <-> `Vec<T>` etc. It's only the niche…
You can still trigger plenty of undefined behaviour in C++11 with no raw pointers. Just one example--iterator invalidation: auto v = std::vector<int> {1, 2, 3} for (auto x : v) { if (x > 0) { v.push_back(-x); } } The…
I mean, the camera handling code is just the tip of the iceberg.
I am hoping it will eventually cover game mechanics, see "Goals (subject to change)". Pull requests welcome!
> How long have you worked on only this project? It's hard to quantify how much time _this_ project took, since when I started a year ago I knew nothing about Doom or Rust. If I started writing it now from scratch, I…
I'm the author, no poo-poo-ing taken. You're completely right. The rendering code is shamelessly unoptimized indeed: doing frustum culling naively actually slows down the code because of the extra draw calls. I could…
It's the same project, I just been keeping it up to date and removed all the unsafe code. It never _needed_ unsafe code, but it was my first Rust project and I didn't know what the hell I was doing---it's now much…
Code which is meant to be piped into bash is generally written as: #!env bash f () { ...code ...code ...code } f Hence a partial stream will do nothing (syntax error, missing brace to be precise).
I agree with many of your points actually. But I wrote the Doom renderer in rust at https://github.com/cristicbz/rust-doom and it's not a port, it's written from scratch based on specs, so maybe your argument is correct…
Doom I/II suggests the whole game is implemented, which isn't. But I am working on it!
You're welcome! :D
Thanks! Uh, I'm not good at writing/saying things that are not checked by a compiler. But I'll try to write a blogpost about it.
> AST based, hygenic macros, instead. Well and generics & traits. 99% of the places where C++ programmers use templates, they would use generics in Rust. `template std::vector<T>` <-> `Vec<T>` etc. It's only the niche…
You can still trigger plenty of undefined behaviour in C++11 with no raw pointers. Just one example--iterator invalidation: auto v = std::vector<int> {1, 2, 3} for (auto x : v) { if (x > 0) { v.push_back(-x); } } The…
I mean, the camera handling code is just the tip of the iceberg.
I am hoping it will eventually cover game mechanics, see "Goals (subject to change)". Pull requests welcome!
> How long have you worked on only this project? It's hard to quantify how much time _this_ project took, since when I started a year ago I knew nothing about Doom or Rust. If I started writing it now from scratch, I…
I'm the author, no poo-poo-ing taken. You're completely right. The rendering code is shamelessly unoptimized indeed: doing frustum culling naively actually slows down the code because of the extra draw calls. I could…
It's the same project, I just been keeping it up to date and removed all the unsafe code. It never _needed_ unsafe code, but it was my first Rust project and I didn't know what the hell I was doing---it's now much…
Code which is meant to be piped into bash is generally written as: #!env bash f () { ...code ...code ...code } f Hence a partial stream will do nothing (syntax error, missing brace to be precise).
I agree with many of your points actually. But I wrote the Doom renderer in rust at https://github.com/cristicbz/rust-doom and it's not a port, it's written from scratch based on specs, so maybe your argument is correct…
Doom I/II suggests the whole game is implemented, which isn't. But I am working on it!
You're welcome! :D