UrhoSharp is a lightweight Game Engine suitable for using with C# and F# to create games and 3D applications. The game engine is available as a portable class library, allowing your game code to be written once and shared across all platforms. UrhoSharp is powered by Urho3D, a game engine that has been under development for more than a decade. More information can be found in the UrhoSharp documentation. The bindings for Urho3D are licensed under the MIT license, as found on the LICENSE file.
Key advantages:
Supported platforms:
Sample code lives in https://github.com/xamarin/urho-samples and repository has them as a git submodule. Samples use UrhoSharp via nuget.
Available on NuGet:
To help developers get up and running quickly with UrhoSharp we are providing a solution template for Visual Studio (you can find it in "Online templates" tab). This template consists of PCL+Android+iOS+Mac/Windows with a simple scene and some assets (Xamarin Studio templates will be available soon):
This is currently a little messy, so YMMV.
In order to compile binaries for all platforms you will need both Windows and OS X environment. Please follow these steps:
brew install cmake)xcode-select --install)1. Clone the repository including submodules
git clone [email protected]:xamarin/urho.git --recursive
2. Compile Urho.pch, SharpieBinder and generate bindigs
The following command will download Clang 3.7.0 if you do not have it installed, and use this to scan the Urho header files, then compile the sources to PCH, parse it via SharpieBinder and generate C# bindings. Additionally there is a perl script to generate bindings to Urho3D events.
make Generated
3. Compile UrhoSharp for Mac (fat dylib)
make Mac
it takes 5-10 minutes.
4. Compile UrhoSharp for iOS (fat dylib: i386, x86_64, armv7, arm64)
make iOS SDK_VER=11.2
5. Compile UrhoSharp for Android (armeabi, armeabi-v7a, arm64, x86, x86_64)
make -j5 Android
-j5 means a job per ABI. Make sure you have installed Android SDK and NDK (see MakeAndroid file) This target can also be executed on Windows.
Obviously you can't do it on OS X so you have to switch to Windows environment. Make sure you have installed:
setup-x86_64.exe -P autoconf,automake,bison,gcc-core,gcc-g++,mingw64-i686-runtime,mingw64-i686-binutils,mingw64-i686-gcc-core,mingw64-i686-gcc-g++,mingw64-i686-pthreads,mingw64-i686-w32api,mingw64-x86_64-runtime,mingw64-x86_64-binutils,mingw64-x86_64-gcc-core,mingw64-x86_64-gcc-g++,mingw64-x86_64-pthreads,mingw64-x86_64-w32api,libtool,make,python,gettext-devel,gettext,intltool,libiconv,pkg-config,git,curl,wget,libxslt,bc,patchCygwin.bat and navigate to the folder where UrhoSharp is located (e.g. cd /cygdrive/c/projects/urho)Execute:
make Windows
Then, open Urho.sln and compile UrhoSharp.Windows project in Release configuration.
By default, Urho on windows uses OpenGL, but you can also use DirectX11. In order order
to use it, execute:
make Windows_D3D11
And compile `UrhoSharp.WindowsD3D' project. All compiled binaries could be found in the Bin/{platform} folder.
Compile UrhoSharp for UWP and HoloLens
Execute:
make UWP
make SharpReality
And compile UrhoSharp.UWP and UrhoSharp.SharpRealitys projects in Release configuration.
Special thanks to https://gist.github.com/aktowns
Disclaimer: I am not a linux guy so I am not sure which packages from the following list
are required, probably some of them are not:
sudo apt-get install cmake clang-3.7 avr-libc libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev libgl1-mesa-dev libx11-dev
Then just execute:
make Linux
Once you have a build, run the refresh-docs target, like this:
make refresh-docs
This will update the documentation based on the API changes. Then you can use a tool like DocWriter [1] on the Mac to edit the contents, or just edit the ECMA XML documentation by hand with an XML editor.