CLI to create Unity scaffold from MUD contracts. Includes VR support for Oculus Quest 2.
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.
https://drive.google.com/file/d/1QBuSgG5eJcr5FN1UdOlX8R-OWZSMJfdW/view?usp=sharing
https://docs.google.com/presentation/d/1zEjw0svhrmEv5i3eWEiUWQYw5WiVMOl4DIZ7V8JIRew/edit?usp=sharing
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
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.
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