【推薦序】Windows 8.x App市集應用程式開發-使用C#/章立民

作者: 章立民

出版社:碁峰

出版日期:2014/05/09

博客來: http://www.books.com.tw/products/0010634550 

Windows 8.x App市集應用程式開發-使用C#

2014年四月初,就在我正要啟程前往美國舊金山,參加微軟一年一度的開發者大會BUILD之前,欣聞章立民老師(我們私下敬稱為「章公」)即將發表這本新書,時機正巧,同時也別具意義。

 

這次的BUILD大會中不但宣佈了微軟將擁抱各類型裝置的決定,同時更朝Open Source及Cross-Platform (跨平台)的方向邁進一大步。而針對 Windows Apps 的開發者而言,有幾點特別值得介紹:

1.     對台灣開發者最有感的,大概是取消了註冊 Windows Store 開發者中心時的「信用卡」驗證吧。不但馬上嘉惠了全台9成以上沒有信用卡的學生族群,也簡化了註冊流程,讓開發者能更容易將App上架,同時也增加了以 PayPal 付款的機制。

2.     付費App多了兩種價格可以設定: $0.99 (NT$30) 及 $1.29(NT$40)。這項改變是來自於在 Windows Phone 市場上的學習—這兩種價格即涵蓋了一半以上 (55%) 的付費交易量。

3.     而最重要的,應該是微軟在 WinRT (Windows Runtime) 上的持續投資及未來方向。BUILD上宣佈了 Universal Apps 這個新模版,開發者將可以一次開發出 Windows Phone 及 Windows Store App;而這背後的意義,即在於WinRT 亦成為開發Windows Phone App的核心機制了;不僅如此,WinRT 也將成為未來不同裝置,如 Xbox One Apps等的重要基礎。

image

目前在台灣 Windows 市集中有許多廣為人知、下載量名列前茅的 App 皆出自章老師的直接參與。章老師以其豐富的教學經驗及諸多專案的實務經驗,在本書中由淺入深,以實例帶領開發者學習各項 Windows Store 開發及 WinRT 知識,而本人尤其喜愛第七章資料繫結、第十三章使用Azure服務及第十五章JSON的整合運用,期待各位在學習基礎知識之後能發揮創意,將您的 App 拓展到世界各地!

延伸閱讀:  //BUILD/ 開發者大會- Windows Apps 課程 10 大重點

 

 

 

 

微軟 Hackathon 熱血黑客松又來了啊! //publish/

歡迎跟我們一起參加由微軟所舉辦的 //publish/ 活動。在這個充滿開發趣味的免費跨夜活動中,您可以帶著您的 app 或遊戲專案與世界上其它地方的開發人員一起撰寫程式!活動中,您除了可以找其它夥伴一起合作完成,也可與現場的技術專家討論 app 的設計、如何提升品質、或是任何關於移植專案的想法 (如: Unity 專案),讓你們能在這密集的 32 小時活動中,順利將你的作品移植到 Windows Phone、平板或是 PC 平台上!

活動現場有來自微軟以及社群中的專家,他們將能協助參加者解決開發 app 上的一切困難。在您完成專案後,現場也提供測試環境、測試機器等,讓您確保您的 app 有最好的品質,向全世界展現您自豪的作品!

這個活動提供了 Surface及Windows Phone來獎勵現場展示的優秀作品,也會獎勵活動後完成 app 上架的作品。更重要的是 – 若您的作品是在 2014 年 6 月 1 日前完成上架的 Windows 市集應用程式(包含 Windows Phone 應用程式),將可以角逐更大的獎項!


Register Now!

請上 //publish/ Developer Contest 網站瞭解更多訊息!

Taipei, Taiwan 
Overnight Event: May 16 – 17 

華山1914文化創意產業園區

台北市八德路一段1號

Taipei,

 

100

 

Taiwan

第一天

10:00 AM – 11:-00 AM 報到及開場
11:00 AM – 12:-30 PM 專心寫程式 與 專家交流
12:30 PM – 1:30 PM 午餐/Webcast
1:30 PM – 6:00 PM 專心寫程式 與 專家交流
6:00 PM – 7:00 PM 晚餐/Webcast
7:00 PM – 11:00 PM 專心寫程式 與 專家交流
11:00 PM – 12:00 AM 宵夜

第二天

12:00 AM – 9:00 AM 熬夜寫程式 與 專家交流
9:00 AM – 10:00 AM 早餐/Webcast
10:00 AM – 1:00 PM 專心寫程式 與 專家交流
1:00 PM- 2:00 PM 午餐/Webcast
2:00 PM – 5:00 PM 專心寫程式 與 專家交流
5:00 PM – 6:00 PM App 展示/評分及頒獎

Register Now!

您可至 http://dev.windows.com/ 或 http://dev.windowsphone.com/ 取得開發工具。

更多訊息: 從 //build/ -> //learn/ 到 //publish/

報名若有任何問題,請聯絡 dpetwaa@microsoft.com

//BUILD/ 開發者大會- Windows Apps 課程 10 大重點

微軟在此三天的研討會中密集進行了近 200 堂的課程,以下整理出 10 個 Windows Apps (Windows Store App 或 Windows Phone App) 相關課程的重點資訊給各位參考: 

1. 取消了註冊 Windows Store 開發者中心時的「信用卡」驗證!

也就是全台9成以上沒有信用卡的學生族群,不但能透過 DreamSpark 取得一年免費上架的帳號,現在起無需信用卡即能建立自己的市集帳號,並上傳自己的 App 。同時也增加了以 PayPal 付款的機制。

image

2. 付費 Windows Store App 多了兩種價格(包含IAP)可以設定: $0.99 (NT$30) 及 $1.29(NT$40)

這項改變是來自於在 Windows Phone 市場上的學習–這兩種價格即涵蓋了7成的付費交易量! 同時,Windows Phone App 也新增了 $500 以上的價格可供選擇。

image

3. 開發者即將能夠直接回應使用者的回應了! (要等 Dev Center 更新)

image

(以上 1.~3. 點來源: Maximizing Revenue for Phone, Tablet and PC Apps in the Windows Store)

4. 上架審核時間大幅縮短! Windows Phone App 由原本的 2~5天縮短至只要數個小時

這點有許多台灣的開發者已體驗到了,甚至有在一天之內完成 App 上架並完成多次 update 的經驗;至於 Windows Store App 的審核時間也即將有相同的加速。

image

5. Universal Apps 的宣佈是本次 BUILD 的重點之一,這個 Visual Studio 2013 的新模板讓開發者能一次開發出 Windows Store 及 Windows Phone 的 App

除了是因為 Windows Phone 底層開發架構 (Application Model) 轉為與 Windows Store App 一致 (使用 WinRT- Windows RunTime),以及開發工具的支援之外,在二個市集也作了以下整合:

    • 可指定一個橫跨 Windows Store 及 Windows Phone 市集的 App 名稱
    • 付費 App 只需購買一次 (Buy once, get on both Stores)
    • 統一的應用程式內購買 (適用於 ‘durables’)
    • 資料漫遊 (適用 8.1 Apps)
    • 單一的通知機制,使用WNS (適用 8.1 Apps)

image

6. 針對 Windows Phone App 而言,由於使用者可能使用 7.X/8.0/8.1 的作業系統,將會有單一 App擁有多個 packages 的情形:

    • 所有既有的 7.1/8.0 的 Apps 可相容於 WP8.1 的機器
    • 針對既有的 7.1/8.0 的 Apps,開發者可新增一個 8.1 的 package
    • 使用者升級至 8.1 時即可取得此新增的 8.1 package 更新
    • 開發者可各別更新不同版本的 packages

image

(以上4.~6.來源: Windows Phone and Windows: Dev Center and App Submission Deep Dive)

7. 使用者是如何使用您的 App 的? 利用 Application Insights 可進行深入了解

自己實測了一下,通過 Visual Studio Online 的免費服務,設定上很簡單,約5~10分鐘後就能看到報表了。如:

每天的活躍使用者數: (也許 Apps 下載量很高但沒人在用?)

image

回鍋使用者 vs. 全新使用者比例: (可搭配上圖來分析,發現 App 使用者的黏著度)

image

(以上第 7. 點來源: Make Data-Driven, High-Impact Improvements to an Application with Application Insights)

8.  「Windows Store App 如何和桌面應用程式溝通?」「可以在 Windows Store App 裡呼叫以前寫的程式嗎?」

在 Windows 8.1 或之前的版本,第一個問題的解答是: 通過 Contract 分享,或是透過”剪貼簿”的方式,但兩者都是透過間接方式來作溝通;而第二個問題的解答就是:「很難,大部份要重寫…><」

Windows 8.1 Update 1推出之後這兩個問題都有較好的解答,首先是針對 side-loaded (側載) 的 Windows Store Apps,將能透過 Network Loopback 的方式「直接」與其他應用程式溝通;同時,已可以透過 Brokered Windows Runtime Components (類似 proxy/stub),讓 Windows Store App 可以呼叫以前的程式。

image

以下是 Network Loopback 及 Brokered WinRT 兩種方式的比較:

image

(以上第 8. 點來源: Respecting Your Investments: How to Leverage Your Existing Code In a New Windows Runtime LOB App)

9. 到底是 Web 好還是 App 好?

Strategies for Developing Cross-Device Applications with Visual Studio 2013 這堂課作了非常好的討論,並給予了開發者一些準則及實務作法:

首先提到開發者們都在尋找一個同時能最佳化使用者經驗 (UX)、又能減少開發難度的「聖杯」(Holy Grail)

image

如果客戶已經有 Web Applications 了,如何因應不同種類的裝置提昇使用者經驗? 四種方式:

image

如果要在各平台使用不同的語言、不同的工具開發 Native App 以達到滿意的使用者經驗,客戶能負擔開發及維護成本嗎?

image

可以使用一種工具 (Visual Studio + Xamarin),使用一種程式語言 (C#),就是「聖杯」了! 微笑

image

10. Xbox One 的 OS 架構中,請注意你可以找到三個 OS:

底層的 OS 是類似 Hyper-V 的 hosting OS,其上左邊的 OS core 即為 Windows 8.1,處理 Xbox One 的選擇介面,提供如 Streaming, Storage 等系統服務之外,當然也可以跑 Apps! 右邊的即是用來跑遊戲用的 OS (講師的話中提到 Windows 9…)。

image

各位可以在 https://channel9.msdn.com/Events/Build/2014 觀看或下載所有的課程錄影及投影片,內容包含 Windows 8.1, Windows Phone 8.1, Xbox One, ASP.NET, .NET/C# 的未來等。

針對 Windows Phone 8.1 的重點整理可見我同事 Herman Wu 的分享: http://blogs.msdn.com/b/hermanwu/archive/2014/04/07/build-2014-windows-phone-8-1-session.aspx

至於 BUILD 的 Keynote 精華,則可見我另一同事上官神人的整理:

//Build/ 2014 第一天 Keynote 重點整理 (上)

//Build/ 2014 第一天 Keynote 重點整理 (下)

//Build/ 2014 第二天 Keynote 重點整理 (上)

//Build/ 2014 第二天 Keynote 重點整理 (下)

微軟年度開發者大會 //BUILD/ April 2-4

BUILD 是微軟承繼 PDC (Professional Developer Conference)以來在每年舉辦的全球開發者大會,第一手揭露 Windows, Windows Phone, Azure, Visual Studio, XBox, Kienct 等最新技術課程之外,大會進行中的每一天 Keynote 都會宣佈微軟技術最新消息,您可以在 http://www.buildwindows.com 或 https://channel9.msdn.com 線上即時收看。

BUILD 2014

若您想和大家一起線上收看第一天的 Keynote,歡迎來台灣微軟參加//BUILD/ 2014 台北午夜趴!

請報名: http://1drv.ms/1dAqG4t 

image

免費電子書下載: 「Location Intelligence for Windows Store apps」

Table of Contents

· Chapter 1: Getting Started

· Chapter 2: The Sensor and Location Platform

· Chapter 3: Bing Maps JavaScript API

· Chapter 4: Bing Maps Native API

· Chapter 5: Bing Maps REST Services

· Chapter 6: Bing Spatial Data Services

· Chapter 7: Working with Spatial Data

· Chapter 8: Drawing on the Map

· Chapter 9: Creating an Augmented Reality App

· Chapter 10: Creating a Templatable Compass Control

· Chapter 11: Cross Platform Development

image

下載點: http://rbrundritt.files.wordpress.com/2014/02/location_intelligence_for_windows_store_apps.pdf

本書範例程式碼: http://code.msdn.microsoft.com/Location-Intelligence-for-1c691d0e

 

Unity X Windows 實作營成果

2014 年首次,由資策會、奇銳科技及台灣微軟共同舉辦的 Unity X Windows 實作營已於 2月22日 (六) 順利完成,總計有 13 個團隊帶著他們的 Unity 專案前來參加,其中 9 成以上都是已上架至 iOS 或 Android 平台的 Apps。

當天奇銳科技技術主任 Angus Ko 的簡報:

我的簡報:

實作營當天的環境為 Unity 4.3.4 Pro + Windows 8.1 + Visual Studio 2013 Ultimate,移轉的結果如以下:

image

未能當場移轉成功的4組中: 全是因為於 Unity Editor 中 Build 之後出現 “Missing namespaces/classes/methods” 的錯誤訊息。這類錯誤在不更動既有程式下的最佳解決方法描述在: [Unity Game to Windows Store] Compile error- missing namespaces/classes 文章中;然而,例如 “Timer”, “Encoding” 等 classes 因為尚未實作在 MyPlugin.dll,故無法移植成功;有2組表示會回去作相對應的修改以相容於 Windows 平台。

另外,有3組團隊提到 Facebook plugin 尚未支援 Windows Apps,這部份還待 plugin 廠商下一個版本的支援。

現場展示

當天最吸引我的 App,是個解謎遊戲,故事完整且背景音樂太好聽了,當天雖然是展示 Windows Phone 8 版本,但之前即已成功移轉為 Windows Store App,期待它的上架! 微笑

WP_20140222_17_47_03_Pro

業界著名的 Unity 3D 老師展示的是現場惟二非遊戲類的 App,讓業務捨棄傳統的紙本說明,客戶能以 3D 方式檢視並了解大型機具的功能:

WP_20140222_17_30_10_ProWP_20140222_17_30_18_Pro

2014 Global Game Jam 參加成員,展示成果 Anna:

WP_20140222_17_20_54_Pro__highres

也是 Global Game Jam 參加者,一口氣展示了5~6款已移植到 Windows Phone 上的 Unity 遊戲!

WP_20140222_17_38_01_ProWP_20140222_17_38_22_ProWP_20140222_17_38_34_Pro

已上架 Google Play 平台,並成功移植至 Windows Phone 的學習日文小工具:

WP_20140222_17_23_40_Pro

類「勇者鬥惡龍」的 3D 冒險 RPG 遊戲:

WP_20140222_17_35_45_ProWP_20140222_17_35_59_Pro

驚險刺激的上下捲軸式射擊遊戲:

WP_20140222_17_44_09_Pro

 

相關連結:

你參加 App 怪獸爭霸戰了嗎?

我的第一個 Unity3D Windows Store App

[Unity] 開發 Windows Store App 相關資源整理

[Unity Game to Windows Store] Compile error- missing namespaces/classes

Windows Store與Unity入門

2014 Global Gram Jam 成果

 

 

 

 

 

 

 

 

 

 

 

 

 

 

WAT- 將既有網站快速轉為 Windows 8.1 App 或 Windows Phone App 的免費工具

詳細說明請見: http://blogs.msdn.com/b/johnshews_blog/archive/2014/01/28/websites-to-apps-the-web-app-template-simplifies-windows-app-development.aspx

這個工具 (Web App Template- WAT) 為微軟 RD 所開發,目的是要善用現有網站上的豐富資訊,同時提供簡單的 config 方式快速實作如: Live Tiles, Notifications by Azure, App Bar, Search 等 Windows App 上的獨有功能。

WAT-ill.png

個人認為 WAT 與 App Studio (for WP App)及 Project Sienna (for W8) 類似,不但能成為非程式開發者及網頁開發人員建制 Windows Apps 的入口,同時也能讓程式開發人員快速實作雛型 (prototyping) App。

這工具是 Visaul Studio 2013 的 擴充功能 (extension),可免費在codeplex (http://wat.codeplex.com/)下載。

安裝完成後,在 Visual Studio 2013 中「新增專案->範本 (Template) –> JavaScript」, 即可發現多了一個 “Web-App-Template” 的範本。

image

以此範本建立一個專案後,只要更動 config.json 檔案中的幾項設定,就能很快將您的網頁轉為 App 了。 (config.json 檔修改攻略: http://wat-docs.azurewebsites.net/Json)

開始實作吧!

以下以 Bill Gates 的網站為例,其網址為: http://www.thegatesnotes.com/,我們打開 config.json 檔並將 homeURL 改成此網址:

image

之後直接執行就可以了! (XD 會不會太簡單…)

image

當然,你可以開始進行進一步的整合跟修改,例如:

1. 整合網站的搜尋功能: 我們發現此網站的 Search URL 為 http://www.thegatesnotes.com/Search?search=,那就直接在 config.json 中修改 SearchURL 參數即可:

image

2. 實作 App 的 Navigation Bar: 我們以該網站下方的 Books, Education 及 Energy 等連結為例,在 config.json 檔案中的 navBar 區塊中作設定即可,如以下:

image

以下是執行後 Navigation Bar 滑出後的畫面:

image

3. 實作 Live Tiles 及 Notifications: 在 config.Jason 檔中修改 feed URL, secret 等參數:

image

4. 修改 CSS 檔以改變在 App 中的版型: 可修改 injected-styles.css, wrapper-styles.css 等檔案以套用你喜歡的版型。

image

以上僅是些許範例。所有的實作方法及說明文件請見: http://wat-docs.azurewebsites.net/

以 WAT 工具為出發點,對熟悉 HTML5/JavsScript 的開發者將其進一步修改為更有品質的 App 會是較簡單的。如以下兩個以 WAT 為啟始點所製作出來的 Apps 皆取得很高的下載數及評分!

英國的房屋買賣租賃 App: Zoopla Property

image

美國的居家工具零售商: Low’s

image 

2014 Global Gram Jam 成果 (以及Unity –> Windows Apps 實測)

如同在巴哈姆特的新聞稿中所提到,微軟為了更加豐富在 Windows Store 及 Windows Phone 市集上的遊戲 App,自去年宣佈與 Unity 及奇銳科技合作之後,更在農曆年前的1/24 (五)~26(日)周末期間,共同主辦了全球總計有近二萬人同時參加的 Global Game Jam (GGJ)。

TeckALook 採訪此連續 48 小時的馬拉松活動,並剪成 2 分鐘影片介紹:

2014 Global Game Jam

微軟對台灣遊戲開發者持續支援,將在 2014/2/22 (六) 下午於資策會舉辦一場將 Unity 遊戲移植為 Windows Apps 的免費 workshop。(細節及報名網站: http://www.accupass.com/go/unitywindowst1)

回到 GGJ 的活動,本次的經驗裡最令我驚訝的是,在台灣所有四個舉辦場地中最後上傳的22個遊戲之中,竟然有16個(或以上)是以 Unity 開發的,顯示這項遊戲設計工具在台灣現有遊戲開發者之間的普及程度。而在此同時,也提供了作為主辦單位的我們一個很好的機會,能實際測試各組以 Unity 製作的遊戲直接轉換為 Windows Store/Windows Phone Apps 的過程。 微笑

以台灣微軟場為例,上傳的7個遊戲之中有5組是以 Unity 製作,而這5組皆能直接在現場成功於 Unity 4.3.3 + Visual Studio 2013 on Windows 8.1的環境下,轉為 Windows Store/Windows Phone Apps 並順利執行。

以下列出這5組遊戲以 Windows Store App 的執行畫面。各位若對 Unity –> Windows Apps 有興趣的話,也可以直接到本次 GGJ 的遊戲上傳網頁中,下載各個遊戲的 source code,再在自己的環境之下作測試。

III SeeBrick WallsANNAJust runningWhat do you seePNG

相關連結:

Windows Store與Unity入門

我的第一個 Unity3D Windows Store App

[Unity Game to Windows Store] Compile error- missing namespaces/classes

Windows Store與Unity入門

(本文是 “Getting started on Windows Store with Unity” 文件的簡單中譯版本,出處為Unity官網中對 Unity 遊戲建置為 Windows Store/Windows Phone App 的四份正式文件其中之一)

入門: Windows Store與Unity

本文件將持續更新以提供最即時的資訊。若有此文件未能解決之處,請嘗試至Unity Windows Developer Forum中搜尋或發問: http://forum.unity3d.com/forums/50-Windows-Development

簡介

Unity 4.3 ,以及更新的版本,已讓移植Unity遊戲至 Windows Store變得更加容易。

這份文件是為Unity開發人員所寫,提供他們將現有的Unity遊戲移植為Windows Store App所需要的概觀資訊。此文件並未包含所有技術細節,但它能指引您正確的方向並提供相關的外部連結,以獲取進一步的詳細資訊。

移植 (porting) 一個 Unity 遊戲至Windows Store遊戲

要開發、編譯您的Unity 遊戲並提交到 Windows Store ,您將需要:

– Unity4.3: Unity免費版本或Unity Pro都可,兩者皆內建免費的 Windows Store和 Windows Phone add-ons 給所有的Unity開發者。

–  Visual Studio: 您可以使用任何 Visual Studio SKU,包括免費的 Visual Studio Express版本。若要移植至 Windows 8.1 將需要 Visual Studio 2013 ;若要到 Windows 8 則可以使用 Visual Studio 2012。這兩種版本可以在同一台電腦上一併安裝並執行。

–  Windows 8.0 或更高的版本: 即便您未購買 Windows 8,您也可以在http://dev.windows.com 取得 90 天的免費評估版。如果您是在Apple的機器上執行 Mac OS X ,可以有幾種選項讓您選擇以執行Windows,例如Boot Camp, VMWare 或是Parallels等。若您的目標是 Windows 8.1,則您必須在 Windows 8.1 中開發。其實,我們建議的執行環境是在Windows 8.1上執行Visual Studio 2013,原因是這樣的環境可以讓您自由選擇要移植至Windows 8或是Windows 8.1。附帶一提的是,從 Windows 8.0 升級到 Windows 8.1 是免費的,而且可直接由Windows Store中進行升級。

– Microsoft Account: Microsoft Account是免費的,可由以下網站申請 http://signup.live.com,有此 Microsoft 帳戶即可獲取免費的開發許可(Developer License)。

–  Windows Store 帳戶: 這是在您要將遊戲上架至 Windows Store時的需求。您可選擇要註冊為個人或公司帳戶,一旦完成註冊後則可同時提交至  Windows Phone Marketplace。個人帳戶註冊費用為$19,公司帳戶為$99。(譯註: 學生身份或新創公司則可享有第一年免年費優惠,可分別至http://DreamSpark.com 及http://BizSpark.com 申請)

–  Windows 測試機: 您可以在所有執行 Windows 8.0/8.1 的任何設備上進行開發及測試,Visual Studio 內建的模擬器可以模擬諸如多點觸控、各種螢幕解析度等情境;但是,我們仍建議您在具有觸控及運行Windows RT (ARM-based CPU)的實體機器上測試您的App。理想的選擇包含Surface RT 或Surface 2。

 

移植概述

要準備移植至Windows Store,您可由以下領域熟悉其流程:

– 設計階段 — — Unity Editor 經驗

– 編譯階段 — — 從Unity Editor 生成 Windows Store App

– 執行階段 — — 執行 Windows Store App

 

設計階段 — — Unity Editor 經驗

您將繼續使用所熟悉的Unity編輯器來移植遊戲至Windows Store App,這會提升您的工作效率。

在遊戲設計階段的程序是相同的,您在Unity編輯器內的Mono執行環境(run-time)中設計並執行您的遊戲。只有在您要編譯成 Windows Store專案時會注意到一些差別: Unity將使用Windows Store的.NET core (核心)來進行編譯。這裡提到的.NET core是.NET 的一個子集,因此,您可能會遇到一些編譯錯誤,其原因即來自於某些API存在於Mono的執行環境中,但並不存在於.NET core之中。若遇到這種情形您將得改寫程式碼使其能順利執行。移植技術的詳細資訊,請閱讀Porting tips for Windows Store with Unity這份文件。(譯註,或參閱以下部落格文章的step-by-step解決方法: http://blogs.msdn.com/b/mengtsai/archive/2014/01/16/unity-game-to-windows-store-compile-error-missing-namespaces-classes.aspx)

一旦成功編譯為Windows Store專案後,您即可以直接使用 Visual Studio 打開所生成的 Windows Store解決方案並進行debug。

另一個可能的差異,是發生在使用shaders和graphics功能的時候,原因是這兩項是硬體相依的功能;例如,若您在編輯器中使用PC的硬體功能設定,其硬體功能當然遠勝於ARM-based的 Windows RT 設備。而若要在設計階段時模擬實際的設備功能,請使用Unity的圖形模擬(Graphics Emulation- 位於Edit功能表)來選擇適當的目標平臺。

在Unity專案中包括 Windows Store程式碼

如果您有一些程式碼,是要在Windows Store環境下才執行,但在Unity Editor環境下不該被執行的話,可以使用 #if (UNITY_METRO & &!UNITY_EDITOR) 這個pre-processor指令。(譯註: 自Unity 4.3.3起,若要編譯為Windows 8.0請使用UNITY_METRO_8_0,若為Windows 8.1請使用UNITY_METRO_8_1。http://unity3d.com/unity/whats-new/unity-4.3.3 )。這將確保程式碼僅在所生成的Windows Store App內執行。其中!UNITY_EDITOR 是在處理於Editor中執行File->Build Settings切換到 Windows Store App時的情境。另外,請注意在Unity編輯器中執行的程式碼是不能引用 Windows run-time (WinRT) 中的 API的。WinRT API 包括了一些針對Windows 8/8.1平台的特別功能,如尋訪檔案系統及SkyDrive、使用動態磚(Live Tiles)或Contracts等;要使用這些API的話,可以在建置為Windows Store專案中後,於Visual Studio中來實作以上項目。

編譯階段–從Unity Editor 生成 Windows Store App

您將透過File -> Build Settings來切換您所要建置的遊戲執行平台:

image

您將看到右側有幾個新的選項,以下是關於這些選項的詳細資訊:

 

選擇Windows Store的類型 (Type)

在Type的下拉清單中您可以在 Direct3D11 和 XAML 之中作選擇,同時也可以在C# 或 C++語言間作選擇。我們建議先選擇XAML ,這可讓你在所見即所得的 XAML UI 設計畫面中,快速建立啟始畫面(splash screen)、設定(Settings)等各項 UI 元件。若選擇Direct3D & C++ 會生成較底層的執行元件,會有最好的執行效能,但是會犧牲一些 UI 元件設計時的整合功能而拉長設計時間。

有關這些選項的更多資訊,請參閱以下連結:

– Developing Windows Store Games – 概述了 DirectX 平臺功能的文章。

– Unlocking the Power of DirectX in Apps that use XAML – 解釋如何無縫整合 DirectX 與 XAML。

 

選擇 SDK

在Unity 4.3 您可以選擇要生成 8.0 或 8.1 版本的Windows Store App。

由於 Windows 8.1 已發佈,我們建議您選擇此為所有新遊戲的最新版本。然而,在本文件推出之時 (Nov 2013),仍有許多執行 Windows 8.0 的使用者。若要讓您的遊戲可以在8.0或8.1上皆能執行的話,您可以:

– 直接生成一個 Windows 8.0 遊戲而不使用8.1的新功能。在此情形下您將以8.0的版本提交到Store,上架後不論是執行 8.0 或 8.1 的使用者將能夠安裝並執行它。或者:

–針對8.0 和 8.1生成兩個Visual Studio 專案。在這情形下您將提交兩個遊戲套件(packages)至Store,任某版本作業系統上的使用者將只能看到其各自版本的遊戲。這種方式的優點在於可在8.1的專屬套件上新增8.1的特別功能(如Big Tile等),缺點則是需要同時控管兩種版本。

 

更多資訊請見:

Windows Store – What’s new or update in 8.1

Migrating Windows Store apps to Windows 8.1

 

Player Settings的設置和.Net 核心編譯

在Player Settings選項中,你會發現右側多了許多設定的選項以生成您的 Windows Store方案。這些設定會出現在您的Visual Studio專案中的manifest設定檔中。您可以直接在此設定應用程式名稱、 預設logo圖示、所需要的平台功能等。

image

其中請注意一個重要的設定,在Compilation Overrides的下拉選單中,其預設值是”Use Net Core”。

此預設值是要確保在編譯時,Unity中的所有scripts(但不包括 /Plugins 資料夾),都被編譯成.Net 核心設定檔。若您是做用C#的話這會是建議的設定。而如果您是使用 UnityScript (或是Boo)則將不能選擇.NET Core;這情形況Unity將使用Mono的編譯器,但仍然生成可通過Windows Store認證的assembly。

應指出的是,在這個編譯的過程中(按下Build後) 會忽略在 /Plugins 資料夾內的外掛程式及二進位檔案,也就是說即便您成功生成了Windows Store專案,您可能仍會在執行階段或上架Windows Store的驗證過程中遇到問題。

若要知道協力廠商的外掛程式是否相容於 Windows Store ,可以使用 Xamarin提供的線上工具免費掃描: http://scan.xamarin.com。

 

 

 

 

 

Windows Store專案和 Visual Studio-開發流程

以上我們提到所有可能遇到的問題,請參閱 Windows Store Porting Techniques 這份技術白皮書的Getting your app to compile in Unity章節中(第4~6頁),有更多如何解決 API 與相關錯誤的說明。 

一旦您已經解決了任何編譯時的錯誤,Unity將匯出一個專案檔,你將會使用 Visual Studio 打開、測試、執行並發布你的遊戲,亦即以下的兩個步驟:

1.從Unity生成專案。(File -> Build Settings,選擇Windows Store App -> Build)

2.在Visual Studio 中編譯為可上架Windows Store的二進位檔案

 

值得注意的是,每次以 Unity生成專案的時候,你可以每次都選擇相同的資料夾,這樣並不會覆寫到任何已在Visual Studio中所作過的修改。Unity將只更新的以下資料夾及檔案:

1. 在您專案中的/Data資料夾

2. 專案中的reference assemblies

亦即,您可以直接於Visual Studio 改變專案、添加更多功能、更改manifest或設定檔,即便您之後在Unity中更改了遊戲內容也不會丟失這些在 Visual Studio 中所作的改變。

另外要注意的是,如果您是更動了Unity的專案檔 (比如新增Plugins 或 references),您將需要手動合併您的 Visual Studio 專案檔案。

(本文僅譯至原文件的 Porting Overvew 章節)

  

Windows Store 上架網頁更新! 增加開發者對App可用性的控制

(原文: More control for app developers in the Windows Store)

重點1: 開發者現在可以自己決定幾月幾日(甚至什麼時間!)上架了。

image

重點2: 要由市集下架變得更簡單了;這特別適用於當App有bug時,在新版本上市前想先暫時下架的情況,一鍵解決!

image

另外,如果您想停止維護 Windows 8 的版本,也是一鍵即可下架 。


重點3: 上架的審核需求又再簡化了。

在我看來,幾個重要的改變包括:

1). 以App作廣告行銷的空間變得更大了,也就是"型錄"App是可以被接受的。

2). 移除了「3.8—低功率電腦的基本效能準則的需求」,同時加入了一定要通過最新版WACK測試的條文 (3.12.1),以進一步提示開發者一定要通過WACK測試,以提高審核通過機率並確保App的品質。

完整的5.0版本認證需求及修訂紀錄請見: http://msdn.microsoft.com/zh-tw/library/windows/apps/hh694083.aspx (中文)