PRODUCTgithub.com6 min read

Play DOOM in Your Terminal Using cURL

Play DOOM in Your Terminal Using cURL

AI Summary

Experience the classic game DOOM right in your terminal using cURL and bash, without any installations or dependencies. This innovative setup streams DOOM frames as ANSI half-blocks over HTTP, allowing you to play directly from your terminal. There are two ways to dive into this retro gaming experience: the friendly way, using a simple bash script, or the masochistic way, relying solely on cURL commands.

## How It Works

The friendly method involves fetching a script that runs the game loop, handling keystrokes, and managing terminal settings. A browser accessing the same URL will see a landing page with a one-liner to start the game. For those who prefer a challenge, the masochistic method uses a single streaming HTTP request to send keystrokes and receive game frames, requiring manual terminal mode adjustments.

## Customization and Controls

Players can customize their screen size by specifying columns and rows in the URL. The game defaults to a 15 fps frame rate, ensuring smooth gameplay even on slower terminals. Controls are intuitive, with familiar keys for movement, firing, and interacting with the game environment.

## Server Setup

To host the game, you'll need Node.js, a C compiler, and the doomgeneric source code. Once set up, the server runs on localhost, ready to stream DOOM to any connected terminal. The server efficiently manages sessions, downsampling frames to fit terminal dimensions and maintaining smooth gameplay.

## Why DOOM?

The project is a testament to the enduring appeal of DOOM, showcasing its adaptability and the creativity of its community. By leveraging modern tools like Node.js and cURL, this project breathes new life into a classic game, making it accessible in a novel and engaging way.

Key Concepts

Streaming HTTP

Streaming HTTP is a technique that allows continuous data transmission over a single HTTP connection, enabling real-time data exchange between a client and server.

Terminal Emulation

Terminal emulation refers to the process of mimicking a traditional computer terminal within a software environment, enabling text-based interactions with a remote server or application.

Category

Games
M

Summarized by Mente

Save any article, video, or tweet. AI summarizes it, finds connections, and creates your to-do list.

Start free, no credit card