Presentation is loading. Please wait.

Presentation is loading. Please wait.

Unity при побудові 3D ігор для Windows 8 та Windows Phone Олег Прiдюк Технічний євангеліст, Unity Technologies.

Similar presentations


Presentation on theme: "Unity при побудові 3D ігор для Windows 8 та Windows Phone Олег Прiдюк Технічний євангеліст, Unity Technologies."— Presentation transcript:

1 Unity при побудові 3D ігор для Windows 8 та Windows Phone Олег Прiдюк Технічний євангеліст, Unity Technologies

2 Oleg Pridiuk Technical Evangelist

3 Multi platform Perfect support Ultimate flexibility Why people choose Unity?

4 Unity is multi-platform Windows Windows 8, RT, WSA Mac Web Flash, Google NaCL, Facebook, Unity plugin Ubuntu Linux Mobiles BlackBerry 10, Android, iOS, Windows Phone 8 Consoles PS Vita, PS4, PS3, Xbox 360, Nintendo Wii U Union More to come!

5 What does it take to port a Unity game? Define a “game” in this context? Core gameplay – game logic, scenes, assets Wrappers – monetization, social, plugins Addons, process to update and patch Assuming “to port” means Core gameplay launches on a new platform Unity takes care of what it can control Texture compression, sounds, scripts, scene setup (physics, light probes, lightmaps, navigation, occlusion, etc) Cross platform plugins, if applicable Performance?

6 Performance may vary hard!

7 Windows 8/RT Device Capabilities Windows 8 & RT devices scale in performance from phone-equivalent all the way to high-end multi-GPU gaming desktop But most devices are mobile or have mobile GPUs Touch is a first-class citizen Minimum device resolution is 1024x768 Windows RT has a minimum DirectX feature level of 9_1 May not have 4k texture support May not have simultaneous render targets

8 Get familiar with the platform Unique features & behaviors of Windows 8/RT and Unity for WSA Application design Hardware: touch, battery, x86, ARM, x64 Always on approach for devices Changes to the runtime APIs for Windows Store Apps and WP8 Many new Windows devices have a trackpad and touchscreen that can be used simultaneously Understand performance hotspots and optimization techniques – both hardware and software

9 Unity for WSA and WP8 Unity’s Windows Store runtime is built on.NET Unity generates a tweakable Visual Studio project C# debugging in Visual Studio Simplifies native code plugin integration Your ported code pretty much ‘just works’ on Windows Phone 8 WSA can only consume WinRT Components (no unmanaged DLLS) Boo, JavaScript not fully implemented GameObject.SendMessage lacks type conversion Network classes not supported (WWW works) Cloth not supported

10 Unity for WSA and WP8 Interop in Unity for Windows Store Apps is expensive Minimize the Unity APIs you call each frame, including Component references public class example : MonoBehaviour { private Transform myTransform; MonoBehaviourTransform void Awake() { myTransform = transform; } void Update() { myTransform.Translate(0, 0, 5); } } public class example : MonoBehaviour { void Update() { transform.Translate(0, 0, 5); }

11 Disallowed Windows APIs HashTable - use a Dictionary Better performance for value types Not necessarily thread-safe Type-constrained ArrayList - Use a Dictionary or a List Possibly a small loss of performance System.Xml.XmlDocument - don’t use XML But if you have to… use System.Xml.Linq Better is to use JSON or YAML System.Threading.Thread Use ThreadPools - system.threading.threadpool And a few thousand Win32 functions http://msdn.microsoft.com/en- us/library/windows/apps/hh464945.aspx http://msdn.microsoft.com/en- us/library/windows/apps/hh464945.aspx SuspendThread, GetThreadContext, SetUnhandledExceptionFilter, Winsock2, CreateThread, HeapCreate, Sleep, etc.

12 Plugins in Windows Store Apps Windows Store Apps can only consume WinRT Components Unmanaged legacy native code DLLs aren’t allowed http://msdn.microsoft.com/en- us/library/windows/apps/hh441569.aspx http://msdn.microsoft.com/en- us/library/windows/apps/hh441569.aspx The Unity Editor is still based on Mono Make sure your WinRT Component can also be built as a legacy native code DLL (Windows Store functionality can be stubbed out)

13 Optimizing performance Instantiating and Destroying GameObjects is expensive Reuse when possible! Don’t Use Desktop shaders Terrains Realtime shadows Dense particles Use structs instead of classes Classes are stored on the heap, structs on the stack. We have more on this in docs…

14 Demo time! Small overview of Unity tools

15 Test against the zoo Run the WACK often Participate in the beta! In order to ship to Windows 8 ecosystem well…


Download ppt "Unity при побудові 3D ігор для Windows 8 та Windows Phone Олег Прiдюк Технічний євангеліст, Unity Technologies."

Similar presentations


Ads by Google