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

作者: 章立民

出版社:碁峰

出版日期:2014/05/09

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

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

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

 

這次的BUILD大會中不但宣佈了微軟將擁抱各類型裝置的決定,同時更朝Open SourceCross-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.comhttps://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

另一個可能的差異,是發生在使用shadersgraphics功能的時候,原因是這兩項是硬體相依的功能;例如,若您在編輯器中使用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_1http://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) APIWinRT 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.08.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 (中文)