Mocha Doom


Mocha Doom
Standard Doom
Codebase Linux Doom, Boom
Developer(s) Velktron a.k.a. Maes, axdoomer
Initial release Techdemo 1.1 (2011-07-25, 12 years ago)
Latest release 1.6 alpha (2012-11-09, 11 years ago)
Development status Active
Written in Java
Target Platform Java Runtime Environment
Available in English (US)
License GPLv3
Website SourceForge project page
Source Repository



Mocha Doom is a Doom source port written in pure Java by Velktron (Maes). It is the first source port of Doom based on a managed language to reach functional status, unlike the STARK engine and DoomCott that came before it. It is also the first non-C/C++/Delphi port of Doom not to be based on virtualization or cross-compilation of the Doom source code, or on a recreation using a different engine, but is actually a manual, hand-optimized translation and adaptation of the original.

Aims and goals[edit]

Mocha Doom aims at providing a more modern codebase for Doom, of which still retains much of the original functionality yet is more developer friendly and better suited to modern development techniques and languages. Being it written in pure Java, it does away with Doom's traditional C/C++ memory model and Zone Memory system, has a clearer API and object oriented organization, and is more easily portable into non-C languages than the linuxdoom original, upon which it is largely based.

Current status and features[edit]

Mocha Doom reached fully playable status in June 2011 with version 1.4a, after nearly a year of development. It is compatible with all major IWADs and the majority of vanilla PWADs. Since it's otherwise based on a direct translation of the original linuxdoom source code to Java, it retains much of the original's functionality and behavior, including some of its bugs (e.g. the ghost monster bug). In its current version, it's mainly a vanilla compatible/limit removing port, with some unique features of its own. The codebase is for the most part converted from linuxdoom, with bug fixes, elements from Boom, Eternity Engine and others being progressively introduced.

After the project had gone idle, it was resumed by Alexandre-Xavier Labonté-Lamoureux (axdoomer) in July 2017.[1]

New/improved features[edit]

  • Unique cross-platform compatibility. Mocha Doom works and is playable on Windows, Mac OSX and several Linux distros, and potentially any platform with a Java Runtime Environment without recompilation or adaptations.
  • High resolutions and fullscreen mode.
  • Most map format and internal engine limits are removed.
  • Huge blockmaps are supported without trace overflows.
  • The first port of Doom ever to feature an optional multithreaded renderer for texture columns and visplanes.
  • Ability to load/save games in vanilla Doom format, and reconstruct infighting targets even from old Doom savegames.
  • The only port currently re-enabling (optionally) the disabled automap strobe effect.
  • HiColor mode (inspired by the alpha feature) and TrueColor modes.
  • Ability to load files from URLs and to open WADs embedded in a ZIP.

Future developments[edit]

Mocha Doom is currently in Alpha stage and under active development, even though playable. Future features will include:

  • DeHackEd patch compatiblity (being worked on)
  • Ability to use sprites/flats in PWADs without resource merging
  • Support for Boom map format and gameplay features
  • Console-like configuration system.
  • Support for arbitrary screen resolutions

External links[edit]


  1. axdoomer (30 July 2017). Mocha Doom is not dead. Doomworld forums. Retrieved 19 January 2024.
Source code genealogy
Based on
Linux Doom
Mocha Doom None
Based on