- Fixed building on Apple Silicon Macbooks.
- OpenAI Gym environment wrappers were updated to the Gym v0.26 API version.
- The pybind11 library and freedoom2.wad are now part of the source release instead of being downloaded during building.
- Added new consts:
DEFAULT_FPS
(=DEFAULT_TICRATE
),DEFAULT_FRAMETIME_S
(=1.0 / DEFAULT_TICRATE
),DEFAULT_FRAMETIME_MS
(=DEFAULT_FRAMETIME_S * 1000
);
- Added a new wrapper for OpenAI Gym.
- Fixed issues with installing/building Python package.
- Fixed support for Python 3.10
- Removed dependency on Numpy and simplified the process of building Windows wheels.
- Added support for tuples and ndarrays as arguments in many functions, where previously only lists were accepted.
- Added
audio_buffer
toState
and related methodsis/setAudioBufferEnabled
,get/setAudioSamplingRate
,get/setAudioBufferSize
.
- Added
save
andload
methods that allow saving/loading game to/from a file.
- Added
viz_bots_path
CVAR that allows specifying path to custom bots configuration.
- Added
is/setObjectsInfoEnabled
,is/setSectorsInfoEnabled
methods to Python and C++ than enable information about all objects or/and sectors (map layout) present in the current episode/level. - Added
objects
andsectors
fields toGameState
in Python and C++.
- Added missing GameVariables introduced in 1.1.5 to Config parser.
- Added missing GameVariables introduced in 1.1.7 to Config parser.
- Added
objectsInfoEnabled/objects_info_enabled
- Dropped support for Python 2.7
- Dropped support for Java bindings
- Dropped support for Lua/Torch bindings
- Added missing
is_multiplayer_game
method to Python and Julia binding.
- Added
VIEW_HEIGHT
,CAMERA_POSITION_X
/Y
/Z
,CAMERA_ANGLE
,CAMERA_PITCH
,CAMERA_ROLL
andCAMERA_FOV
GameVariables.
- Julia binding added.
- Added
getServerState
method that returnsServerState
object.
- Added timeout for network game synchronization controlled by
viz_connect_timeout
CVAR. - Fixed
viz_spectator
CVAR.
- Added Python interpreter version check.
- Added
viz_am_scale
CVAR (CVAR version ofam_scale
CCMD). - Added
viz_am_center
CVAR (andam_center
CCMD).
- Added
getButton
method.
- Added
isRecordingEpisode
andisReplayingEpisode
methods.
KILLCOUNT
counts all kills, including multilayer kills.HITCOUNT
,HITS_TAKEN
,DAMAGECOUNT
,DAMAGE_TAKEN
game variables added.
- Added appending "Dead" prefix to label's name when actor is a corpse.
- Added bounding box information to Label object in
x
,y
,width
andheight
fields. - Added
objectAngle
,objectPitch
,objectRoll
,objectVelocityX/Y/Z
fields to Label object.
- Fixed problem with building on Windows 8.1 and 10.
- Added scripts for downloading freedoom2.wad and assembling Python packages.
- Fixed minor rendering issue in depth and labels buffers.
- Fixed order of color values in
RGB/BGR
modes ofScreenFormat
.
- Added
am_scale
CCMD.
- Fixed
KILLCOUNT
GameVariable for ChainsawMarine indefend_the_center
anddeathmatch
scenarios.
- Ported Python binding to pybind11 as a replacement for Boost.Python.
- Fixed problems with
pip install
detecting Python interpreter, includes and libraries from different Python versions.
- Added
setRenderScreenFlashes
andsetRenderAllFrames
methods. - Added
viz_ignore_render_mode
CVAR which disables overriding rendering settings.
- Added
ANGLE
,PITCH
,ROLL
,VELOCITY_X
/Y
/Z
GameVariables.
- Added support for
DEATHCOUNT
,USER31
-USER60
,PLAYER_NUMBER
,PLAYER_COUNT
,PLAYER1_FRAGCOUNT
-PLAYER16_FRAGCOUNT
,POSITION_X
/Y
/Z
GameVariables in the config file. - Added support for
ALTATTACK
Button in the config file.
- Fixed
makeAction
. - Added missing
POSITION_X
/Y
/Z
Game Variables.
- Added manual GIL management for better performance when used with Python threads.
- Fixed building for Windows 10.
- Added
isMultiplayerGame
method. - Added
viz_respawn_delay
CVAR, which allows controlling the delay between respawns in multiplayer game. - Added
viz_spectator
CVAR which allows connecting to multiplayer game as a spectator. - Maximum number of connected players raised to 16,
PLAYER9_FRAGCOUNT
-PLAYER16_FRAGCOUNT
GameVariables added.
- Added
isRunning
,isDepthBufferEnabled
,isLabelsBufferEnabled
andisAutomapBufferEnabled
missing methods to Python and Lua bindings.
- Added
tic
field. GameVariable.DEATHCOUNT
fixed.
- Fixed crash when calling
getState
in a terminal state.
- Fixed minor memory leak
- Fixed crash when calling
getState
in a terminal state.
- Depth buffer is now a separate buffer in state and
ScreenFormat
values with it were removed -is/setDepthBufferEnabled
added. - Added in frame actors labeling feature -
is/setLabelsBufferEnabled
added. - Added buffer with in game automap -
is/setAutomapBufferEnabled
,setAutomapMode
,setAutomapRoate
,setAutomapRenderTextures
,AutomapMode
enum added.
getState
will now returnnullptr/null/None
if game is in the terminal state.imageBuffer
renamed toscreenBuffer
.- Added
depthBuffer
,labelsBuffer
andautomapBuffer
andlabels
fields.
- The option to use minimal hud instead of default full hud -
setRenderMinimalHud
added. - The option to enable/disable effects that use sprites -
setRenderEffectsSprites
added. - The option to enable/disable in game messages independently of the console output -
setRenderMessages
added. - The option to enable/disable corpses -
setRenderCorpses
added.
- The option to record and replay episodes, based on adapted ZDoom's demo mechanism -
recording
filePath
argument added tonewEpisode
,replayEpisode
added. - The option to replay demo from other players' perspective.
- The option to set number of tics executed per second in ASNYC Modes.
- New
ticrate
optional argument indoomTicsToMs
,msToDoomTics
. doomTicsToSec
andsecToDoomTics
added.
- Paths in config files are now relative to config file.
- setting vizdoom_path and doom_game_path is no longer needed - they default to location(installation) of vizdoom.so.
- ZDoom engine updated to 2.8.1.
- Basic support for multiplayer in PLAYER and SPECTATOR Modes.
- Improved exceptions messages.
- Bugs associated with paths handling were fixed.
- Many minor bugs were fixed.
- Possibility to change scenario wad during runtime (only first map from WAD file).
- Added
viz_debug
CVAR to control some diagnostic messages.
- A lot of overloaded methods turned into a methods with default arguments.
getState()
now returnsGameStatePtr (std::shared_ptr<GameState>)
instead ofGameState
.- Buffers are now copied.
- GameState's buffer has now
ImageBufferPtr (std::shared_ptr<ImageBuffer>)
type -Buffer (std::vector<uint8_t>)
. - GameState's gameVariables are now vector of doubles instead of ints.
- Lua binding added.
- Support for LuaRocks installation for Linux and MacOS.
- GameState buffers type changed to byte[].
- Performance improved.
- Java exceptions handling fixed.
- Few functions fixed.
- Consts added to Python.
- Aliases for
doom_fixed_to_double
-doom_fixed_to_float
added. - Support for pip installation for Linux and MacOS.