快 3 個月沒寫網誌了,這 3 個月經歷了許多變化,總算在 facebook 上架了第一個版本,目前已經有 4 台 Slot Game,開心動物園則在製作中,還有很多功能需要增加,加油!!
近期主要工作為以下:
1.將 server code 從 Google App Engine 移到 Google Compute Engine
由於 Google Cloud SQL 的寫入花費太多時間(同步 replication造成),而 Google App Engine 一次只能處理一個 request,在多連線的情況下會開啟很多 instance,費用太高了,所以改使用 Google Compute Engine 自己部署伺服器。
2.資料庫由 MySQL 改為 Redis,目前是以 Redis 作為主資料庫。
將資料庫改為 Redis,由於資料存放於記憶體的關係,大幅增加了存取速度。遊戲伺服器承載量也提升為 3,000 要求/每秒。
Redis 用來存放玩家資料與老虎機資料,設定1台 slave 做備份。每天備份 3 次並儲存到 Google Cloud Storage
3.遊戲紀錄存至 MySQL
game server 先將 log 存到 redis,再由 python 讀取並存至 MySQL 儲存。在 MySQL 連線失敗時,先暫存到本地文字檔,並於隔天再嘗試存至 MySQL。
最後附上遊戲連結:http://goo.gl/Y13Z1c
2014年4月2日 星期三
2014年1月12日 星期日
吃角子老虎機開發誌6
最近一個月開發進度,目前有 2 個美術外包,1個音效外包。
1.中獎特效實作
2.機率工具 bugs 修正與匯出資料調整
3.新增 2 台機台製作中
4.音效製作中
專案開發到目前也逼近上市時間了,針對 Server 作了測試,結果效能太差,拉霸一次要花超過 200 ms 處理,進一步追查到 Google Cloud SQL 寫入太耗費時間,發現是 replication 使用同步處理造成此結果。
目前有幾項解決方案等待測試
1.使用 memcache 存取 slot data,並使用排程寫回資料庫。也將 session data 與 user data 改用 memcache 處理並同時使用 task 非同步寫回資料庫。
2.使用效能較好的語言(?) Python 或 go 搭配 memcache 存取與部份資料移轉到 datastore。
1.中獎特效實作
2.機率工具 bugs 修正與匯出資料調整
3.新增 2 台機台製作中
4.音效製作中
專案開發到目前也逼近上市時間了,針對 Server 作了測試,結果效能太差,拉霸一次要花超過 200 ms 處理,進一步追查到 Google Cloud SQL 寫入太耗費時間,發現是 replication 使用同步處理造成此結果。
目前有幾項解決方案等待測試
1.使用 memcache 存取 slot data,並使用排程寫回資料庫。也將 session data 與 user data 改用 memcache 處理並同時使用 task 非同步寫回資料庫。
2.使用效能較好的語言(?) Python 或 go 搭配 memcache 存取與部份資料移轉到 datastore。
2013年12月9日 星期一
吃角子老虎機開發誌5
經過了一個月的開發,目前已完成水果盤(Happy Fruit)與撲克盤(Poker Club),部分彈跳訊息視窗與中獎文字也已經回圖,接下來要陸續加上特效、訊息、讓遊戲變得完整,再來新增老虎機。美術的部分要再找一個人力。
以下附上友情 iPad 內部測試圖片 與 機率工具圖片
前端的工作暫時放下,開始寫機率工具,預計明天完成後開始Server工作與機率設定串接。若Server端工作來不及的話會把 Facebook API 部分外包出去,要盡力在 1/20 上才行,否則過年後會拖到三月份才能上架了,這樣時間與資金壓力會太大。
青年創業啟動金也於12/20將撥款下來,預計40萬,要好好利用這筆資金,來做研發與營運。
以下附上友情 iPad 內部測試圖片 與 機率工具圖片
2013年11月9日 星期六
吃角子老虎機開發誌4
距離上一篇開發誌有點過久。
這段日子除了繼續開發 Slot 外,主要做了三件事情:
1.找美術外包
2.登記公司
3.申請青年創業貸款
1.
現在已經進入美術發包階段,而第一台老虎機水果盤的回圖都已經到齊,UI 也有了起色,可以說是漸入佳境。
2.
原本使用一站式來網路登記公司和健保,想不到越辦越麻煩,最後還是得紙本送交,從經濟部發展局到國稅局,到健保局設立都是由自己一手操辦,其中公司登記花了滿多時間,光是文件部分就補了兩次。若以後要登記新公司,一定直接用紙本送交,或請會計師辦理。
3.
這段時間找了玉山銀行、台灣企銀都沒有結果,其中玉山不受理青年創業啟動金的申貸,之後又問了兩間台企銀,一間說比較希望餐飲加盟業。文件全部備齊後又去問另外一間,則是說沒辦過軟體業,所以不知道該怎麼辦理。
眼看資金就快耗盡,最後到了土地銀行詢問,土地銀行則是先收件說要與主管開會討論,在等待的期間也在思考,如果土地銀行不讓我辦理要如何說服他們,如果說服不了他們,就換台灣銀行問問看。
想不到等著等著,11/5 竟然接到土地銀行的來電,告訴我可以申辦,當下真的是開心至極,當天下午就前往土地銀行填寫申請資料,目前文件也已經交齊,希望審查一切順利。
資金貸下來後,剩下的就靠自己努力把產品研發出來,然後好好營運了,加油。
這段日子除了繼續開發 Slot 外,主要做了三件事情:
1.找美術外包
2.登記公司
3.申請青年創業貸款
1.
現在已經進入美術發包階段,而第一台老虎機水果盤的回圖都已經到齊,UI 也有了起色,可以說是漸入佳境。
2.
原本使用一站式來網路登記公司和健保,想不到越辦越麻煩,最後還是得紙本送交,從經濟部發展局到國稅局,到健保局設立都是由自己一手操辦,其中公司登記花了滿多時間,光是文件部分就補了兩次。若以後要登記新公司,一定直接用紙本送交,或請會計師辦理。
3.
這段時間找了玉山銀行、台灣企銀都沒有結果,其中玉山不受理青年創業啟動金的申貸,之後又問了兩間台企銀,一間說比較希望餐飲加盟業。文件全部備齊後又去問另外一間,則是說沒辦過軟體業,所以不知道該怎麼辦理。
眼看資金就快耗盡,最後到了土地銀行詢問,土地銀行則是先收件說要與主管開會討論,在等待的期間也在思考,如果土地銀行不讓我辦理要如何說服他們,如果說服不了他們,就換台灣銀行問問看。
想不到等著等著,11/5 竟然接到土地銀行的來電,告訴我可以申辦,當下真的是開心至極,當天下午就前往土地銀行填寫申請資料,目前文件也已經交齊,希望審查一切順利。
資金貸下來後,剩下的就靠自己努力把產品研發出來,然後好好營運了,加油。
2013年9月30日 星期一
吃角子老虎機開發誌3
上禮拜中秋連續放了四天假,主要作了 chance 的功能。
一開始設計成每個 chance 都出現,測試完覺得太過頻繁。 chance 一直繁複的出現,並沒有明顯的刺激感。
最後決定只顯示chance倍率最高的那一行,並顯示出倍率,以及調整滾輪速度、停止時間,經實測感到刺激感明顯增加,到時換上正式的圖片特效可大幅的增加刺激感。
實作完chance功能之後,編譯、封裝了 iOS 版本,手機上執行效能可達 fps 40~50,繪圖次數稍高,後續可作優化處理。
2013年9月17日 星期二
吃角子老虎機開發誌2
上禮拜主要作了以下的事情:
以下為目標平台與解析度:
昨天將YourSlot改名叫MineSlot。
年營收目標1000萬NTD,加油。
- UI設定檔與建立UI流程。
- 重構Slot初始化流程以利後續功能實作。
- 串接Facebook Login。
- 設計大部分的UI,準備發包。
- 撰寫了簡單的遊戲企劃書
以下為目標平台與解析度:
- Facebook(900x600)
- iOS(640x960、1536 x 2048)
- Android(640x960、1536 x 2048 )
年營收目標1000萬NTD,加油。
2013年9月9日 星期一
吃角子老虎機開發誌1
獨立開發遊戲也快一個月了,作個紀錄。
因為一個人開發的關係,也懶得架設、維護、以及擴充Server,所以一開始就決定使用 Google App Engine 服務。碰巧發現目前有支援PHP,剛好PHP以前有寫過,也考慮到要串接 Facebook 平台,立刻就參加了 PHP Experimental 計畫。
原本的計畫是要用 ZendAMF 套件跟 Flash前端作溝通,後來發布到Google App Engine上一直無法正常運作。查到 ZendAMF 內部是使用 get_file_contents('php://input') 取得 raw data ,結果一直取得到空資料,不確定是bug還是我的問題。索性就直接拿掉AMF套件,改用JSON作為資料傳輸。
一直到這幾天開始要建資料庫時,又發現PHP並無支援有免費額度的Google Datastore......,所以只好開啟 Google Cloud SQL付費了 ;不過開發使用滿便宜的,估計1個月不到300元台幣。
使用了 Google Cloud SQL 之後,竟然不能在本地端作測試,只能發布到 Google App Engine 上測試,整個拖慢的測試的速度。希望之後 PHP 能夠趕快支援上囉。
前端程式: ActionScript 3.0 , Flex SDK 4.6 , Starling Framework
開發工具:FlashDevelop
後端程式: PHP
開發工具:Sublime Text 3
主機平台: Google App Engine + Google Cloud SQL
在這途中遇到的種種技術問題,也算是一一克服過來了,以下就是目前的樣子。
蘑菇的圖片是上網抓的,其他的UI是自己先作得代圖。目前也在考慮要不要自己買繪圖板學繪圖畫UI,還是把全部的圖片外包出去XD。
Google App Engine各種功能語言支援表
自動按鈕圖片來源:Starling Framework
因為一個人開發的關係,也懶得架設、維護、以及擴充Server,所以一開始就決定使用 Google App Engine 服務。碰巧發現目前有支援PHP,剛好PHP以前有寫過,也考慮到要串接 Facebook 平台,立刻就參加了 PHP Experimental 計畫。
原本的計畫是要用 ZendAMF 套件跟 Flash前端作溝通,後來發布到Google App Engine上一直無法正常運作。查到 ZendAMF 內部是使用 get_file_contents('php://input') 取得 raw data ,結果一直取得到空資料,不確定是bug還是我的問題。索性就直接拿掉AMF套件,改用JSON作為資料傳輸。
一直到這幾天開始要建資料庫時,又發現PHP並無支援有免費額度的Google Datastore......,所以只好開啟 Google Cloud SQL付費了 ;不過開發使用滿便宜的,估計1個月不到300元台幣。
使用了 Google Cloud SQL 之後,竟然不能在本地端作測試,只能發布到 Google App Engine 上測試,整個拖慢的測試的速度。希望之後 PHP 能夠趕快支援上囉。
前端程式: ActionScript 3.0 , Flex SDK 4.6 , Starling Framework
開發工具:FlashDevelop
後端程式: PHP
開發工具:Sublime Text 3
主機平台: Google App Engine + Google Cloud SQL
在這途中遇到的種種技術問題,也算是一一克服過來了,以下就是目前的樣子。
蘑菇的圖片是上網抓的,其他的UI是自己先作得代圖。目前也在考慮要不要自己買繪圖板學繪圖畫UI,還是把全部的圖片外包出去XD。
Google App Engine各種功能語言支援表
自動按鈕圖片來源:Starling Framework
2013年6月29日 星期六
使用FlashDevelop封裝iOS App(ad-hoc)完整流程
1.開啟FlashDevelop,Project -> New Project 建立 AIR Mobile AS3 App專案
2.建立 TextField 並輸入 "Hello World" 在場景上
3.設定SetupApplication.bat,將p12檔與發佈檔(mobileprovision)填入後執行。
參考在Windows使用OpenSSL將開發人員憑證轉換成 P12 檔案與Windows產生iOS App(ad-hoc)描述檔完整流程
public class Main extends Sprite
{
public function Main():void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
stage.addEventListener(Event.DEACTIVATE, deactivate);
// touch or gesture?
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
// entry point
// new to AIR? please read *carefully* the readme.txt files!
var text:TextField = new TextField();
text.text = "Hello World";
this.addChild(text);
}
private function deactivate(e:Event):void
{
// auto-close
NativeApplication.nativeApplication.exit();
}
}
3.設定SetupApplication.bat,將p12檔與發佈檔(mobileprovision)填入後執行。
參考在Windows使用OpenSSL將開發人員憑證轉換成 P12 檔案與Windows產生iOS App(ad-hoc)描述檔完整流程
4.執行PackageApp.bat,選擇[8] "ad-hoc" (ipa-ad-hoc),並輸入p12密碼封裝成ipa檔
在Windows使用OpenSSL將開發人員憑證轉換成 P12 檔案
1.參考在Windows產生iOS App(ad-hoc)描述檔完整流程產生的開發人員憑證檔(.cer)
2.設定環境變數Path到安裝openssl.exe的路徑下,例如C:\OpenSSL-Win32\bin
3.使用openssl產生p12檔,指令如下,可儲存為批次檔(.bat)使用。
1.在Windows產生iOS App(ad-hoc)描述檔完整流程
3.使用openssl產生p12檔,指令如下,可儲存為批次檔(.bat)使用。
@echo off
set RANDFILE=.rnd
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
openssl x509 -in mytest.cer -inform DER -out mytest.pem -outform PEM
openssl pkcs12 -export -inkey mykey.key -in mytest.pem -out mytest.p12
pause
4.執行指令後輸入密碼,確認密碼後產生p12檔完成。
參考資源:
2013年6月26日 星期三
在Windows產生iOS App(ad-hoc)描述檔完整流程
1.登入 Apple開發者網站
2.選擇紅框處進入發佈管理
4.進入 Identifiers 後,點擊右邊 + 新增 App ID
5.輸入 App ID描述、App ID然後提交
6.確定後提交 App ID
7.左列選擇Devices,按右側 + 新增 iOS 裝置
8.加入自己的裝置
9.將行動裝置連接上電腦,並從 iTunes 查看摘要,點擊序號後會出現UDID
10.按下右鍵複製UDID
11.左列選擇 Provisioning Profiles,右側按 + 新增描述檔
12.選擇 Distribution 的 Ad Hoc
13.選擇剛剛新增的App ID
14.建立憑證檔
15.選擇 App Store and Ad Hoc
16.建立CSR檔案,參考在 Windows 產生憑證簽名要求(CSR檔案)
17.選擇並且上傳CSR檔案
18.下載cer檔案
19.選擇憑證
20.選擇裝置
21.輸入描述檔名稱
22.描述檔產生完畢,下載描述檔
參考資源:
2.IOS開發者計劃
2013年6月23日 星期日
在 Windows 使用OpenSSL產生憑證簽名要求(CSR檔案)
1.安裝OpenSSL,到OpenSSL網站選取自己作業系統的安裝程式

我的作業系統是32位元所以我選擇 Win32 OpenSSL v1.0.1e安裝

我的作業系統是32位元所以我選擇 Win32 OpenSSL v1.0.1e安裝
2.設定環境變數Path到安裝openssl.exe的路徑下,例如C:\OpenSSL-Win32\bin
3.使用openssl產生csr檔,指令如下,可儲存為批次檔(.bat)使用
4.CSR檔案產生完畢
參考資源:
1.產生憑證簽名要求
3.使用openssl產生csr檔,指令如下,可儲存為批次檔(.bat)使用
@echo off
set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
set RANDFILE=.rnd
::建立專用密鑰
openssl genrsa -out mykey.key 2048
::建立 CSR 檔 , 改成自己的電子郵件地址、CN (憑證名稱) 及 C (國家/地區) 。
openssl req -new -key mykey.key -out CertificateSigningRequest.certSigningRequest -subj "/emailAddress=yourAddress@example.com, CN=John Doe, C=TW"
pause
4.CSR檔案產生完畢
參考資源:
1.產生憑證簽名要求
2.OpenSSL
訂閱:
文章 (Atom)





































