Earlier quoted context omitted.
Wolfenstein 3D was pretty squarely a WWII fantasy shooter. Only later does it get into the alternate history post-war stuff which does get somewhat more squarely political. I think it cuts both ways. The Wolfenstein franchise has obviously relished in violence against Nazis, but also inadvertently is part of the trend of glorifying them.
The first game has zombies with guns in their chest and a mecha hitler.
Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
21–30 of 32 posts
Re: Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
#22Port it to 286, and then claim RUST victory
Re: Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
#23Re: Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
#24Was this translated automatically from C? I picked a spot totally at random and saw in https://github.com/Ragnaroek/iron-wolf/blob/main/src/act1.rs in place_item_type: let mut found_info = None; for info in &STAT_INFO { if info.kind == item_type { found_info = Some(info); break; } } When typically in rust this is just: let found_info = STAT_INFO.iter().find(|info| info.kind() == item_type); Now I want to go through a…
> Was this translated automatically from C?
I'll note that when I convert code between languages, I often go out of my way to minimize on-the-fly refactoring, instead relying on a much more mechanical, 1:1 style. The result might not be idiomatic in the target language, but the bugs tend to be a bit fewer and shallower, and it assists with debugging the unfamiliar code when there are bugs - careful side-by-side comparison will make the mistakes clear even when I don't actually yet grok what the code is doing.
That's not to say that the code should be left in such a state permanently, but I'll note there's significantly more changes in function structure than I'd personally put into an initial C-to-Rust rewrite.
The author of this rewrite appears to be taking a different approach, understanding the codebase in detail and porting it bit by bit, refactoring at least some along the way. Here's the commit that introduced that fn, doesn't look like automatic translation to me: https://github.com/Ragnaroek/iron-wolf/commit/9014fcd6eb7b10...
Re: Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
#25Was this translated automatically from C? I picked a spot totally at random and saw in https://github.com/Ragnaroek/iron-wolf/blob/main/src/act1.rs in place_item_type: let mut found_info = None; for info in &STAT_INFO { if info.kind == item_type { found_info = Some(info); break; } } When typically in rust this is just: let found_info = STAT_INFO.iter().find(|info| info.kind() == item_type); Now I want to go through a…
As a non-Rust guy, I keep writing the example above. I didn't even know about the second option! If you do that, please share a link so I can learn from you! This is awesome!
Re: Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
#26Nice job. Couple notes for the web version: - Once started the shareware game on Chromium browsers seems to flicker like crazy which displays the "B.J. Blazkowicz" face. - You missed adding the classic code that everyone knows, M-L-I!
Re: Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
#27Was this translated automatically from C? I picked a spot totally at random and saw in https://github.com/Ragnaroek/iron-wolf/blob/main/src/act1.rs in place_item_type: let mut found_info = None; for info in &STAT_INFO { if info.kind == item_type { found_info = Some(info); break; } } When typically in rust this is just: let found_info = STAT_INFO.iter().find(|info| info.kind() == item_type); Now I want to go through a…
Sounds like something an LLM agent might be good at?
Re: Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
#28Eisen means Iron. You could name it Wolfeneisen?
Re: Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
#29Was this translated automatically from C? I picked a spot totally at random and saw in https://github.com/Ragnaroek/iron-wolf/blob/main/src/act1.rs in place_item_type: let mut found_info = None; for info in &STAT_INFO { if info.kind == item_type { found_info = Some(info); break; } } When typically in rust this is just: let found_info = STAT_INFO.iter().find(|info| info.kind() == item_type); Now I want to go through a…
How debug-able is the internals of the rust lambda version?
I will often write the code so I can simply insert a break point for debugging versus pure anonymous and flow-style functions.
C# example:
#if DEBUG
const string TestPoint = "xxxx";
#endif
var filtered = items.Where(x =>
{
#if DEBUG
if (x.Name == TestPoint)
x.ToString()
#endif
.....
});
vs var filtered = items.Where(x => ....);Re: Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
#30Game would be considered too politically incendiary if released today.
https://steamcommunity.com/app/612880/discussions/0/14708409...
https://www.newstatesman.com/science-tech/2017/06/alt-right-...