Skip to content

drdator/q3edit

Repository files navigation

Q3Edit

Q3Edit is a work-in-progress Quake III Arena map editor that runs entirely in the browser with WebGL2. It supports editing .map files, brush and patch geometry, entities, textures, terrain, and client-side BSP compilation.

Open Q3Edit

Q3Edit showing its four editing viewports and side panels

Features

  • Four Radiant-style 2D and 3D editing viewports
  • Brush, patch, clipping, CSG, vertex, terrain, and transform tools
  • Entity editing and target/path visualization
  • Local .map file loading and saving
  • Browser-local PK3 management with ordering and enable/disable controls
  • OpenArena textures by default, with optional retail Quake III PK3 files
  • q3map compiled to WebAssembly for client-side BSP, VIS, and light stages
  • ioquake3 compiled to WebAssembly for playing compiled maps in the editor

Q3Edit is under active development. Save important work frequently and keep copies of your source .map files.

Development

Requirements:

  • Node.js 22 or newer
  • A modern browser with WebGL2
  • curl, unzip, and shasum to prepare OpenArena assets
  • Git, CMake, and Emscripten 5.0.3 to build the WebAssembly tools

Install dependencies and prepare the default texture assets:

npm ci
npm run assets:openarena

Start the Vite development server:

npm run dev

The OpenArena PK3 files are generated under public/openarena/ and ignored by Git. Retail Quake III PK3 files are never part of the repository: users select them from the editor, and Q3Edit stores them only in that browser.

Builds

Build the TypeScript/Vite application:

npm run build

Build a complete deployable dist/, including q3map JavaScript and WebAssembly:

npm run build:release

The q3map port and its provenance are documented in q3map-compiler/README.md. The browser player uses a pinned, unmodified ioquake3 revision. Build and source details are documented in public/ioquake3/SOURCE.md.

To build only the browser ioquake3 runtime for local development:

npm run build:ioq3

AWS deployment

The repository includes an AWS CloudFormation template for a private S3 bucket, CloudFront, ACM, and Route 53. The deploy script derives the bucket from the active AWS account and discovers the CloudFront distribution by domain alias.

AWS_PROFILE=your-profile npm run deploy

The following environment variables override discovery when needed:

  • Q3EDIT_DOMAIN (default: q3edit.com)
  • Q3EDIT_S3_BUCKET
  • Q3EDIT_CLOUDFRONT_DISTRIBUTION_ID

The deploy script requires the generated OpenArena archives and runs the full release build before uploading.

Licensing and game data

Q3Edit is licensed under GPL-2.0-or-later. See LICENSE and THIRD_PARTY_NOTICES.md.

The q3map compiler is derived from id Software's GPL source release, and the browser player is built from ioquake3's GPL source. Quake III Arena retail game data is not included. OpenArena default content is prepared from the upstream OpenArena 0.8.8 release; its source and license information are in public/openarena/OPENARENA.md.

Q3Edit is an independent community project and is not affiliated with or endorsed by id Software or Bethesda Softworks.

About

Browser-based Quake III Arena map editor with WebGL2 and client-side BSP compilation.

Resources

License

Stars

17 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors