# UFrameIT The FrameIT project builds a Framework for developing Serious Games by combining Virtual Worlds with Mathematical Knowledge Management. The UFrameIT framework uses the Unity game engine with the [MMT](https://uniformal.github.io/) system. This repository contains the Unity project, which currently includes the framework itself and a demo game. MMT itself is a large system with many different use cases beyond FrameIT. It operates with [archives](https://github.com/UFrameIT/archives) of formalized knowledge. For FrameIT, we added a new archive that, in turn, makes use of archives that existed before and contain knowledge about mathematics and logics. Unity and MMT communicate via the [FrameIT-Server](https://github.com/UniFormal/MMT/tree/devel/src/frameit-mmt) For more information about the project, please visit <https://uframeit.org> ## Installation (for end users) Just download our latest release: <https://github.com/UFrameIT/UFrameIT/releases/latest> ## Installation (for developers) First, you have to set up a development environment: 1. Install [Unity](https://unity3d.com/de/get-unity/download) 2019.4.x (LTS) via the Unity Hub. We periodically update to the latest LTS version. Currently, any 2019.4 version should work; you can safely ignore any version warnings popping up. Make sure to [activate your license](https://support.unity.com/hc/en-us/articles/211438683-How-do-I-activate-my-license). 2. [Install Git LFS](https://docs.github.com/en/free-pro-team@latest/github/managing-large-files/installing-git-large-file-storage) 3. Clone this repository: `git clone --recurse-submodules https://github.com/UFrameIT/UFrameIT.git` 4. Follow the [UFrameIT server's guide on setting up a dev environment](https://github.com/UniFormal/MMT/blob/devel/src/frameit-mmt/DEVENV.md). Thereby, you will also install the necessary [archives of formalization UFrameIT/archives](https://github.com/UFrameIT/archives). ### Running 1. Open the Unity Hub and add the folder where you cloned this repository to. Then open the project in the hub. 2. Follow the [UFrameIT server installation guide](https://github.com/UniFormal/MMT/blob/devel/src/frameit-mmt/installation.md) to run the server 3. In Unity, select the scene you want to start (the current demo scene is called TreeWorld_02, you can find it at Assets/Scenes) and run the game (Play Button). ## Useful Links for new Developers * [Publications](https://kwarc.github.io/bibs/frameit/) ### UFrameIT Unity Plugin * [Installation Guide](https://github.com/UFrameIT/UFrameIT/blob/master/README.md) ### FrameIT Server * [Installation Guide](https://github.com/UniFormal/MMT/blob/master/src/frameit-mmt/installation.md) * [Documentation](https://github.com/UniFormal/MMT/blob/master/src/frameit-mmt/README.md) * [FrameIT Server Request Examples](https://kwarc-frameit.postman.co/workspace/FrameIT-Postman-Workspace~d9c28eb0-b28c-47b9-8403-864de6799418/documentation/9866886-8347f2b8-c8a6-4c8b-800c-c4d3b01c9580) * [MMT API Documentation](https://uniformal.github.io//doc/api/) ### Formalized Knowledge * [Installation guide](https://github.com/UFrameIT/archives/blob/master/README.md) * [How to write a Scroll](https://gl.mathhub.info/FrameIT/frameworld/-/tree/devel/source/Scrolls) * [MMT Language Documentation](https://uniformal.github.io//doc/language/) * [MMT Tutorials](https://uniformal.github.io//doc/tutorials/)