AnnoDomine

AnnoDomine

Port Wolfenstein3D (MS-DOS, C) to Rust (Cross-OS, Controller-Support)

Hi there.

First of all, my name is Dominic. I am a software developer from Germany.

This project is about converting/porting id Software’s Wolfenstein 3D from C into Rust.

The GitHub repository is public: GitHub - AnnoDomine/wolf3d: The original open source release of Wolfenstein 3D · GitHub
There you can follow the progress step by step.


Vision

I am relatively new to Rust and am becoming more and more a fan of it.
As I like dev videos on YouTube, I saw a lot of “code-review” videos of the Doom code.
But Doom is not the only masterpiece from id. They have created tons of awesome games within the Wolfenstein series, and especially Wolfenstein 3D.
I thought about diving deep into the Wolfenstein 3D C code, extracting every single line and definition, comparing 1st- and 3rd-party libs, and rewriting Wolfenstein 3D in Rust.

What can I say, from vision to decision :slight_smile:

Tech Stack

I do not think I have to talk a lot about the tech stack. I mean, we have C as the base language and Rust as the target language.
So our tech stack is:

  • C
  • Rust

Roadmap

Basically, there is no specific roadmap. There is more of a goal list which defines each single major integration:

  1. Initialize the project
  2. Bring the first picture
  3. Main menu and settings
  4. Keyboard input (incl. controller support) and sound
  5. We can see, we can walk, we can shoot (Dev room)
  6. Level 1 - ready - fight
  7. Enemies everywhere
  8. Now I can kill and interact with the environment
  9. Rest of the levels
  10. German censorship (as it was in the 90s)
  11. Thoughts about the project, what I learned, and possible improvements

What’s next

I created this post to document the single steps. I do not know how often I will update this post and how often I can work on this project.

First Post!

AstonJ

AstonJ

Nice! :023:

Where Next?

Popular Game Dev topics Top

AstonJ
Not sure how much I missed but: Anyone else been watching it?
New
bot
A new item has been posted: This thread was posted automatically, if you feel it could be in a better category and are at Trust Level ...
New
New
AstonJ
https://www.powerlanguage.co.uk/wordle/ You have to start by entering a word (rather than just random characters) Here’s today’s (...
New
First poster: bot
Develop for Playdate. It’s yellow. It fits in your pocket. There’s a crank. It comes with 24 free games to get you started. Say hi to Pl...
New
mollyerin
Which operating system should I choose for gaming? I’ve been using Windows since I started, but now I’m wondering about switching to Luni...
New
RobertRichards
Waste Racer It is a waste disposal game application. The game involves collecting roadside garbage and putting them inside a moving bin....
New
New
Enoch_Kouichi
How i implement the programming syntax in 2D game sense? like mecanics, enemies, itens, weapons, resources, game power-ups, and money in-...
New
grearch
So l dont know how many of you know dragon ball but this is a hypothetical game that has to do with the dragon ball series.I want to tell...
New

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1063 24245 395
New
New
Exadra37
Please tell us what is your preferred monitor setup for programming(not gaming) and why you have chosen it. Does your monitor have eye p...
New
PragmaticBookshelf
From finance to artificial intelligence, genetic algorithms are a powerful tool with a wide array of applications. But you don't need an ...
New
AstonJ
There’s a whole world of custom keycaps out there that I didn’t know existed! Check out all of our Keycaps threads here: https://forum....
New
AstonJ
I’ve been hearing quite a lot of comments relating to the sound of a keyboard, with one of the most desirable of these called ‘thock’, he...
New
PragmaticBookshelf
Author Spotlight Mike Riley @mriley This month, we turn the spotlight on Mike Riley, author of Portable Python Projects. Mike’s book ...
New
husaindevelop
Inside our android webview app, we are trying to paste the copied content from another app eg (notes) using navigator.clipboard.readtext ...
New
PragmaticBookshelf
Get the comprehensive, insider information you need for Rails 8 with the new edition of this award-winning classic. Sam Ruby @rubys ...
New
PragmaticBookshelf
Overarching tutorial for Python beginner and intermediate developers that teaches web development with the Flask framework. Miguel Gr...
New