[HN Gopher] Show HN: Iron-Wolf - Wolfenstein 3D source port in Rust
       ___________________________________________________________________
        
       Show HN: Iron-Wolf - Wolfenstein 3D source port in Rust
        
       The goal is to have a pixel, mod-friendly perfect recreation of
       Wolfenstein 3D in Rust.
        
       Author : ragnaroekX
       Score  : 74 points
       Date   : 2026-02-21 15:52 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | vunderba wrote:
       | 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!
        
         | Freak_NL wrote:
         | The flickering happens in Firefox too.
        
         | midzer wrote:
         | 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/
        
         | ragnaroekX wrote:
         | Flickering is fixed now. It was introduced with the late
         | feature of animating BJ face on the start...
        
       | amelius wrote:
       | Wolfenstein is peanuts compared to writing your own doubly linked
       | list.
        
       | klaussilveira wrote:
       | Somewhat related: https://github.com/Henrique194/iron-doom
        
       | xeonmc wrote:
       | Game would be considered too politically incendiary if released
       | today.
        
         | yorwba wrote:
         | 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-...
        
         | legitster wrote:
         | 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.
        
           | TehCorwiz wrote:
           | The first game has zombies with guns in their chest and a
           | mecha hitler.
        
             | bombcar wrote:
             | Someone's not up to date on the History Channel
             | documentaries about WWII!
        
       | beemboy wrote:
       | Sweet memories...
        
       | yuppiepuppie wrote:
       | This is cool! Wolfenstein will always have a place in my heart.
       | 
       | You should add it to https://hnarcade.com
        
       | hexo wrote:
       | again?
        
       | ninkendo wrote:
       | 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:
       | 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 and feng shui all the code to look more
       | like idiomatic rust just to waste some time on a saturday...
        
         | klaussilveira wrote:
         | 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!
        
           | DauntingPear7 wrote:
           | Look into rust iterators and their associated functions for
           | rust specific implementation. Additionally look into
           | functional programming a la lambda calculus and Haskell for
           | the extreme end of this type of programming if you'd like to
           | learn more about it
        
         | derwiki wrote:
         | Sounds like something an LLM agent might be good at?
        
           | ragnaroekX wrote:
           | It probably would. But this port was mostly done to
           | understand Wolfenstein 3D in detail, not for the source port
           | itself. I could have generated big parts of the code. But I
           | would have learning by doing that.
        
         | ragnaroekX wrote:
         | Yes, the code is _very, very_ close to the C-Code. All over the
         | place.
        
         | MaulingMonkey wrote:
         | (equivalent C file: https://github.com/id-
         | Software/wolf3d/blob/master/WOLFSRC/WL... )
         | 
         | > 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...
        
       | hamza_q_ wrote:
       | 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
       | 
       | https://github.com/hamzaq2000/wolf3d-reimpl-rs
        
       | iberator wrote:
       | is it faster than original?
       | 
       | Port it to 286, and then claim RUST victory
        
       | Grimblewald wrote:
       | Oh man for a second i though ironwolf, the vr game, was about to
       | see some love.
        
       | karhuton wrote:
       | Stein means rock. Wolfenstein is something like Wolf's rock.
       | 
       | Eisen means Iron. You could name it Wolfeneisen?
        
       ___________________________________________________________________
       (page generated 2026-02-22 16:01 UTC)