dyn logo

DYN Minecraft Research Project

Exploring the feasibility of Minecraft as a platform for computational learning

DYN Minecraft Mod

This is mostly a container for all the other mods discussed here but it handles all the common pieces and sews them all together into a single main mod that runs our system. This small container also handles the player segmenting, assigning players the role of Admin, Mentor, or Student. Information gathered from a connected Chicago City of Learning account is also stored in this and is utilized by other mods and components. Generally speaking this mods job is to make sure everything initializes properly by loading all the proper libraries, creating all the necessary files and directories, and properly directing game events and server traffic to keep things running smoothly.


Link to Source Code

An extension of the in-game achievement system. Adds in the ability to read from a JSON file to dynamically create achievements at initialization. Further adds the ability to set multiple Requirements of various natures like collecting or building certain things in game. Achievements can be restricted to certain worlds and even certain areas within worlds. Players are notified of their progress and once they complete an achievement are rewarded with a prize.

Types of Achievements are:

  • Crafting
  • Smelting
  • Picking Up Items
  • Placing Blocks
  • Mining Blocks
  • Killing
  • Stat
  • Location
  • Mentoring

Those familar with the game will probably understand the meaning of the first several types since they are just extensions of the normal gameplay mechanics. The stat requirement is any tracked stat in the game, from walking to flying and beyond, which is actually how the normal achievements work. Location just means the player must get to a predefined area which can be a cube or point and radius. The mentor achievements are those that can only be given by an in game mentor and are usually reserved for behavior in the game or in person that cannot be easily tracked.


DYN Fixins

Link to Source Code

A host of useful blocks and items for creating engaging game worlds.

Added Blocks:

  • Student Command Block
  • Dialog
  • Proximity
  • Timer
  • Decision/Quiz

Other than the command block there are student and admin variations of each. The admin versions cannot be altered, placed, or broken other than by someone with an admin privilage. The student blocks can be manipulated by anyone. The dialog blocks were added because giving narrative and in-game hints to students just wasn't very effective using the vanilla options (chat.) This block allows you to display any in game entity and players along with some text to help out a player. It can render either as a hud where it does not stop gameplay or as a gui element that covers the screen. The proximity block and timer are both redstone additions where the timer can be set to a single tick accuracy and the proximity can be filtered to detect certain entities. Because we are seeking to understand Minecraft in an educational context we also created a decision block. It is similar to the dialog block only it can allow players to make multiple choices as a response. This can be made into a quiz that sends a redstone signal or performs commands on the player.



Link to Source Code

The robot mod is actually several mods interconnected in order to create the programmable robot avatar. In the future we would like for it to be a stand alone mod to make configuration and dependencies as little as possible but for now it requires the Rabbit GUI for the programming environment and the Raspberry Jam Mod for the Python compiler and runtime. The mod adds a robot entity to the game and several tools to interact with it.

This includes:

  • The Remote: activates and handles all the typical interaction like inventory management and programming.
  • Expansion Chips: The robot can be extended with a series of chips to give it more abilities or more memory to allow the robot to execute more code.
  • SD Cards: Programs can be saved and loaded to a SD card that can be shared amongst players.
  • Whistle: When the robot is executing code it will no longer follow its owner, the whistle will call the robot back to its owner.

The programming interface was designed to be entirely in game to keep the students from having to constantly switch between environments. While still a work in progress it will highlight code, handle errors and attempt to give plain english error prompts, along with other basic features. The robot itself can perform most actions a player could though still plays by the games rules to make it appear to fit in the game as if it was a normal creature in the game.


Admin & Mentor GUI

Admin Link to Source Code Mentor Link to Source Code

These GUI mods are our interpretation of the tools needed by any virtual mentor or admin to assist in dealing with students in the virtual space. The tools were inspired by the MinecraftEDU teacher menu though it includes some new features we felt were sorely lacking in the original version.

The most notable additions being:
  • The ability to create rosters:

    Since multiple simultaneous sessions could be happening at the same time it was imperative that a mentor would only be able to affect their own students and not the entire server.

  • Achievement Management:

    This utility allows mentors to check on students achievement progress and award mentor based achievements as they see fit. This is particularly useful with our extended achievements because mentors can see what requirements have been met and which have not.

  • Scripting Monitor:

    With our robot avatar programming interface, mentors can check the scripts of anyone of their roster, stop scripts from a student, or stop all scripts from their roster.

Beyond these features we believe that the overall design of the interface is slightly more intuitive than what they were originally based off of. There are slight differences between how the mentor and admin guis look and behave. Admin views will show player names rather than the students name and has the ability to review permissions the exist in worlds and zones. They way they create their roster is different as well as admins can pick from any player on the server where as mentors load their roster from the CCOL event roster.



Link to Render Source Code

There are actually multiple mods that comprise the utilities described here, mostly comprised of the communication and rendering frameworks that make the rest possible. The rendering framework only affects clients while the communication framework handles all types of communication that both the server and client rely on. This includes traffic between both as well as calls out to other web services that make everything possible.



Link to Source Code

A small self contained mod meant for simplifying the creation and sharing of schematics bewteen players on a server. Adds one item and a few commands to the game to acheive this goal. Schematics are generated client side and shared through the itemstack nbt tags. Size limitations are enforced to prevent excessive server load. Includes a preview render utility and a selectable schematic builder.