認識我的人都認為我很有創意。沒錯,我也這樣認為。
創意大體上分成兩類。一種是完全新的創造,世上本來沒有的;另一種是組合性創新。前者是天生的能力,後者是培養出來的能力。我自己是組合性創新那種。回想創意是怎樣煉成,我歸功於 LEGO。
自小在屋村長大,那兒品流複雜,父母不讓我外出玩耍,只能留在家中。然而,家中最多的玩具就是 LEGO。照著說明書砌成的模型,充其量砌三五八回就會玩膩;再玩下去,就唯有自行建立目標,利用手上的積木砌成模型。積木雖然多,但不是無限。有些款式的積木是稀有而關鍵的,沒有它便無法成事;因而要好好地利用。就是這樣引發了我的創意,當時已經想像 LEGO 能配合不同的電子零件使用是多麼美妙的事情。等了差不多十年,才有 LEGO MINDSTORMS RCX 的誕生...。
透過重新組合能砌成心中所想的模型,是 LEGO 帶給我的東西。編程也是將不同的東西重新組合。相信我的編程能力也是這樣煉成的。所以,現在我也很鼓勵孩子玩 LEGO。
My studies, development and creations on Robotics, iPhone Apps, Andriod Apps,...etc.
2013年4月29日 星期一
重新發明
Re-invent
2011 年發明了 OTA。2012 年發明了 iPad Kinect 體感操控。來到 2013 年的首四個月,腦裡一片空白。直至上周三,終於有新發明。
今次重新發明了某樣已有的東西。在互聯網上找不到任何類似的做法。我急不及待把想法變為程式碼印證概念的可行性,結果順利製成了 Prototype。稍後會加入介面部份,包裝成獨立 App 形式推出。這是我第二次感受到發明了能改變世界的東西(第一次是在十幾年前,發明了「Pop'n Music」般的音樂遊戲,當時第一代音樂遊戲在半年後才出現。恰巧那個遊戲設計是給日本 SSD 公司,而他們正正跟 Konami 有商業來往…),那時沒有好好(也不懂得)抓住機會。幾個聽過新發明的人,都認為是非常聰明的概念;我自己也十分喜歡這個創意,抱有很大的期望。甚至夢想能因此被 Apple 或 Google 收購,希望有朝一日成真啦!哈哈~
2011 年發明了 OTA。2012 年發明了 iPad Kinect 體感操控。來到 2013 年的首四個月,腦裡一片空白。直至上周三,終於有新發明。
今次重新發明了某樣已有的東西。在互聯網上找不到任何類似的做法。我急不及待把想法變為程式碼印證概念的可行性,結果順利製成了 Prototype。稍後會加入介面部份,包裝成獨立 App 形式推出。這是我第二次感受到發明了能改變世界的東西(第一次是在十幾年前,發明了「Pop'n Music」般的音樂遊戲,當時第一代音樂遊戲在半年後才出現。恰巧那個遊戲設計是給日本 SSD 公司,而他們正正跟 Konami 有商業來往…),那時沒有好好(也不懂得)抓住機會。幾個聽過新發明的人,都認為是非常聰明的概念;我自己也十分喜歡這個創意,抱有很大的期望。甚至夢想能因此被 Apple 或 Google 收購,希望有朝一日成真啦!哈哈~
2013年4月26日 星期五
麻將大戰
Battle Mahjong
本周上架的「麻將大戰」是兩年前想出來的玩法。一直都忙著應付客人的項目,當時同事剛入職,未有足夠的開發能力。如今人手多了,時間多了,終於可以著手製作。
七年前曾在 Lakoo 開發 J2ME 黑白麻雀遊戲。那時的手機效能不高,能摸擬四人枱局,加上連線對戰,是不錯的噱頭。可是,每一輪的等候時間太久,而且容易斷線,最終失敗收場。
吸收了經驗之後,今次開發的遊戲改為慣用的二人對戰。以往花很多時間去解決檢查組合是否能夠食出,現在處理同樣問題來得快了很多。市面上的麻將遊戲實在太多,造一款一式一樣的話,似乎沒有多大的吸引力。為了尋求突破,我嘗試更改遊戲玩法,加入迴轉壽司帶。使得打麻將變成吃壽司一樣,要哪隻,拿那隻。雖然看起來少了運氣,但要跟對手搶牌,又要眼明手快,節奏明顯加速了。我不知道大家是否接受這個玩法,但對於繁忙的都市人,在一個地鐵站的車程能完成一個回合,應該是不錯的事情吧!
本周上架的「麻將大戰」是兩年前想出來的玩法。一直都忙著應付客人的項目,當時同事剛入職,未有足夠的開發能力。如今人手多了,時間多了,終於可以著手製作。
七年前曾在 Lakoo 開發 J2ME 黑白麻雀遊戲。那時的手機效能不高,能摸擬四人枱局,加上連線對戰,是不錯的噱頭。可是,每一輪的等候時間太久,而且容易斷線,最終失敗收場。
吸收了經驗之後,今次開發的遊戲改為慣用的二人對戰。以往花很多時間去解決檢查組合是否能夠食出,現在處理同樣問題來得快了很多。市面上的麻將遊戲實在太多,造一款一式一樣的話,似乎沒有多大的吸引力。為了尋求突破,我嘗試更改遊戲玩法,加入迴轉壽司帶。使得打麻將變成吃壽司一樣,要哪隻,拿那隻。雖然看起來少了運氣,但要跟對手搶牌,又要眼明手快,節奏明顯加速了。我不知道大家是否接受這個玩法,但對於繁忙的都市人,在一個地鐵站的車程能完成一個回合,應該是不錯的事情吧!
2013年4月25日 星期四
Toys Factory
又一套作品《Toys Factory》上架了。今次是遊戲項目,也是由我設計。概念很久以前已經在腦海出現。玩法很簡單,就是按訂單的要求製造足夠的玩具。遊戲由一隻機械臂開始組合玩具,到後來的三隻機械臂。看起來好像很簡單,玩起來卻可是手忙腳亂。
遊戲沒有加入高難度的編程要求,最適合用來訓練同事開發遊戲項目。單是那條運輸帶,已經要花點心思才能完成。待同事們的功力提升後,會挑戰更高難度的遊戲項目。期待這日的到來!
2013年4月24日 星期三
2013年4月23日 星期二
永遠懷念妳

陳僖儀這個名字對我來說十分陌生,印像中曾在 HMV 店前的大型海報見過這個名字。她是誰?唱歌怎樣?沒看電視的我沒有留意過。直至 7 天前的早上,在 Facebook 上看到朋友們發佈的悼念訊息。一位香港新晉女歌手遇上交通意外死亡。本來不看娛樂新聞的我,亦因為朋友們的反應而開始搜尋關於她的新聞。
越是搜尋、越是喜歡她、越是覺得可惜。在 YouTube 上聽過她的《忘川》,唱得很好,忍不住在 iTunes 購買她的音樂。作為對她的欣賞、對她及她家人的支持。只是覺得認識她太遲。
在 Facebook Page 及 Instagram 中感受到她很熱愛音樂、感受到她的活力。看得到她雖然年紀輕輕,但很有魄力、工作十分努力。她是我除了 Steve Jobs 離世之外,最有感受、最有感覺的陌生人。今日是 Sita 的頭七,希望她一路好走。永遠懷念妳。
P.S.: 陳僖儀已經離開了 天。
2013年4月21日 星期日
下載 Facebook Page 內所有相片連註解

繼續做「宅」事。今天是 Facebook Page 內的相片。
跟昨天「下載 Instagram 帳號內全部的相片」差不多,都是先以 Safari 打開 Facebook Page 的相片頁,一直把畫面向下拉以載入所有相片。確保 Safari > Preferences... > Advanced > Show Develop menu in menu bar 是打勾的。然後在其中一張相上右擊,選「Inspect Element」。把當前的 div 收縮並點選上一層的 div,按 Command-C 把整個 div 內容保留。打開《TextWrangler》,建立新文件及按 Command-V 把內容貼上,儲存為 facebook.dat。在運行 PHP 的網頁服務器建立新目錄 Facebook,把權限設定為 777。把 facebook.dat 拷進去,再建立 index.php,把以下的程式碼貼進去。這樣,只要執行 index.php 便能自動下載所有相片,並且檔名會加入相片的註解。
<?php header("Content-Type:text/html; charset=utf-8"); set_time_limit(0); $filename = "facebook.dat"; $fileContent = file_get_contents($filename); $count = 1; $offset = 0; $length = strlen($fileContent); echo("File size: $length<br>"); while ($length > $offset && $count < 5000) { // Search for photo from data $imgContainer = strpos($fileContent, "ajaxify", $offset); $src = strpos($fileContent, "src=https", $imgContainer); $jpg = strpos($fileContent, ".jpg", $src); $png = strpos($fileContent, ".png", $src); $endPosition = $png; if ($jpg < $png && $jpg > $src) {$endPosition = $jpg;} // Get photo description $description = ""; $size = ($endPosition+4)-($imgContainer+9); $urlString = substr($fileContent, $imgContainer+9, 5); if ($urlString == "https") { $urlString = substr($fileContent, $imgContainer+9, $size); // Load photo page $photoPageContent = file_get_contents($urlString); // Search for photo description $hasCaption = strpos($photoPageContent, "hasCaption"); $captionStart = strpos($photoPageContent, "/>", $hasCaption)+2; $captionEnd = strpos($photoPageContent, "</span>", $hasCaption); $size = $captionEnd-$captionStart; $description = substr($photoPageContent, $captionStart, $size); // Skip non-standard characters $searchArray = array("<br />", "<span>", "</span>"); $replaceArray = array("", "", ""); $description = str_replace($searchArray, $replaceArray, $description); } // Get photo filename $size = ($endPosition+4)-($src+4); $filename = substr($fileContent, $src+4, $size); // Unescape $filename = htmlspecialchars(urldecode($filename)); echo("<br>$count) $filename / $description"); // Copy file from Facebook $basename = basename($filename); copy($filename, $description."_".$basename); // Prepare for next round if ($endPosition > $offset) {$offset = $endPosition; $count++;} else {$count = 5000; echo("<br>--- Done ---");} } ?>
2013年4月20日 星期六
下載 Instagram 帳號內全部的相片
Backup all photos of an account in Instagram

今日做了件很「宅」的事情。我想把某人在 Instagram 中的相片完整地保留下來。在網上搜尋相關方法,找到了一個付費軟件。孤寒的我不願花錢,最後自己動手做。
首先用 Safari 載入她的 Instagram 頁,一直把畫面向下拉及點擊「Loading More...」把所有相片載入。確保 Safari > Preferences... > Advanced > Show Develop menu in menu bar 是打勾的。然後在其中一張相上右擊,選「Inspect Element」。把當前的 div 收縮並點選上一層的 div,按 Command-C 把整個 div 內容保留。打開《TextWrangler》,建立新文件及按 Command-V 把內容貼上,儲存為 instagram.dat。在運行 PHP 的網頁服務器建立新目錄 Instagram,把權限設定為 777。把 instagram.dat 拷進去,再建立 index.php,把以下的程式碼貼進去。這樣,只要執行 index.php 便能自動下載所有相片。

今日做了件很「宅」的事情。我想把某人在 Instagram 中的相片完整地保留下來。在網上搜尋相關方法,找到了一個付費軟件。孤寒的我不願花錢,最後自己動手做。
首先用 Safari 載入她的 Instagram 頁,一直把畫面向下拉及點擊「Loading More...」把所有相片載入。確保 Safari > Preferences... > Advanced > Show Develop menu in menu bar 是打勾的。然後在其中一張相上右擊,選「Inspect Element」。把當前的 div 收縮並點選上一層的 div,按 Command-C 把整個 div 內容保留。打開《TextWrangler》,建立新文件及按 Command-V 把內容貼上,儲存為 instagram.dat。在運行 PHP 的網頁服務器建立新目錄 Instagram,把權限設定為 777。把 instagram.dat 拷進去,再建立 index.php,把以下的程式碼貼進去。這樣,只要執行 index.php 便能自動下載所有相片。
<?php set_time_limit(0); $filename = "instagram.dat"; $fileContent = file_get_contents($filename); $count = 1; $offset = 0; $length = strlen($fileContent); echo("File size: $length<br>"); while ($length > $offset && $count < 1000) { $imgContainer = strpos($fileContent, "imgContainer", $offset); $src = strpos($fileContent, "src=", $imgContainer); $jpg = strpos($fileContent, ".jpg", $src); $size = ($jpg+4)-($src+4+1); $filename = substr($fileContent, $src+4+1, $size); echo("<br>$count) $filename"); // Resolution of xxx_7.jpg is higher than xxx_6.jpg $fullSizeFilename = substr($filename, 0, $size-5)."7.jpg"; $basename = basename($fullSizeFilename); copy($fullSizeFilename, $basename); // strpos will loop back if ($jpg > $offset) {$offset = $jpg; $count++;} else {$count = 200; echo("<br>--- Done ---");} } ?>
2013年4月19日 星期五
Weather Kids

小弟的最新免費作品《Weather Kids》已經登陸 App Store。這個概念有了很久,終於有時間有機會把她開發出來。我很滿意整體的表現及效果。希望你也喜歡。
有興趣的朋友可到 https://itunes.apple.com/hk/app/weather-kids/id598524868?mt=8 下載。iOS 全機型支援。
2013年4月18日 星期四
Facebook Home

聽了 Facebook Home 有一個星期了,作為 IT 界的朋友、Facebook 又是開發平台之一,一定要了解一下才行。拿來 Samsung Galaxy Note II 進行安裝。由於公司機沒有安裝 Facebook,所以要先行安裝。Android 的龜速下載,花了半小時才下載完成。簡單設定一下 Facebook Home 便能正式測試。整體感覺很像 Flipboard,唯一不同是 Facebook Home 會自動跳到下一個故事。不過,要回到首個故事,就得一頁一頁回撥,很不方便。最令我關注的是鎖機畫面仍然顯示著 Facebook 朋友的故事,私隱程度是零。把玩了一會兒,興趣缺缺,還是喜歡原來的 Facebook。
2013年4月17日 星期三
拉闊圖書館.四:圍棋入入入門
2013年4月16日 星期二
「反斗車王」線路測試
雖然是很簡單的線路及程式,都花了很多時間才能完成。今次「反斗車王」改造計劃,會以 Arduino Nano 作為核心、以 BLE mini 作為接收、以 L293D 作為動力制禦。以上片段除了印證到線路及程式正確之外,在拍攝之前已經失敗多次;汲收了相關經驗:如何接線、如何使用兩組電源、如何使用 SoftwareSerial...等,將有助日後不會重滔覆轍。
2013年4月15日 星期一
「麥坤」1.00
既然硬件已經齊全,先來做過測試,以證實線路是可行的。那要寫軟件部份。
//============================================================================== // Arduino Receiver for Cars McQueen // Start date: 2013-Apr-14 // Written by Pacess HO // Copyright Pacess HO, 2013. All rights reserved. //============================================================================== //------------------------------------------------------------------------------ // 0 1 2 3 4 5 6 7 8 // 5678901234567890123456789012345678901234567890123456789012345678901234567890 // Arduino Ports // D12 = Acceleration enable // D11 = Turn enable // D8, D7 = Acceleration direction flag // D6, D5 = Turn direction flag // D2 = Head LED // Motor flags // H, L = Forward / Left // L, H = Backward / Right // L, L = Stop / Middle // Commands // 0 = Stop // 1 = Move forward // 2 = Move forward left // 3 = Move forward right // 4 = Move backward // 5 = Move backward left // 6 = Move backward right // 7 = Light on // 8 = Light off // 9 = DEMO //------------------------------------------------------------------------------ #define SERIAL_BAUDRATE 57600 //------------------------------------------------------------------------------ // Global variables int _led = 2; int _accelerationEnable = 12; int _accelerationPortArray[] = {8, 7}; int _turnEnable = 11; int _turnPortArray[] = {6, 5}; int _debugLight = 13; int _debugLightValue = LOW; //------------------------------------------------------------------------------ void setup() { // Initialize serial port Serial.begin(SERIAL_BAUDRATE); // Firmata.setFirmwareVersion(FIRMATA_MAJOR_VERSION, FIRMATA_MINOR_VERSION); // Firmata.begin(SERIAL_BAUDRATE); // Setup motor ports for (int i=0; i<2; i++) { pinMode(_accelerationPortArray[i], OUTPUT); pinMode(_turnPortArray[i], OUTPUT); } pinMode(_accelerationEnable, OUTPUT); pinMode(_turnEnable, OUTPUT); // Setup LED port pinMode(_led, OUTPUT); pinMode(_debugLight, OUTPUT); } //------------------------------------------------------------------------------ void loop() { if (Serial.available() <= 0) { Serial.print("."); delay(500); return; } // If there's any serial available, read it: while (Serial.available() > 0) { char commandByte = Serial.read(); if (commandByte < '0' || commandByte > '9') {continue;} // Command is between 0-9 switch (commandByte) { case '0': {moveStop(); turnMiddle();} break; case '1': {moveForward(); turnMiddle();} break; case '2': {moveForward(); turnLeft();} break; case '3': {moveForward(); turnRight();} break; case '4': {moveBackward(); turnMiddle();} break; case '5': {moveBackward(); turnLeft();} break; case '6': {moveBackward(); turnRight();} break; case '7': {headLightOn();} break; case '8': {headLightOff();} break; case '9': {demo();} break; } } // Tell controller a loop is done Serial.print("!"); _debugLightValue = (_debugLightValue == LOW) ? HIGH : LOW; digitalWrite(_debugLight, _debugLightValue); } //------------------------------------------------------------------------------ void moveForward() { digitalWrite(_accelerationPortArray[0], HIGH); digitalWrite(_accelerationPortArray[1], LOW); } //------------------------------------------------------------------------------ void moveStop() { digitalWrite(_accelerationPortArray[0], LOW); digitalWrite(_accelerationPortArray[1], LOW); } //------------------------------------------------------------------------------ void moveBackward() { digitalWrite(_accelerationPortArray[0], LOW); digitalWrite(_accelerationPortArray[1], HIGH); } //------------------------------------------------------------------------------ void turnLeft() { digitalWrite(_turnPortArray[0], HIGH); digitalWrite(_turnPortArray[1], LOW); } //------------------------------------------------------------------------------ void turnMiddle() { digitalWrite(_turnPortArray[0], LOW); digitalWrite(_turnPortArray[1], LOW); } //------------------------------------------------------------------------------ void turnRight() { digitalWrite(_turnPortArray[0], LOW); digitalWrite(_turnPortArray[1], HIGH); } //------------------------------------------------------------------------------ void headLightOn() { digitalWrite(_led, HIGH); } //------------------------------------------------------------------------------ void headLightOff() { digitalWrite(_led, LOW); } //------------------------------------------------------------------------------ void demo() { }
2013年4月13日 星期六
2013年4月12日 星期五
2013年4月11日 星期四
「反斗車王」改造

一年多前把「反斗車王」引擎升級後效果不太理想,車子的起動較慢,要行一會才順暢起來。最近又想把它改裝,變成用 iPad + 藍牙 4.0 控制的遙控車,甚至加入車頭白燈及車尾紅燈。但以上修改,首先要有一顆 MCU。原本打算用 ATmega-128 達成,它體積細小且易用。不過花了一段時間,stk500_v2_receivemessage 問題仍然無法解決,程式無法下載到 ATmega 內。結果只好轉用其他 MCU。目前來說,Arduino Nano 是十分好的選擇。正當要在淘寶網購買時,發現網友剛好有兩顆未開封的 Arduino Nano,於是立即向他各以 HK$60 購入。雖然比淘寶網貴一點點,但勝在立即到手。便於在星期六日進行改造!
2013年4月10日 星期三
dnsmasq

今日受到友人的啟發,嘗試安裝 dnsmasq 到 CentOS 服務器,認識到原來透過更改 DNS 設定,有可能達至修改遊戲的目的。
舉個例子:遊戲 A 提供了 In-App-Purchase 購買代幣的功能。要是把 Apple In-App-Purchase 服務器及遊戲服務器的 Domain name 指向自己設定的服務器,再欄截中間溝通的內容。把這些內容放到服務器的程式內,待下次購買時傳回相同的內容,便有機會達到免費購買的結果。當然,這要視乎編程人員有否加入檢查機制。暫時,我試過把自己公司的域名指向內部服務器的實驗,能成功顯示其他內容,相信以上想法是有可能實現。估計網上遊戲的私服也是相同的原理。往後自家的產品也會針對這個原理加入防犯機制...。
2013年4月9日 星期二
改善 Mac 在網絡上的速度
2013年4月8日 星期一
2013年4月7日 星期日
BeyondZ 兩歲生日快樂
今天是「BeyondZ」的兩歲生日。除了我一個,沒有人記得。所以公司沒有搞甚麼慶祝活動。說來也沒有甚麼好慶祝。兩年來的努力,還未能達到回本的目標。
一轉眼創業已經有兩年時間。我發現自己喜歡話事、喜歡自由。SOHO 較適合我。雖則收入不會穩定,但勝在可以發揮想像空間,及向喜歡的方向前進。日後有機會必定要嘗試 SOHO 滋味。
2013年4月5日 星期五
甭 Jailbreak 關閉《Hardest 2 HD》廣告
2013年4月4日 星期四
2013年4月3日 星期三
求知的心
最近幾個新項目的預定開發時間為一個月之內,但全部都無法達成。大多都超出一倍,甚至是兩倍的時間。原因有三:一是沒有充足清楚的流程設計;二是有突發事情需要立即處理;三是同事的經驗不足。我認為最主要的原因是後者。
就以「影像分析」為例。我預計一天半能完成的工作,開出五天時間給同事處理。雖然同事在大學修讀過相關課程,但畢竟也是新鮮人,所以給予五天時間。給了點方向後便開始製作。五天後,甚麼也做不到。原本想再給他時間,但有些事還是不能勉強。改由另一位較為資深的同事處理。他的學習能力很強,因此給他三天時間。這次做出點成績,但成功率低,使用性也很低。最後只好親自上陣,一天搞定。
我沒讀過大學、修的是文科、會考只有兩分。編程技巧全是看書自學,是實戰鍊成出來。跟讀大學修理科的同事,不同的是經驗。經驗源於興趣,興趣源於求知的心。而我的興趣是編程、遊戲及機械人。由於機械人開發能用上影像分析、遊戲開發能用上影像處理,所以我也有吸收影像相關方面的技巧。使用簡單的方法,加上細心思考,便能做出來。
說他們沒有幹勁?看來不是,他們有時做到晚上十一時才回家;說他們沒有心?又似乎不是,他們會上網找、從書找。不過,我看到一個問題。當網上沒有答案、書中沒有方法時,他們就停了,沒有嘗試自己思考來解決問題。看見同事們很努力工作,仍然做不出成績;很想幫助他們,但沒有頭緒。
就以「影像分析」為例。我預計一天半能完成的工作,開出五天時間給同事處理。雖然同事在大學修讀過相關課程,但畢竟也是新鮮人,所以給予五天時間。給了點方向後便開始製作。五天後,甚麼也做不到。原本想再給他時間,但有些事還是不能勉強。改由另一位較為資深的同事處理。他的學習能力很強,因此給他三天時間。這次做出點成績,但成功率低,使用性也很低。最後只好親自上陣,一天搞定。
我沒讀過大學、修的是文科、會考只有兩分。編程技巧全是看書自學,是實戰鍊成出來。跟讀大學修理科的同事,不同的是經驗。經驗源於興趣,興趣源於求知的心。而我的興趣是編程、遊戲及機械人。由於機械人開發能用上影像分析、遊戲開發能用上影像處理,所以我也有吸收影像相關方面的技巧。使用簡單的方法,加上細心思考,便能做出來。
說他們沒有幹勁?看來不是,他們有時做到晚上十一時才回家;說他們沒有心?又似乎不是,他們會上網找、從書找。不過,我看到一個問題。當網上沒有答案、書中沒有方法時,他們就停了,沒有嘗試自己思考來解決問題。看見同事們很努力工作,仍然做不出成績;很想幫助他們,但沒有頭緒。
2013年4月2日 星期二
雙線發展的問題
另一個我認為要專注的原因,是因為客戶應用跟自家應用的技術是可以南轅北轍。
例如客戶的應用會用上 AR 技術、室內定位技術、超聲波技術、體感技術…等。這些技術是自家應用較為少用。或者說得明白一點,自家應用多是遊戲類或平台類,使用的是比較大眾代的技術,不太需要標旗立異的方式進行。
雙線發展的話,一方面要構思遊戲的玩法、故事、內容、設定;另一方面要兼顧新技術的學習、發明、應用,甚至是客人提出的改動。兩者都是很花時間才能完成。雖然說把公司當成兩家公司營運、把同事分為兩組進行各自的方案看來是可行,但這要視乎人手的規模,以及管理層的方向是否清楚明白。至少目前為止,我做得吃力之餘,兩者都兼顧都不好…。
例如客戶的應用會用上 AR 技術、室內定位技術、超聲波技術、體感技術…等。這些技術是自家應用較為少用。或者說得明白一點,自家應用多是遊戲類或平台類,使用的是比較大眾代的技術,不太需要標旗立異的方式進行。
雙線發展的話,一方面要構思遊戲的玩法、故事、內容、設定;另一方面要兼顧新技術的學習、發明、應用,甚至是客人提出的改動。兩者都是很花時間才能完成。雖然說把公司當成兩家公司營運、把同事分為兩組進行各自的方案看來是可行,但這要視乎人手的規模,以及管理層的方向是否清楚明白。至少目前為止,我做得吃力之餘,兩者都兼顧都不好…。
2013年4月1日 星期一
BeyondZ Games
兩年時間可以是很漫長。不過一切已經結束。指的是跟舊公司訂下的兩年不直接競爭的冷河期。
說來真的很後悔簽訂這條不平等條約,不過當時需要一份穩定的工作,Nuthon 當時又不需要全職開發人員,唯有接受。有朋友說我可以默默地做,但我不擅於說謊,亦不喜歡說謊。又不像其他舊同事般沒有條例的約束。況且,要是遊戲做得好的話,自然也會露底。倒不如堂堂正正地做。
現在我可以不受約束地開發喜愛的遊戲。因此打算為公司加入兩個品牌:BeyondZ Games 及 BeyondZ Labs。前者負責遊戲開發,後者負責科技研究項目。希望能在遊戲方面殺出一條財路。
說來真的很後悔簽訂這條不平等條約,不過當時需要一份穩定的工作,Nuthon 當時又不需要全職開發人員,唯有接受。有朋友說我可以默默地做,但我不擅於說謊,亦不喜歡說謊。又不像其他舊同事般沒有條例的約束。況且,要是遊戲做得好的話,自然也會露底。倒不如堂堂正正地做。
現在我可以不受約束地開發喜愛的遊戲。因此打算為公司加入兩個品牌:BeyondZ Games 及 BeyondZ Labs。前者負責遊戲開發,後者負責科技研究項目。希望能在遊戲方面殺出一條財路。
訂閱:
文章 (Atom)