- Improve documentation of how to configure non-hermetic dependencies (Lua, Python, NumPy).
- Add 'allowHoldOutLevels' setting to allow running of levels that should not be trained on, but held out for evaluation.
- Add logging library 'common.log', which provides the ability to control which log messages are emitted via the setting 'logLevel'.
- Update the ioq3 upstream code to the latest state.
- Lua 5.1 is now downloaded and built from source, and is thus no longer a required local dependency.
- A minimal version of the "realpath" utility is now bundled with the code, and thus "realpath" is no longer a required local dependency.
- Prevent missing sounds from causing clients to disconnect.
- Fix a bug in the call of the theme callback 'placeFloorModels', which had caused an "'index' is missing" error during compilation of text levels with texture sets that use floor models, such as MINESWEEPER, GO, and PACMAN.
-
Psychlab.
- contributed/psychlab/glass_pattern_detection
- contributed/psychlab/landoltC_identification
- contributed/psychlab/motion_discrimination{,_easy}
- contributed/psychlab/multiple_object_tracking{,_easy}
- contributed/psychlab/odd_one_out
- Let Python level cache set to
Nonemean the same as not setting it at all. - Change Python module initialization in Python-3 mode to make PIP packages work in Python 3.
- Add support for absl::variant to lua::Push and lua::Read.
- The demo
:gamehas a new flag--start_indexto start at an episode index other than 0. - Add a console command
dm_pickupto pick up an item identified by itsid. - More Python demos and tests now work with Python 3.
- Add a shader for rendering decals with transparency.
-
DMLab-30.
- contributed/dmlab30/psychlab_arbitrary_visuomotor_mapping
- contributed/dmlab30/psychlab_continuous_recognition
-
Psychlab.
- contributed/psychlab/arbitrary_visuomotor_mapping
- contributed/psychlab/continuous_recognition
- Support for level caching for improved performance in the Python module.
- Add the ability to spawn pickups dynamically at arbitrary locations.
- Add implementations to read datasets including Cifar10 and Stimuli.
- Add the ability to specify custom actions via 'customDiscreteActionSpec' and 'customDiscreteAction' callbacks.
- Fix playerId and otherPlayerId out by one errors in 'game_rewards.lua'.
- Require playerId passed to
game:addScoreto be one indexed instead of zero indexed and allowgame:addScoreto be used without a playerId. game:renderCustomViewnow renders the view with top-left as the origin. The previous behaviour can be achieved by calling reverse(1) on the returned tensor.- Fix a bug in image.scale whereby the offset into the data was erroneously ignored.
- Fix a typo in a
requirestatement in visual_search_factory.lua. - Fix a few erroneous dependencies on Lua dictionary iteration order.
game:AddScorenow works even on the final frame of an episode.
- Moved .map files into assets/maps/src and .bsp files into assets/maps/built. Added further pre-built maps, which removes the need for the expensive :map_assets build step.
- Allow game to be rendered with top-left as origin instead of bottom-left.
- Add 'mixerSeed' setting to change behaviour of all random number generators.
- Support for BGR_INTERLEAVED and BGRD_INTERLEAVED observation formats.
- Add a Lua API to load PNGs from file contents.
- Add 'eyePos' to playerInfo() for a more accurate eye position of player. Used in place of player pos + height.
- Add support for absl::string_view to lua::Push and lua::Read.
- Allow player model to be overridden via 'playerModel' callback.
- Add ability to specify custom actions via 'customDiscreteActionSpec' and 'customDiscreteAction' callbacks.
- Add
game:consolecommand to issue Quake 3 console commands directly. - Add
clampto tensor operations. - Add new callback
api:newClientInfo, allowing each client to intercept when players are loading. - Skymaze level generation is now restricted to produce only 100000 distinct levels. This allows for caching to avoid expensive recompilations.
- Add cvars 'cg_drawScriptRectanglesAlways' and 'cg_drawScriptTextAlways' to enable script rendering when reducedUI or minimalUI is enabled.
- All pickup types can now choose their movement type separately, and in particular, all pickup types can be made static. Two separate table entries are now specified for an item, 'typeTag' and 'moveType'.
- Observation format names
RGB_INTERLEAVEDandRGBD_INTERLEAVEDreplaceRGB_INTERLACEDandRGBD_INTERLACED, respectively. The old format names are deprecated and will be removed in a future release. - The pickup item's
tagmember is now calledmoveType. The old name is deprecated and will be removed in a future release.
-
DMLab-30.
- contributed/dmlab30/rooms_collect_good_objects_{test,train}
- contributed/dmlab30/rooms_exploit_deferred_effects_{test,train}
- contributed/dmlab30/rooms_select_nonmatching_object
- contributed/dmlab30/rooms_watermaze
- contributed/dmlab30/rooms_keys_doors_puzzle
- contributed/dmlab30/language_select_described_object
- contributed/dmlab30/language_select_located_object
- contributed/dmlab30/language_execute_random_task
- contributed/dmlab30/language_answer_quantitative_question
- contributed/dmlab30/lasertag_one_opponent_small
- contributed/dmlab30/lasertag_three_opponents_small
- contributed/dmlab30/lasertag_one_opponent_large
- contributed/dmlab30/lasertag_three_opponents_large
- contributed/dmlab30/natlab_fixed_large_map
- contributed/dmlab30/natlab_varying_map_regrowth
- contributed/dmlab30/natlab_varying_map_randomized
- contributed/dmlab30/skymaze_irreversible_path_hard
- contributed/dmlab30/skymaze_irreversible_path_varied
- contributed/dmlab30/psychlab_sequential_comparison
- contributed/dmlab30/psychlab_visual_search
- contributed/dmlab30/explore_object_locations_small
- contributed/dmlab30/explore_object_locations_large
- contributed/dmlab30/explore_obstructed_goals_small
- contributed/dmlab30/explore_obstructed_goals_large
- contributed/dmlab30/explore_goal_locations_small
- contributed/dmlab30/explore_goal_locations_large
- contributed/dmlab30/explore_object_rewards_few
- contributed/dmlab30/explore_object_rewards_many
- Basic support for demo recording and playback.
- Add a mechanism to build DeepMind Lab as a PIP package.
- Extend basic testing to all levels under game_scripts/levels.
- Add settings
minimalUIandreducedUIto avoid rendering parts of the HUD. - Add
teleportedflag togame:playerInfo()to tell whether a player has teleported that frame. - Add Lua functions
countEntitiesandcountVariationsto the maze generation API to count the number of occurrences of a specific entity or variation, respectively. - Add ability to switch/select gadget via actions. Actions are available when
enabling flags
gadgetSelectand/orgadgetSwitch.
- Fix out-of-bounds access in Lua 'image' library.
- Fix off-by-one error in renderergl1 grid mesh rendering.
-
Psychlab, a platform for implementing classical experimental paradigms from cognitive psychology.
- contributed/psychlab/sequential_comparison
- contributed/psychlab/visual_search
- Extend functionality of the built-in
tensorLua library. - Add built-in
imageLua library for loading and scaling PNGs. - Add error handling to the env_c_api (version 1.1).
- Add ability to create events from Lua scripts.
- Add ability to retrieve game entity from Lua scripts.
- Add ability create pickup models during level load.
- Add ability to update textures from script after the level has loaded.
- Add Lua customisable themes. Note: This change renames helpers in
maze_generationto be in lowerCamelCase (e.g.MazeGeneration->mazeGeneration). - The directory
game_scriptshas moved out of theassetsdirectory, and level scripts now live separately from the library code in thelevelssubdirectory.
- Remove unnecessary dependency of map assets on Lua scripts, preventing time-consuming rebuilding of maps when scripts are modified.
- Add ability to disable bobbing of reward and goal pickups.
- The setting
controls(with valuesinternal,external) has been renamed tonativeApp(with valuestrue,false, respectively). When set totrue, programs linked againstgame_lib_sdlwill use the native SDL input devices. - Change LuaSnippetEmitter methods to use table call conventions.
- Add config variable for monochromatic lightmaps ('r_monolightmaps'). Enabled by default.
- Add config variable to limit texture size ('r_textureMaxSize').
- api:modifyTexture must now return whether the texture was modified.
- Add ability to adjust rewards.
- Add ability to raycast between different points on the map.
- Add ability to test whether a view vector is within an angle range within a oriented view frame.
- Increase current score storage from short to long.
- Fix ramp jump velocity in level lt_space_bounce_hard.
- Fix Lua function 'addScore' from module 'dmlab.system.game' to allow negative scores added to a player.
- Remove some undefined behaviour in the engine.
- Reduce inaccuracies related to angle conversion and normalization.
- Behavior of team spawn points now matches that of player spawn points. 'randomAngleRange' spawnVar must be set to 0 to match previous behavior.