Mod for Minecraft that enables programming in-game character in JavaScript with the included editor. It's used as a tool to teach elementary and middle school-aged kids basic programming concepts.
My work consisted of implementing:
- the mod itself, written in Java, which included modding rendering system to display items in character's hands, its animation, chat baloons, etc.
- JavaScript runtime using Rhino, including implementing multithreaded execution with minimum-cost synchronization needed when touching the world,
- frontend editor using TypeScript and Vue framework, including designing its layout, writing css, embedding Monaco editor and customising it to support the mod's API intellisense, and implementing WebSocket communication with the server,
- frontend WebGL renderer of Minecraft's world as a Web Worker including efficiently calculating geometry from blocks information using Minecraft's object definitions in real time with the data of the changing world streamed over WebSocket, texturing with regenerating texture atlas requesting only the needed images within the viewing range,
- frontend block programming module implemented using Blockly.