Skip to content

PlatformOrganization

Benedikt Hensen edited this page Nov 27, 2018 · 7 revisions

Platform Organization

The GaMR framework is supported by different platforms. The base version is developed and tested for the Microsoft HoloLens. New features and changes will be implemented for this version first and after this, they are made available for the other platforms.

Git Organization

The different platforms are organized in separate branches. Features which should be available on all platforms are implemented on the develop branch. Once enough testing has been done, the changes are merged into the master branch. A merge into the platform-specific branch updates the version for one platform. All changes and features which are special to one platform alone like the input system, are implemented on the corresponding branch.

Platform Branches

Branch Function Platform
master stable versions Windows (HoloLens)
develop main development of new features Windows (HoloLens)
htc_vive development of a VR version HTC Vive
desktop_support development of a desktop version which can be operated using a mouse Windows
ar_core mobile version using ARCore Android/iOS

Important:

Platform specific branches like htc_vive or desktop_support contain adaptions of the main program. Merging operations should only be performed from the develop branch onto the platform specific branch but not into the other direction since this will overwrite HoloLens configurations with platform-specific changes.

Defines

In the code it is possible to distinguish between different platforms using defines but the approach using git branches was chosen because there are also changes to the scenes on each platform. However, for extra safety, e.g. in case of accidental merging into the wrong direction, the defines have also been used when implementing platform-specific code. Further information about the define directives for each platform can be found in Unity's manual

See also

  • Migration to other Systems: Instructions about the changes which need to be performed in order to develop for a different platform
Clone this wiki locally