Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust
github.com50 points by ragnaroekX 7 hours ago
50 points by ragnaroekX 7 hours ago
The goal is to have a pixel, mod-friendly perfect recreation of Wolfenstein 3D in Rust.
Was 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: 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! Cool! I did an incomplete version in Rust a while back as well. Not a source port, tried to recreate the game from scratch myself, without looking at the C src code Game would be considered too politically incendiary if released today. Or the other way around. Wolfenstein 3D was first banned in Germany in 1994, but unbanned in 2018: https://arstechnica.com/gaming/2018/08/german-ratings-board-... 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. This is cool! Wolfenstein will always have a place in my heart. You should add it to https://hnarcade.com Nice 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! Can confirm the flicker. I did a WASM port of the shareware from https://github.com/fabiangreffrath/wolf4sdl playable at https://midzer.de/wasm/wolfenstein/
ninkendo - 3 hours ago
When typically in rust this is just: let mut found_info = None;
for info in &STAT_INFO {
if info.kind == item_type {
found_info = Some(info);
break;
}
}
Now I want to go through and feng shui all the code to look more like idiomatic rust just to waste some time on a saturday... let found_info = STAT_INFO.iter().find(|info| info.kind() == item_type);
klaussilveira - 2 hours ago
hamza_q_ - 3 hours ago
xeonmc - 5 hours ago
yorwba - 4 hours ago
legitster - 4 hours ago
yuppiepuppie - 4 hours ago
vunderba - 6 hours ago
midzer - 2 hours ago