山姆鍋的「懶惰病」看來還蠻嚴重的,轉眼離上一篇文章已經是三個多月的事情了! 雖然不是最久的紀錄,但這樣還蠻誇張的。這段時間山姆鍋在台北開始了新的工作, 莫名奇妙就在做手機軟體開發,沒多久卻「漂流」到新竹清大育成中心, 負責成立並管理一個研發團隊。

不管是不是計畫趕不上變化,話說成立這個研發團隊到底是為了什麼目的? 山姆鍋就用面試時會回答的官方答案:「本團隊是以開發手遊加值的軟體與服務為主軸, 屬於公司內部創業,預期要成長茁壯為獨當一面的新創公司。」 既然是團隊,那團隊的任務就必須清楚才能讓成員知道方向。

團隊任務

此團隊目標在建立一個手遊影音分享平台,做到:

  • 讓同遊戲的玩家可以分享遊戲技巧與心得,不用再為卡關受苦。
  • 遊戲開發者可以建立遊戲專屬頻道與其玩家互動,提高遊戲黏著度。
  • 讓遊戲高手或主播可以建立節目 (直播或點播) 與粉絲分享,並創造營收。

是的,我們知道已經有公司在做類似的服務,但就讓我們假設競爭是好事。

關鍵技術

要完成最終的平台需要幾個關鍵技術,底下是山姆鍋歸納的結果:

  • 手遊畫面與聲音同步擷取後錄製與直播所需的 SDK。
  • 手機端使用者介面 (webview-based) 提供玩家與社群的功能。
  • 遊戲影音分享網站前端(browser-based):讓同遊戲的玩家可以分享遊戲技巧與討論心得等等。
  • 遊戲影音分享網站後端:提供身份認證、視訊資料儲存、分佈與串流等功能。

其中一個直播串流採用的技術是 HTTP Live Streaming,在之前的文章有分享過相關應用。

召募對象

對於開發工程師,不管是在學生或者全職人員,山姆鍋的最基本的要求:

  • 對手機軟體開發有興趣
  • 不怕技術挑戰
  • 為了任務願意學習新東西

山姆鍋認為一個人如果對於做的事情沒有興趣或者熱情,最好的情況下也只是有平庸的表現。 不管是基於對技術的熱情或者對高薪的追求,要從事軟體開發這種需要不斷學習的工作, 還真的要有內在動機才能堅持下去。

為什麼需要不怕技術挑戰?因為需要使用到手機平台比較底層的 API 才能實現相關的功能。 例如:要能夠達到至少每秒 30 張遊戲畫面擷取,還要同時做聲音輸入並錄製成影像檔。 這些都不是一般 App 開發會用到的,未來還有直播串流等相關要求,技術難度肯定是有的。

需要學習新東西這點基本上是廢話,但就是有人認為學校教的就夠了! 我們歡迎沒有工作經驗的人加入,只要您夠聰明又願意學習。

為什麼要使用 C++?

在找 iOS/Android 開發工程師時常被問到:為什麼不是 Java 或者 Objective C, 而是要找熟悉 C++ 的人?主要是基於下列原因:

  1. 為了跨平台共用程式:是的,我們需要支援多個行動平台,iOS 跟 Android 是最主要的兩個。
  2. 為了執行效率:除了 C,我想不到其他主流語言比 C++ 快。
  3. 支援物件導向:比 C 提供更高階的抽象化來解決問題,比較好維護。
  4. 需要跟 Cocos2d-x 等遊戲引擎整合:這些引擎大多是以 C++ 開發。

為什麼一定要已經熟悉 C++?

這是因為山姆鍋有個人偏見:認為 C++ 是主流程式語言裡面最難學會的。對於一個新創團隊來說, 訓練一個工程師從頭開始學 C++ 到上手,恐怕是不實際的期望。山姆鍋自己也還在持續學習 C++ 當中,有機會再來分享 C++ 跨手機平台開發 App 的經驗。 基於這個原因,已經熟悉 C++ 的高手自然就成為主要目標。這不代表說不需要會其它技能, 只是會 Java 或 Objective C,有開發過手機 app 這些都只是加分, 並不在山姆鍋找夥伴的必要條件中。

為什麼要使用 MacBook Pro 作為開發機?

山姆鍋思考事情通常都很務實,使用 MacBook 可不是因為有雅痞的 fu。理由是因為只有 Apple 的機器可以合法用來開發 iOS 相關軟體,想知道為什麼請去問 Apple 這家公司! 用了好幾年 Ubuntu 的山姆鍋也只好轉到 OSX 的作業環境下。 不過老實講, MacBook 也沒什麼好抱怨,可以方便使用眾多的開源軟體又有良好的桌面整合環境。所以, 團隊成員以 MacBook Pro 作為主要開發機就這樣定案了。

需要一定在辦公室工作嗎?

這點因人而異,但基本上,每週還是需要有一定比例的時間在辦公室。隨著對團隊的工作流程更加熟悉, 加上本身夠自律,不用到辦公室的時間自然可以加長。

小結

這段時間以來,雖然想過找人不容易,但還是比預期的困難許多,其中有些原因還是自作自受。 不管怎樣,山不轉路轉,暫時找不到適合的夥伴,那就將部分開發工作外包。在工作的時間跟地點, 山姆鍋的老闆願意支持可以有這麼高的彈性,這點在台灣應該也算是少見。