Doom - Das Spiel und warum es ein Engineering Meisterwerk ist
Das Spiel Doom beschäftigt viele Software-Entwickler*innen auch noch 31 Jahren nach seiner Veröffentlichung im Jahre 1993. Die Frage “Can it run Doom?” ist allgegenwärtig. Es ist eine Art Sport geworden, das Spiel auf jede Art von Device zu portieren. Doom läuft inzwischen auf einem John Deere Trecker, einem Satelliten und einem digitalen Schwangerschaftstest.
Doch was macht dieses Spiel so interessant?
Warum wird genau dieses Spiel für die Portierung genutzt?
Welche bahnbrechenden Implementierungsdetails haben John Carmack, John Romero und das Team verbaut?
Das war meine Ausgangsfrage. Das Resultat? Ein tiefes Loch voller Wow und WTF-Momente. Und diese Podcast-Episode. Es geht um Zufallszahlengeneratoren, Grafik-Engines, Doom-Fun-Facts, Doom Forks und wie du deinen eigenen Doom-Port erstellen kannst.
Bonus: Ist es eine Herausforderung ein Device zu finden, das Doom nicht laufen lassen kann?
Unsere aktuellen Werbepartner findest du auf https://engineeringkiosk.dev/partners
Das schnelle Feedback zur Episode:
Feedback
- EngKiosk Community: https://engineeringkiosk.dev/join-discord
- Buy us a coffee: https://engineeringkiosk.dev/kaffee
- Email: [email protected]
- LinkedIn: https://www.linkedin.com/company/engineering-kiosk/
- Mastodon: https://podcasts.social/@engkiosk
- Twitter: https://twitter.com/EngKiosk
Gerne behandeln wir auch euer Audio Feedback in einer der nächsten Episoden, einfach die Audiodatei per Email an [email protected].
Links
- Doom: https://de.wikipedia.org/wiki/Doom
- Doom-Engine: https://de.wikipedia.org/wiki/Doom-Engine
- Doom SourceCode: https://github.com/id-Software/DOOM/tree/master
- Doom Zufallszahlen-Tabelle: https://github.com/id-Software/DOOM/blob/a77dfb96cb91780ca334d0d4cfd86957558007e0/linuxdoom-1.10/m_random.c#L31
- Entfernung von zufälligkeit bei Doom: https://jmtd.net/log/deterministic_doom/
- LMP / LUMP-Files: https://doomwiki.org/wiki/LMP
- Doom Replay Editor: https://test.doomworld.com/forum/topic/112543-how-to-use-xdre-tas-information/
- Raycasting: https://de.wikipedia.org/wiki/Raycasting
- Playing Video Games One Frame at a Time - Ólafur Waage - NDC TechTown 2023: https://www.youtube.com/watch?v=Z1Nf8KcG4ro
- Running DOOM on a satellite: https://www.youtube.com/watch?v=zthssUIFG6c
- Tweet that Doom runs in Space: https://x.com/olafurw/status/1741071775356637413
- Source Code of Dooms Port für OPS-SAT: https://github.com/olafurw/opssat-doom/
- GameNGen: Google-Forscher simulieren "Doom" ohne Engine: https://www.heise.de/news/GameNGen-Google-Forscher-simulieren-Doom-ohne-Engine-9851001.html
- The Doom Bible: https://5years.doomworld.com/doombible/
- Chocolate Doom: https://www.chocolate-doom.org/
- Crispy Doom: https://fabiangreffrath.github.io/crispy-homepage/
- ZDoom: https://zdoom.org/index
- GZDoom: https://github.com/ZDoom/gzdoom
- C++ Doom: https://github.com/patricia-gallardo/cpp-doom
- List of Doom ports: https://en.wikipedia.org/wiki/List_of_Doom_ports
- Von Legostein bis Schwangerschaftstest: „Doom“ läuft wirklich überall: https://t3n.de/news/doom-laueft-ueberall-sammlung-lego-zocken-fps-gaming-1320291/
- Doom-Captcha: https://vivirenremoto.github.io/doomcaptcha/
- Doom Engine Code Review: https://fabiensanglard.net/doomIphone/doomClassicRenderer.php
- How Much of a Genius-Level Move Was Using Binary Space Partitioning in Doom?: https://twobithistory.org/2019/11/06/doom-bsp.html
- Sub-Reddit “It runs Doom”: https://www.reddit.com/r/itrunsdoom/
- Sub-Reddit “Doom”: https://www.reddit.com/r/Doom/
- Buch “Game Engine Black Book: DOOM: v1.2” → https://www.amazon.de/Game-Engine-Black-Book-DOOM/dp/B0BMSP3GSS/ref=sr_1_1
- Buch “Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture”: https://www.amazon.de/Masters-Doom-Created-Transformed-Culture/dp/0812972155
- Approval Testing: https://approvaltests.com/
- Doom Generic: https://github.com/ozkl/doomgeneric
- Doom auf einer Canon-Kamera: https://www.reddit.com/r/itrunsdoom/comments/mcgphm/managed_to_run_doom_on_camera/
- Doom auf einem Thermomix-Clone: https://www.reddit.com/r/itrunsdoom/comments/by5x1n/oc_made_a_thermomix_clone_run_doom_with_a_friend/
- Doom auf einem Laufband: https://www.reddit.com/r/itrunsdoom/comments/fnj43o/doom_on_a_nordictrack_treadmill/
- Doom auf einem iPod: https://www.reddit.com/r/itrunsdoom/comments/egqyqj/doom_on_my_ipod/
- Computer-System vom John Deere Traktor: https://www.reddit.com/r/itrunsdoom/comments/wociaz/the_hacker_known_as_sick_codes_has_successfully/
- Doom auf einer Ikeas Trådfri-Lampe: https://t3n.de/news/ikea-tradfri-lampe-doom-zocken-1384849/
- Doom auf einem digitalen Schwangerschaftstest: https://x.com/Foone/status/1302820468819288066
- Doom auf einem Satelliten: https://x.com/olafurw/status/1741071775356637413
- Roomba-Staubsauger erstellt Doom-Maps: https://richwhitehouse.com/index.php?postid=72
- Can Grafana run Doom?: https://grafana.com/blog/2022/03/31/can-grafana-run-doom/
Sprungmarken
(00:00:00) Die Faszination um das Spiel Doom
(00:04:20) Werbung/Info
(00:05:20) Was ist Doom?
(00:09:21) Was ist Doom technisch?
(00:12:15) Architektur: Trennung von Engine und Daten
(00:14:58) Determinismus und der Zufall
(00:21:07) Aufzeichnung der Benutzer-Eingaben und Multiplayer
(00:30:19) Grafik-Engine: Visible Surface Determination, Raytracing und Binary Space Partitioning
(00:45:30) Doom-Ports und die Weiterentwicklung des Spiels
(00:53:12) Can it run Doom?
Hosts
- Wolfgang Gassler (https://mastodon.social/@woolf)
- Andy Grunwald (https://twitter.com/andygrunwald)
Feedback
- EngKiosk Community: https://engineeringkiosk.dev/join-discord
- Buy us a coffee: https://engineeringkiosk.dev/kaffee
- Email: [email protected]
- LinkedIn: https://www.linkedin.com/company/engineering-kiosk/
- Mastodon: https://podcasts.social/@engkiosk
- Twitter: https://twitter.com/EngKiosk