Update Developer introduction authored by Axel Wiepke's avatar Axel Wiepke
For standard use in teaching and research, please see the [ReadMe file](https://gitup.uni-potsdam.de/mm_vr/vr-klassenzimmer/blob/master/README.md). This page covers the setup necessary to make changes to the project and use it for your own work (e.g. theses). For standard use in teaching and research, please see the [ReadMe file](https://gitup.uni-potsdam.de/mm_vr/vr-klassenzimmer/blob/master/README.md). This page covers the setup necessary to make changes to the project and use it for your own work (e.g. theses).
## Installations ## Installations
At first you need some programs to run eChalk in developer mode. These programs are listed below and sample sources are linked to them. At first you need some programs to run the VR-classroom in developer mode. These programs are listed below and sample sources are linked to them.
* [git](https://git-scm.com/downloads) is a version control program that allows you to download the current version of the project and do versioning of your changes. * [git](https://git-scm.com/downloads) is a version control program that allows you to download the current version of the project and do versioning of your changes.
* [gitExtensions](http://gitextensions.github.io/) is a GUI for git. There are various GUIs for git, however some of them have known issues with unity, so use of gitExtensions is advised. * [gitExtensions](http://gitextensions.github.io/) is a GUI for git. There are various GUIs for git, however some of them have known issues with unity, so use of gitExtensions is advised.
* [git lfs](https://git-lfs.github.com/) is an extension for git that takes care of files that are not readable by humans because they are too large or binary. * [git lfs](https://git-lfs.github.com/) is an extension for git that takes care of files that are not readable by humans because they are too large or binary.
* [unityHub](https://unity3d.com/de/get-unity/download) provides an overview of your Unity projects, manages different Unity versions and offers many tutorials and helpful add-ons. * [unityHub](https://unity3d.com/de/get-unity/download) provides an overview of your Unity projects, manages different Unity versions and offers many tutorials and helpful add-ons.
* [unity](https://unity3d.com/get-unity/download/archive) is a GameEngine and the development environment of eChalk's VR environment. To find out the version you need, use unityHub, add the project there and download the suggested unity version to open the project. *WARNING* using wrong unity version may cause unexpected errors and cooperation with other developers is almost impossible. * [unity](https://unity3d.com/get-unity/download/archive) is a GameEngine and the development environment of the VR-classroom's VR environment. To find out the version you need, use unityHub, add the project there and download the suggested unity version to open the project. *WARNING* using wrong unity version may cause unexpected errors and cooperation with other developers is almost impossible.
* [nodeJS](https://nodejs.org/en/download/) is a development environment for web applications based on JavaScript. In this project nodeJS is responsible for the frontend. * [nodeJS](https://nodejs.org/en/download/) is a development environment for web applications based on JavaScript. In this project nodeJS is responsible for the frontend.
* [redux Toolkit](https://redux-toolkit.js.org/introduction/quick-start) is a package for nodeJS and provides the frontend with necessary functions. * [redux Toolkit](https://redux-toolkit.js.org/introduction/quick-start) is a package for nodeJS and provides the frontend with necessary functions.
* [electron](https://www.electronjs.org/docs/tutorial/installation) provides a browser-independent interface for the frontend and thus presents the frontend as a full-fledged app. * [electron](https://www.electronjs.org/docs/tutorial/installation) provides a browser-independent interface for the frontend and thus presents the frontend as a full-fledged app.
...@@ -14,7 +14,7 @@ At first you need some programs to run eChalk in developer mode. These programs ...@@ -14,7 +14,7 @@ At first you need some programs to run eChalk in developer mode. These programs
## Training ## Training
Now that there is a whole load of new software on your system, you are faced with a historically grown project with various developers. This can be overwhelming at first and you wish you had a little more clarity. These are the issues this chapter is intended to address. Now that there is a whole load of new software on your system, you are faced with a historically grown project with various developers. This can be overwhelming at first and you wish you had a little more clarity. These are the issues this chapter is intended to address.
### Get an overview ### Get an overview
Depending on the area you want to develop in, you will of course need to get to know the development environment. There are various sources for this on YouTube, Stackoverflow, etc. Of course, no concrete tips on eChalk will be given to you, but it is useful to know how the development environment is structured. In the following, the structure of the VR environment is discussed and _short familiarization exercises are highlighted_. Depending on the area you want to develop in, you will of course need to get to know the development environment. There are various sources for this on YouTube, Stackoverflow, etc. Of course, no concrete tips on this project will be given to you, but it is useful to know how the development environment is structured. In the following, the structure of the VR environment is discussed and _short familiarization exercises are highlighted_.
As of this writing (06/01/2021), there are two versions of the VR-classroom. One version is specialized for the use with Vive glasses (master branch) and the other one is specialized for Oculus glasses (oculusVersion branch). So depending on your hardware, you should check out the correct version in git (extensions). Once the project is open, you will see a folder hierarchy. All assets (folders) under "AssetStore" are designed by third party developers and have not been significantly modified. The folders starting with "own" like "ownScripts", "ownPrefabs", etc. contain own developments. The folder "Scenes" contains different seating arrangements for the virtual class and tutorial or menu environments. For own testing to get used to the project, the "Scenes" folder is recommended, although "test environments" should be removed before the first git push. _To build up an orientation, try for example to find the self-written script that manages an audio ambience for the scenes._ As of this writing (06/01/2021), there are two versions of the VR-classroom. One version is specialized for the use with Vive glasses (master branch) and the other one is specialized for Oculus glasses (oculusVersion branch). So depending on your hardware, you should check out the correct version in git (extensions). Once the project is open, you will see a folder hierarchy. All assets (folders) under "AssetStore" are designed by third party developers and have not been significantly modified. The folders starting with "own" like "ownScripts", "ownPrefabs", etc. contain own developments. The folder "Scenes" contains different seating arrangements for the virtual class and tutorial or menu environments. For own testing to get used to the project, the "Scenes" folder is recommended, although "test environments" should be removed before the first git push. _To build up an orientation, try for example to find the self-written script that manages an audio ambience for the scenes._
...@@ -25,7 +25,7 @@ Back to the editor, you will see the Scene-View, where all 3D objects in the wor ...@@ -25,7 +25,7 @@ Back to the editor, you will see the Scene-View, where all 3D objects in the wor
Unity offers a great number of options, windows and packages, and a not insignificant subset of them is also used in the project. If you have spent a few hours with the project, as suggested here, you will surely find the right place to include your developments. Should you have specific questions about your development, you've already come a long way and internet resources will certainly help you. If you simply feel lost and overwhelmed in the project, despite this introduction, feel free to contact [Axel Wiepke](mailto:wiepke@uni-potsdam.de). He is especially looking forward to suggestions for improvement of this tutorial to enable future developers a stress-free start. Unity offers a great number of options, windows and packages, and a not insignificant subset of them is also used in the project. If you have spent a few hours with the project, as suggested here, you will surely find the right place to include your developments. Should you have specific questions about your development, you've already come a long way and internet resources will certainly help you. If you simply feel lost and overwhelmed in the project, despite this introduction, feel free to contact [Axel Wiepke](mailto:wiepke@uni-potsdam.de). He is especially looking forward to suggestions for improvement of this tutorial to enable future developers a stress-free start.
## Theoretical foundations ## Theoretical foundations
Since this project is primarily a research project, development decisions should be based on scientific sources to the best of our ability. Circumstances already researched with the eChalk project can be found [here](https://www.uni-potsdam.de/de/multimedia/projekte/anwendungen/vr-klassenzimmer). A knowledge collection of used sources of developments is not linked here for clarity. However, elaborated publications will be shared on the linked page and student works, in the future will also be provided on request. Since this project is primarily a research project, development decisions should be based on scientific sources to the best of our ability. Circumstances already researched with this project can be found [here](https://www.uni-potsdam.de/de/multimedia/projekte/anwendungen/vr-klassenzimmer). A knowledge collection of used sources of developments is not linked here for clarity. However, elaborated publications will be shared on the linked page and student works, in the future will also be provided on request.
## Documentation for developers ## Documentation for developers
To visualize dependencies of classes and other helpfull tools, we created a [documentation](https://echalk.soft.cs.uni-potsdam.de/docs/index.html) with doxygen. To visualize dependencies of classes and other helpfull tools, we created a [documentation](https://echalk.soft.cs.uni-potsdam.de/docs/index.html) with doxygen.
... ...
......