Show HN: Iron-Wolf – Wolfenstein 3D source port in Rust (github.com) 88 points by ragnaroekX 4mo ago ↗ HN The goal is to have a pixel, mod-friendly perfect recreation of Wolfenstein 3D in Rust.
[–] vunderba 4mo ago ↗ 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!
[–] amelius 4mo ago ↗ Wolfenstein is peanuts compared to writing your own doubly linked list. [–] teleforce 4mo ago ↗ Not sure about that, but these are an awesome tutorials on linked list and related exercise problems [1],[2].It's an old website for C programming from Stanford Uni by Nick Parlante [3].For full blown treatment on linked list and doubly linked list please check this an excellent book Pointers on C by Kenneth Reek (1998) [4].[1] Linked List Basicshttp://cslibrary.stanford.edu/103/[2] Linked List Problems:http://cslibrary.stanford.edu/105/[3] Essential C:http://cslibrary.stanford.edu/101/[4] Pointers on C:https://archive.org/details/pointersonc0000reek [–] cstrahan 4mo ago ↗ I think they are likely referring to doubly linked lists in Rust, specifically.See, for example:https://rust-unofficial.github.io/too-many-lists/https://news.ycombinator.com/item?id=22390662
[–] teleforce 4mo ago ↗ Not sure about that, but these are an awesome tutorials on linked list and related exercise problems [1],[2].It's an old website for C programming from Stanford Uni by Nick Parlante [3].For full blown treatment on linked list and doubly linked list please check this an excellent book Pointers on C by Kenneth Reek (1998) [4].[1] Linked List Basicshttp://cslibrary.stanford.edu/103/[2] Linked List Problems:http://cslibrary.stanford.edu/105/[3] Essential C:http://cslibrary.stanford.edu/101/[4] Pointers on C:https://archive.org/details/pointersonc0000reek [–] cstrahan 4mo ago ↗ I think they are likely referring to doubly linked lists in Rust, specifically.See, for example:https://rust-unofficial.github.io/too-many-lists/https://news.ycombinator.com/item?id=22390662
[–] cstrahan 4mo ago ↗ I think they are likely referring to doubly linked lists in Rust, specifically.See, for example:https://rust-unofficial.github.io/too-many-lists/https://news.ycombinator.com/item?id=22390662
[–] xeonmc 4mo ago ↗ Game would be considered too politically incendiary if released today. [–] c-hendricks 4mo ago ↗ Today? It's been criticized for almost a decadehttps://steamcommunity.com/app/612880/discussions/0/14708409...https://www.newstatesman.com/science-tech/2017/06/alt-right-...
[–] c-hendricks 4mo ago ↗ Today? It's been criticized for almost a decadehttps://steamcommunity.com/app/612880/discussions/0/14708409...https://www.newstatesman.com/science-tech/2017/06/alt-right-...
[–] yuppiepuppie 4mo ago ↗ This is cool! Wolfenstein will always have a place in my heart.You should add it to https://hnarcade.com
[–] ninkendo 4mo ago ↗ 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... [–] yndoendo 4mo ago ↗ I actually find 1:1 to be helpful when learning a language.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 => ....);
[–] yndoendo 4mo ago ↗ I actually find 1:1 to be helpful when learning a language.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 => ....);
[–] hamza_q_ 4mo ago ↗ 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 codehttps://github.com/hamzaq2000/wolf3d-reimpl-rs
[–] Grimblewald 4mo ago ↗ Oh man for a second i though ironwolf, the vr game, was about to see some love.
[–] karhuton 4mo ago ↗ Stein means rock. Wolfenstein is something like Wolf’s rock.Eisen means Iron. You could name it Wolfeneisen?
16 comments
[ 3.3 ms ] story [ 38.7 ms ] thread- 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!
It's an old website for C programming from Stanford Uni by Nick Parlante [3].
For full blown treatment on linked list and doubly linked list please check this an excellent book Pointers on C by Kenneth Reek (1998) [4].
[1] Linked List Basics
http://cslibrary.stanford.edu/103/
[2] Linked List Problems:
http://cslibrary.stanford.edu/105/
[3] Essential C:
http://cslibrary.stanford.edu/101/
[4] Pointers on C:
https://archive.org/details/pointersonc0000reek
See, for example:
https://rust-unofficial.github.io/too-many-lists/
https://news.ycombinator.com/item?id=22390662
https://steamcommunity.com/app/612880/discussions/0/14708409...
https://www.newstatesman.com/science-tech/2017/06/alt-right-...
You should add it to https://hnarcade.com
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:
vshttps://github.com/hamzaq2000/wolf3d-reimpl-rs
Port it to 286, and then claim RUST victory
Eisen means Iron. You could name it Wolfeneisen?