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





Problem Statement
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=sharingSlides:https://docs.google.com/presentation/d/1zEjw0svhrmEv5i3eWEiUWQYw5WiVMOl4DIZ7V8JIRew/edit?usp=sharingFeaturesAutomate UniMUD installation: unityclient/ and contracts/Handle uint32 and int32 as position coordinatesCommand line arg to generate VR skeleton for Oculus QuestIncludes runtime optimizationsOpinionated scripts and structure in package.json
Solution
LimitationsAssumes 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 optimizationshttps://developer.oculus.com/documentation/unity/unity-build/Tested with tank tutorial and emojimon only. Need to see more games.Create-unimud-client stepsExisting MUD code/template, including:Unity subfolder https://github.com/emergenceland/tankmud-tutorial/tree/final/packages/contracts/unityInstall 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.jsonUpdate build process to include nethereum/unimud generation:https://github.com/emergenceland/tankmud-tutorial/blob/lermchair/final-2/packages/contracts/package.json#L8Unity projectCreate empty Unity codebaseAdd UniMUD dependencyGenerate special sauce files like PlayerSync, PlayerController, etcCustomize with VR functionality, if we get to that part
Hackathon
Autonomous Worlds
2024
Contributors
- marvinmarnold
18 contributions