Search projects, hackathons, sponsors and tech

    ← All projects

    create-unimud-client

    CLI to create Unity scaffold from MUD contracts. Includes VR support for Oculus Quest 2.

    Demo

    About

    The project adopts a systematic approach to creating the UniMUD client. This includes leveraging existing MUD code/templates, installing other Nethereum configurations, updating the build process to include nethereum/UniMUD generation, creating an empty Unity codebase, adding UniMUD dependency, and generating special sauce files. VR functionality is also supported as an option. In essence, this project represents an innovative leap in MUD game development, automating and enhancing the processes of UniMUD installation and application while acknowledging and working on areas of potential improvement. ## Recording: https://drive.google.com/file/d/1QBuSgG5eJcr5FN1UdOlX8R-OWZSMJfdW/view?usp=sharing ## Slides: https://docs.google.com/presentation/d/1zEjw0svhrmEv5i3eWEiUWQYw5WiVMOl4DIZ7V8JIRew/edit?usp=sharing ## Features Automate UniMUD installation: unityclient/ and contracts/ Handle uint32 and int32 as position coordinates Command line arg to generate VR skeleton for Oculus Quest Includes runtime optimizations Opinionated scripts and structure in package.json

    How it's made

    ## Limitations Assumes map is a 2D grid and that players are spawnable. Opportunity to drive standardization in mudConfig structure for more composability. Not a magic bullet, game specific logic still needs to be mapped. Eg in emojimon, can only move one space at a time. A lot of dependencies are currently hard copied into the library, instead of downloaded at runtime, so it’s big. Other performance optimizations https://developer.oculus.com/documentation/unity/unity-build/ Tested with tank tutorial and emojimon only. Need to see more games. ## Create-unimud-client steps Existing MUD code/template, including: Unity subfolder https://github.com/emergenceland/tankmud-tutorial/tree/final/packages/contracts/unity Install other Nethereum configs: https://github.com/emergenceland/tankmud-tutorial/blob/lermchair/final-2/packages/contracts/Nethereum.Generator.json, https://github.com/emergenceland/tankmud-tutorial/blob/lermchair/final-2/packages/contracts/dotnet-tools.json Update build process to include nethereum/unimud generation: https://github.com/emergenceland/tankmud-tutorial/blob/lermchair/final-2/packages/contracts/package.json#L8 Unity project Create empty Unity codebase Add UniMUD dependency Generate special sauce files like PlayerSync, PlayerController, etc Customize with VR functionality, if we get to that part