Archived project to wrap the Urho3D engine for C#, allowing it to be used on any .net core (NetStandard 2.0+ ie .net6/7/8) runtime and is fully mobile supported.

EgorBo 5efbabaa88 Remove StereoApplication (replaced by unified HoloApplication) 9 лет назад
Bindings 5efbabaa88 Remove StereoApplication (replaced by unified HoloApplication) 9 лет назад
Docs d9039b8e03 docs: remove Urho.Portable.Actions.Intervals from index.xml 9 лет назад
Nuget 747f2c3aab Change content type for libmono-urho.dylib, add CopyEmbeddedCoreDataTo method. 9 лет назад
ProjectTemplates d3dbfae640 update HoloLens project template 9 лет назад
Samples @ 59ae93e0fd 0da290ac39 update Playgrounds.Console project 9 лет назад
SharpieBinder df69c68903 [Bindings] add MemoryBuffer support 9 лет назад
Tests d9d5c3092b More Cardboard support 9 лет назад
Urho3D 21c588eacf Improve HoloLens performance (changes are in Urho3D/Source) 9 лет назад
docs 0d4f015bf7 docs: normalize xml 9 лет назад
.gitignore d3dbfae640 update HoloLens project template 9 лет назад
.gitmodules fc1c376cef Move Urho3D to xamarin/Urho3D 10 лет назад
ClassHierarchy.md f1fdc5561c Update ClassHierarchy.md 10 лет назад
LICENSE 7d8915c901 Update license 10 лет назад
MakeAndroid 6b937c006f add -framework CoreVideo to MakeMac, update CoreData.pak 9 лет назад
MakeHoloLens 50e23eca30 Fix compilation errors in Release mode 9 лет назад
MakeMac 6b937c006f add -framework CoreVideo to MakeMac, update CoreData.pak 9 лет назад
MakeUWP f7f093c475 Fix UWP build 9 лет назад
MakeWindows 1a22f8f0bf Move CoreData to Urho3D/CoreData. Urho3D now supports pak files for Android. 9 лет назад
Makefile 7ea989fcbc update refresh-docs rule 9 лет назад
MakeiOS a494aefa75 Add missing GameController and CoreMotion frameworks to MakeiOS 9 лет назад
MaketvOS 400fa527bd Rename binding to Binding and docs to Docs 10 лет назад
Namespaces.md b38dae7c04 Add some ideas on renamespacing 10 лет назад
README.md c8e8f70839 Add instructions on how to update docs 9 лет назад
TODO.md 74f3bb9ec6 Update TODO, add RenderPath.Clone 10 лет назад
Urho.Forms.nuspec 4cfd1fdf4c add release notes. 9 лет назад
Urho.HoloLens.nuspec 4cfd1fdf4c add release notes. 9 лет назад
Urho.nuspec 4cfd1fdf4c add release notes. 9 лет назад
Urho.sln febf91790d add StereoApplication 9 лет назад
UrhoSharp.png 74c4007c00 New icon for the project templates and the Nuget 10 лет назад

README.md

UrhoSharp

UrhoSharp is a lightweight Game Engine suitable for using with C# and F# to create games that run on Android, iOS, Mac, Windows and Unix. 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.

Samples

Sample code lives in https://github.com/xamarin/urho-samples and repository has them as a git submodule. Samples use UrhoSharp via nuget.

Sample Sample

Setup

Quick start

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):

VS

How to build bindings

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:

1. Install:

  • XCode
  • Xamarin Studio
  • CMake (i.e. brew install cmake)
  • Mono 64 bit (i.e. Mono 4.4+ or brew install mono)
  • Command Line tools (xcode-select --install)
  • Android NDK (and ANDROID_NDK variable)

2. Clone the repository including submodules

git clone [email protected]:xamarin/urho.git --recursive

3. Compile Urho.pch

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:

make PchMac

4. Generate C# bindings from Urho.pch

Open SharpieBinder/SharpieBinder.sln via Xamarin Studio and change .NET runtime to 64 bit mono (installed from homebrew is usually located in "/usr/local/Cellar/4.x.x.x"). Run SharpieBinder project and make sure it generated *.cs files in /bindings/generated dir.

Alternatively, you can do make SharpieBinder.

Then execute:

make ParseEventsMac

it should generate bindings/generated/events.cpp file

5. Compile UrhoSharp for Mac (fat dylib)

make Mac

it takes 5-10 minutes.

6. Compile UrhoSharp for iOS (fat dylib: i386, armv7, arm64)

make iOS

Note: Make sure you have an iOS 9.0 simulator target or modify SDKVER to target another simulator.

7. Compile UrhoSharp for Android (armeabi, armeabi-v7a, x86)

make -j3 Android

-j3 means a job per ABI. Make sure you have installed Android SDK and NDK (see MakeAndroid file)

8. Compile UrhoSharp for Windows (64 bit)

Obviously you can't do it on OS X so you have to switch to Windows environment. Make sure you have installed:

  • Visual Studio 2015
  • CMake
  • GNU make (e.g. cygwin)

SharpieBinder doesn't work on Windows yet so you will have to copy bindings/generated folder from OS X environment to Windows.

Execute:

make Windows64  (or Windows32)

(you can also compile Android on Windows via "make Android") Then, open Urho.sln and compile MonoUrho.Windows project in Release configuration.

All compiled binaries could be found in the Bin/{platform} folder.

Updating Documentation

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.

[1] http://github.com/xamarin/DocWriter