Show HN: Q3Edit – Edit and play Quake 3 maps in the browser
Q3Edit: Browser-Based Quake 3 Map Creation
Q3Edit is a comprehensive web-based toolset designed to let users edit, compile, and play Quake III Arena maps directly within their browser. It eliminates the need for complex local installations, allowing for a seamless transition from design to gameplay.
"Edit, compile, and play Quake III maps in your browser."
🛠️ Technical Architecture
The application leverages modern web technologies to bring legacy game development tools to the browser. You no longer need to install heavy SDKs locally.
| Component | Technology Used | Purpose |
|---|---|---|
| Editor Core | TypeScript + WebGL2 | Rendering and UI logic |
| Compiler | q3map (via WebAssembly) | Converting .map to BSP |
| Game Engine | ioquake3 (via WebAssembly) | Real-time map playback |
| Assets | OpenArena | Default textures and models |
🚀 The Development Workflow
The process is streamlined into a three-step pipeline:
📋 Key Capabilities
The editor supports the full suite of traditional Quake 3 mapping elements:
- Brushes: Basic 3D geometry.
- Patches: Planar surfaces.
- Entities: Game objects and spawns.
- Terrain: Specialized landscape tools.
- CSG: Constructive Solid Geometry operations.
🖥️ User Interface & Navigation
Q3Edit utilizes a classic Radiant-style four-view interface. This allows the creator to manipulate objects across different planes of existence, defined mathematically as:
The viewport is divided as follows:
- XY Top: Overhead view.
- XZ Front: Frontal elevation.
- YZ Side: Profile view.
- 3D Camera: Perspective preview.
💻 Implementation Detail
The editor handles standard .map files. A simplified representation of the data structure might look like this in the backend:
interface MapEntity {
type: string;
origin: [number, number, number];
keyValues: Record<string, string>;
}
By shipping with OpenArena assets, the tool is ready to use immediately upon launch—no external game files are required to get started.