project screenshot 1
project screenshot 2
project screenshot 3
project screenshot 4
project screenshot 5

create-unimud-client

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

create-unimud-client

Created At

Autonomous Worlds

Project Description

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

background image mobile

Join the mailing list

Get the latest news and updates