Difference between revisions of "Mocha Doom"

From DoomWiki.org

[unchecked revision][checked revision]
(Ported the page from the old wiki as-is)
 
(Fix wl, fmtg, add cat)
 
(16 intermediate revisions by 11 users not shown)
Line 1: Line 1:
'''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 [http://mochadoom.sourceforge.net/stark-src.zip STARK engine] and [http://java-emu.emuunlim.com/doomcott/doom.html 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 [http://doom.wikia.com/wiki/Doom_source_code Doom source code], or on a recreation using a different engine, but is actually a manual, hand-optimized translation and adaptation of the original.
+
{{InfoboxSoftware
 +
|title = Mocha Doom
 +
|logo =
 +
|standard = [[Doom]]
 +
|developer = Velktron a.k.a. Maes, [[axdoomer]]
 +
|baseparent = [[Linux Doom]], [[Boom]]
 +
|initialversion = Techdemo 1.1
 +
|initialdate = 2011-07-25
 +
|programming language = {{wp|Java (programming language)|Java}}
 +
|status = Active
 +
|platform = Java Runtime Environment
 +
|language = English (US)
 +
|license = {{wp|GNU General Public License|GPLv3}}
 +
|website = http://mochadoom.sourceforge.net/ [https://sourceforge.net/projects/mochadoom/ SourceForge project page]
 +
|repotype = {{wp|CVS}}
 +
|repourl = [http://mochadoom.cvs.sourceforge.net/mochadoom/ SourceForge]
 +
|ircchannel =
 +
}}
 +
'''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 [http://mochadoom.sourceforge.net/stark-src.zip 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 ==
 
== Aims and goals ==
 
 
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.
 
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 ==
 
== Current status and features ==
 +
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|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.
  
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|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.{{cite web|author=[[axdoomer]]|title=|url={{dwforums|95296|Mocha Doom is not dead}}|publication=[[Doomworld forums]]|publishdate=30 July 2017|accessdate=19 January 2024}}
  
 
== New/improved features ==
 
== New/improved features ==
 
 
* 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.
 
* 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.
+
* High resolutions and fullscreen mode.
* Most map format and internal engine limits are removed.
+
* Most map format and [[static limits|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.
 
* 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#Trivia|automap strobe effect]].
+
* 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#Trivia|automap strobe effect]].
== Future developments ==
+
* HiColor mode (inspired by the [[alpha]] feature) and TrueColor modes.
 +
* Ability to load files from URLs and to open [[WAD]]s embedded in a ZIP.
  
 +
=== Future developments ===
 
Mocha Doom is currently in Alpha stage and under active development, even though playable. Future features will include:
 
Mocha Doom is currently in Alpha stage and under active development, even though playable. Future features will include:
* Sound subsystem (introduced in v1.5)
+
* [[DeHackEd]] patch compatiblity (being worked on)
* DEHACKED patch compatiblity (being worked on)
 
 
* Ability to use sprites/flats in PWADs without resource merging
 
* Ability to use sprites/flats in PWADs without resource merging
 
* Support for Boom map format and gameplay features
 
* Support for Boom map format and gameplay features
 
* Console-like configuration system.
 
* Console-like configuration system.
* Support for arbitrary screen resolutions and full-screen modes.
+
* Support for arbitrary screen resolutions
  
==External links==
+
== External links ==
* [http://sourceforge.net/projects/mochadoom Mocha Doom's sourceforge website]
+
* [https://sourceforge.net/projects/mochadoom Mocha Doom's sourceforge website]
 
* [http://mochadoom.sourceforge.net/ Mocha Doom's website]
 
* [http://mochadoom.sourceforge.net/ Mocha Doom's website]
* [http://mochadoom.cvs.sourceforge.net/viewvc/mochadoom/ Mocha Doom CVS repository]{{s-start}}{{s-port}}{{s-bef|before=[[Linux Doom]]}}{{s-ttl|title=Mocha Doom}}{{s-non|reason=None}}{{s-end}}
+
* [http://mochadoom.cvs.sourceforge.net/viewvc/mochadoom/ Mocha Doom CVS repository]
 +
* [https://github.com/AXDOOMER/mochadoom GitHub repository] by axdoomer
 +
 
 +
== References ==
 +
<references />
 +
 
 +
{{s-start}}
 +
{{s-port}}
 +
{{s-bef|before=[[Linux Doom]]}}
 +
{{s-ttl|rows=2|title=Mocha Doom}}
 +
{{s-non|rows=2|reason=None}}
 +
{{s-bef|before=[[Boom]]}}
 +
{{s-end}}
 +
 
 +
[[Category:Doom ports]]
 +
[[Category:Source ports by name]]

Latest revision as of 03:02, 24 January 2024

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 http://mochadoom.sourceforge.net/ SourceForge project page
Source Repository

(CVS)

SourceForge

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]

References[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
Boom