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
Anything stand out for anyone? A few live-streams out there:
New
First poster: bot
Sony Unveils ‘Spatial Reality Display’ with Eye-tracking for Glasses-free 3D Viewing. Sony recently unveiled Spatial Reality Display, a ...
New
Jsdr3398
I just had a random thought come to my head: is there something like pygame for Elixir? Would Elixir be better or worse for game dev?
New
Norpoleon
Team JethKo - Knee Deep is a detective adventure with role-playing elements & turn-based combat. What started as a small project tur...
New
m0dE
Modd.io is a collaborative game editor that runs in the browser. It’s like Figma for game dev. We made this engine low-code and multipla...
New
Margaret
Just saw a link to this on Mastodon and thought all you DevTalk gamers and game designers out there would like this bit of good news:
New
HuntzUdwn
Hello everyone, I am a Student at CSUDH and was wondering about how to become a game developer. I would like to contact a developer and a...
New
bic
Hello everybody :slight_smile: I’m making a tool with the goal to help creating branching dialogues for game development. I want to make...
New
AkilarLiao
Hello Devtalk Community, I’m sharing a GPU-Driven Procedural Grass System for Unity URP, heavily optimized for mobile. Key Features &amp...
New
BlobDev
Hi, so i know that python is a better first language but I read that it’s not mainly used for game development so I wondered if c# was be...
New

Other popular topics Top

PragmaticBookshelf
Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! In just a couple of weeks, build a ray tracer that r...
New
PragmaticBookshelf
Rust is an exciting new programming language combining the power of C with memory safety, fearless concurrency, and productivity boosters...
New
dimitarvp
Small essay with thoughts on macOS vs. Linux: I know @Exadra37 is just waiting around the corner to scream at me “I TOLD YOU SO!!!” but I...
New
DevotionGeo
The V Programming Language Simple language for building maintainable programs V is already mentioned couple of times in the forum, but I...
New
PragmaticBookshelf
Programming Ruby is the most complete book on Ruby, covering both the language itself and the standard library as well as commonly used t...
New
AstonJ
If you’re getting errors like this: psql: error: connection to server on socket “/tmp/.s.PGSQL.5432” failed: No such file or directory ...
New
PragmaticBookshelf
An illustrated guide to understanding and effectively using regular expressions. Staffan Nöteberg To effectively use regular expressi...
New
Fl4m3Ph03n1x
Background Lately I am in a quest to find a good quality TTS ai generation tool to run locally in order to create audio for some videos I...
New
PragmaticBookshelf
As digital systems increasingly run the world, mastery of the recurring patterns of software development risk is the key to fast and effe...
New
pragdave
Build robust LLM-powered apps, chatbots, and agents while mastering AI engineering principles that will help you outlast the tools and th...
New