1 / 15

Unity при побудові 3D ігор для Windows 8 та Windows Phone

Unity при побудові 3D ігор для Windows 8 та Windows Phone. Олег Прiдюк Технічний євангеліст, Unity Technologies. Oleg Pridiuk Technical Evangelist. Multi platform Perfect support Ultimate flexibility. Why people choose Unity?. Unity is multi-platform. Windows Windows 8, RT, WSA

hakan
Download Presentation

Unity при побудові 3D ігор для Windows 8 та Windows Phone

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Oleg PridiukTechnical Evangelist

  3. Multi platformPerfect supportUltimate 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 • Changesto the runtime APIs for Windows Store Apps and WP8 • Many new Windows devices have a trackpad and touchscreen that can be used simultaneously • Understand performancehotspots and optimizationtechniques – 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 (WWWworks) • 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 { void Update() { transform.Translate(0, 0, 5); } } public class example : MonoBehaviour { private TransformmyTransform; void Awake() {myTransform = transform; } void Update() {myTransform.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<T> • 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 • 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 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 GameObjectsis 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 zooRun the WACK oftenParticipate in the beta! In order to ship to Windows 8 ecosystem well…

More Related