Skip to content

Releases: microsoft/malmo

0.19.0

23 Dec 20:00
Compare
Choose a tag to compare

Changes:

New features:

  • Multi-agent scenario reworked - now possible to run multi-agents in an offline LAN setting, so no authentication required.
  • Version checking - schemas, mod and platform must all have the same version number.
  • Time-based rewards. (#126)
  • Discrete jumpuse action (great for nerd poling). (#400)
  • Team rewards - agents can now work in teams, and share rewards with each other. (#279)
  • Discrete strafe and jump actions, autojump and autofall. (#352, #321)
  • Simple animation decorator - have fun animating blocks... (#389)
  • Boost can now be linked statically, and these release binaries have done so. (#392)

Breaking changes:

Hopefully nothing... but the work on version checking is fairly drastic - if versions don't match, fatal errors will be thrown. This should allow everyone to catch potentially confusing version mismatch errors straight away; keep an eye out for error messages!

Linking statically with boost is also a fairly major change to the releases. It should put an end to errors like #427, #395, #179 etc.etc. If building from source, boost can be linked dynamically as before.

Which version?

Unless you want to use the Arcade Learning Environment, avoid the _withALE builds.
The Redhat build was made with Fedora 23 but may work with other Redhat flavors.
The Ubuntu 16 build was built (statically) against boost 1.62.

0.18.0

19 Oct 16:39
Compare
Choose a tag to compare

Changes:

It's a while since we've built a release, so quite a lot has gone into 0.18...

New features:

  • Build battles - added RewardForStructureCopying and BuildBattleDecorator. (#337)
  • WorldTime and TotalTime added to ObservationFromFullStats. (#262)
  • Agent can now quit by using MissionQuitCommands. (#170)
  • Python sample to test initial chunk loading. (#338)
  • Added startAtWithPitchAndYaw to API. (#295)
  • Greater control over drawing of rails and stairs. (#323)
  • Entities can now be placed by DrawingDecorator. (#322)
  • ObservationFromGrid has new optional attribute absoluteCoords for fixed-location grids. (#293)

Fixes:

  • Three second grace period on spawning removed. (#88)
  • AbsoluteMovementCommands can now teleport outside the current chunk. (#353)
  • FileWorldGenerator load issue + file_test.py to test fix. (#342)
  • Weather is periodically reset to mission requirements. (#264)
  • ContinuousMovementCommands now allow the setting of yaw/pitch by Discrete or Absolute movement commands. (#255)
  • Continuous-mode use/attack weren't correctly triggering rewards for discarding/collecting items. (#303)
  • Discrete-mode use/attack weren't correctly triggering rewards for discarding/collecting items. (#297)

Breaking changes:

Most of these are subtle changes which are unlikely to affect anyone, but they do carry the potential to change results / break existing code:

  • Fix: The centre of the grid observation was being rounded to the nearest int in the y-axis. (#370)

    This will change your results for cases where the agent is in between blocks in the y-axis, eg if they are jumping / falling / climbing stairs. The grid observation will now be centred on floor(y) rather than floor(y+0.5)

  • Fix: temp folder and "mission_recordings" now removed from path of files in recordings. (#298)

    This means the folder structure of your mission recording files has changed - if you've written any automated tools for parsing recordings, you may need to tweak them.

  • New: AbsoluteMovementCommands tpx, tpy, tpz now applied immediately.

    Previously you could combine these commands by sending them immediately after each other - eg to teleport from the current location to (4,200,12) you could send:

    tpx 4
    tpy 200
    tpz 12
    

    and (most of the time) all three actions would be applied together at the next tick. In fact, in previous versions there was no other way to do this, since we hadn't provided a tp x y z command.
    This latest change, however, means that each individual action will be applied consecutively, so if the agent starts at, say, (16,32,64), they will now visit the intermediate points (4,32,64) and (4,200,64) before arriving at (4,200,12).

  • Fix: Extra block properties returned by ObservationFromRay are now prefixed with "prop_" to prevent collisions. (#355)

  • New: Mission worlds are now deleted after use unless destroyAfterUse is false. (#76)

    The default is for destroyAfterUse to be true - so, by default, starting with this version, any Minecraft saved worlds that get created to run the mission will eventually be deleted again after use. (Previous saved worlds won't be touched, and your own worlds should be safe.) If you rely on your saved worlds hanging around, make sure you explicitly set this flag in your XML.

Which version?

Unless you want to use the Arcade Learning Environment, avoid the _withALE builds.
The Redhat build was made with Fedora 23 but may work with other Redhat flavors.
The Ubuntu 16 build was built against boost 1.61; if you still have boost 1.58 installed then use the Ubuntu 15 build.

0.17.0

16 Aug 16:48
Compare
Choose a tag to compare

Changes:

Fix: Discrete use and attack now affect the inventory. (#247)
Fix: Rewards would occasionally get doubled. (#275)
Fix: Stopped mobs spawing illegally. (#280)
New: Added has_mission_begun flag to world state, to solve problems with short missions. (#118, #236)
Fix: [BREAKING CHANGE] Rewards now sent as simple strings rather than XML, for speed - changes recorded rewards format. (#261)
New: ALEAgentHost.setSeed allows ALE experiments to be seeded. (#254)
Fix: No longer need a fresh MissionRecordSpec for each call to startMission. (#256)
New: [BREAKING CHANGE] MissionRecordSpec.getTemporaryDirectory() now moved to AgentHost.getRecordingTemporaryDirectory().
New: MALMO_TEMP_PATH environment variable now used to determine where temp recording files are created. (#21)
New: TimestampedFrame now includes xPos,yPos,zPos,yaw and pitch information. (#257, #250, #231)

Which version?

  • Unless you want to use the Arcade Learning Environment, avoid the _withALE builds.
  • If you are on Ubuntu 16.04 then you can use the 15.10 release.
  • The Redhat build was made with Fedora23 but may work with other Redhat flavors.

Breaking changes:

  • If you are parsing the rewards.txt in the saved .tgz mission record, then you will need to change the parser to use the new non-XML format of dimension:value pairs as comma-separated <int>:<float>.
  • If you are using MissionRecordSpec.getTemporaryDirectory() then you will need to change it to be AgentHost.getTemporaryDirectory()

0.16.1

03 Aug 15:01
Compare
Choose a tag to compare
0.16.1 Pre-release
Pre-release

Some necessary changes to the ALE wrapping.

0.16.0

29 Jul 15:58
Compare
Choose a tag to compare

Changes:

New: DiscreteCommandHandler now supports AgentQuitFromTouchingBlockType and RewardForTouchingBlockType. (#241)
New: MissionSpec has get/setSummary, getListOfCommandHandlers, getAllowedCommands. (#217)
New: DiscreteCommandHandler now supports attack and use commands. (#219)
New: Bonus - added AllowedMobs to ServerInitialConditions to control which mobs are allowed to spawn (does not affect mob_spawners)
New: Bonus - can now draw mob_spawner blocks and specify the entity they spawn as a variant.
New: ObservationFromRay returns info about nearest block/item/entity in the agent's direct line of sight. (#184)
Fix: RewardForDiscardingItem/RewardForCollectingItem now work with variations, colours etc.
Fix: Inventory and Entity observations now return information in the same format we use to specify things (eg Type, Variation, Colour)
New: More types supported in BlockDrawing, Inventory initialisation etc - see FlowerTypes, EntityTypes, MonsterEggTypes
New: AgentQuitFromCollectingItem (#171)
New: ObservationsFromFullStats now additionally returns Air (#214)
New: Cross-platform Human Action Component

Which version?

  • Unless you want to use the Arcade Learning Environment, avoid the _withALE builds.
  • If you are on Ubuntu 16.04 then you can use the 15.10 release.
  • The Redhat build was made with Fedora23 but may work with other Redhat flavors.

Let us know if you need more builds.

Breaking changes:

  • MazeDecorator waypoint items have changed:

Previous syntax:

<Waypoints quantity="10">
  <WaypointItem>cookie</WaypointItem>
</Waypoints>

New syntax:

<Waypoints quantity="10">
  <WaypointItem type="cookie"/>
</Waypoints>

This allows us to add variants, colours etc - eg, to add spawn eggs of various types:

<Waypoints quantity="10">
  <WaypointItem type="spawn_egg" variant="Creeper Skeleton Spider Ozelot"/>
</Waypoints>
  • ObservationFromHotbar, ObservationFromFullInventory, ObservationFromNearbyEntities etc now return data in the same format as Types.xsd

eg instead of returning a string like "item.dyePowder.red", they will now break the data down into the types / variants / colours found in Types.xsd, and return them separately.

This means that data is now returned in the same format that we send it (eg in DrawItem, InventoryObject, RewardForCollectingItem, etc.etc.)

Deprecations:

  • InventoryItem and InventoryBlock have been deprecated in favour of a single new entity, InventoryObject. Existing inventory XML will continue to work, but InventoryObject is now the preferred way to go. It avoids having to make a distinction in the inventory code between blocks and items, and also allows item variations and colours to be specified.

0.15.0

18 Jul 16:11
Compare
Choose a tag to compare

Changes:

New: Added ObservationFromNearbyEntities (#89) and updated reward_for_items_test.py to demonstrate it.
New: Simplified inventory movement with swapInventoryItems command (#148).
New: Can combine inventory slots using new combineInventoryItems command (#189).
New: Free-floating blocks can now be placed using DrawItem, and used in RewardForDiscardingItem/RewardForCollectingItem.
New: Crafting now triggers RewardForDiscardingItem/RewardForCollectingItem.
New: Python bindings changed for videoframe pixels - now returns a native python array, for faster use in numpy/PIL etc. (#187)

Which version?

  • Unless you want to use the Arcade Learning Environment, avoid the _withALE builds.
  • If you are on Ubuntu 16.04 then you can use the 15.10 release.
  • The Redhat build was made with Fedora23 but may work with other Redhat flavors.

Let us know if you need more builds.

Breaking changes:

  • Inventory commands are now more sensible. Previously:
selectInventoryItem 3
dropInventoryItem 30

Now:

swapInventoryItems 3 30
  • Python image retrieval is now simpler (and much faster):
for frame in world_state.video_frames:
    image = Image.frombytes('RGB', (frame.width, frame.height), str( frame.pixels ) )

0.14.0

07 Jul 14:25
Compare
Choose a tag to compare

New: Basic, first stage crafting support added (issue #11).
New: ObservationsFromMazeOptimalPath has been turned into general purpose ObservationFromSubgoalPositionList
New: Maze generator can now take care of quitting mission when agent reaches goal (issue #103)
New: AgentQuitFromReachingCommandQuota (issue #109).
Rewards are now only sent when triggered (issue #120).
Multi-dimensional rewards are now possible, using a 'dimension' parameter on each RewardProducer.
Pitch command had positive as up, which was inconsistent with Minecraft and Placement section.

Breaking changes:

  • Rewards that were previously accessed like this:
for reward in world_state.rewards:
    print reward.value

are now accessed like this:

for reward in world_state.rewards:
    print reward.getValue()
  • In the .tgz saved mission file, rewards are now saved as XML rather than JSON.

0.13.0

01 Jul 12:56
Compare
Choose a tag to compare

New: tp x y z command (issue #112)
Fix: Hotbar commands moved from ContinuousMovementCommands to InventoryCommands
Fix: Client quit producers are now queried between executing commands, in cases where commands get clustered.
New: Test for AgentQuitFromReachingPosition
Some MissionSpec calls now take float coordinates to match XML (issue #107). MissionSpec::endAt now takes tolerance parameter.
peekWorldState and getWorldState now return WorldState instances rather than smart pointers (issue #124).
New: API call MissionSpec::setViewpoint to change the camera viewpoint.
Fix: ALE_HAC.py was broken (issue #114).

0.12.0

27 Jun 15:51
Compare
Choose a tag to compare

New: Issue #55 (added forceReset flag to FlatWorldGenerator, DefaultWorldGenerator and FileWorldGenerator).
New: Issue #84 (added seed to FlatWorldGenerator and DefaultWorldGenerator).
Add: Issue #82 (new RewardForDiscardingItem mission handler).
Add: Issue #73 (added new DiscardCurrentItem command to InventoryCommands).
Add: Issue #4 (Overclocking) - can set tick length, and limit onscreen render. (Required XSD change, hence bumping to 0.12)
Fix: Issue #48 (Grid observer crippled by bad TCP string sending method).
Fix: Issue #52 (Malmo's internal Minecraft client/server messages limited to 64k data per message).
Fix: Issue #40 (added tostring() methods to Lua and Python classes).
Fix: Issue #7 (requesting depth map would break the recorded video).
Fix: Issue #81 (changing video size between missions could crash the platform).
Fix: Issue #2 (XSDs no longer need to be in the current folder).
Add: New API call: MissionSpec::requestVideoWithDepth.
Add: New API call: AgentHost::peekWorldState.

N.B. This release contains a bug in ALE_HAC.py. This is fixed in master and will be fixed in the next release.

0.11.2

06 Jun 13:45
Compare
Choose a tag to compare

Fix: Issue #22 (attack auto-repeat not working if Minecraft hasn't had focus).
Fix: Issue #33 (framerate slowdown after 500+ missions).
Fix: Issue #37 (occasional messages lost because two servers listening on same port).