May 2018 release
New Levels:
-
DMLab-30.
- contributed/dmlab30/psychlab_arbitrary_visuomotor_mapping
- contributed/dmlab30/psychlab_continuous_recognition
-
Psychlab.
- contributed/psychlab/arbitrary_visuomotor_mapping
- contributed/psychlab/continuous_recognition
New Features:
- 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.
Bug Fixes:
- 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.
Minor Improvements:
- 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'.
Deprecated Features:
- 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.