2011年1月30日 星期日

[Flex應用] 動態多國語系模組(Flex+php+MySQL)

好久沒更新BLOG,主要是本法師真的是忙到快被鬼拖走.....
事實上還真的是蠻多東西可以更新的

不過忙歸忙,該做的研究還是要做

在21世紀裡,相信將會是一個地球村的時代,網站也不例外,所以多國語系往往變成網站的必要條件,只是以傳統的做法,做多國語系要不就是事先預定要做幾國(如中、英、日),要不就是先預留幾個欄位以利後續擴充,但說來說去都不脫寫死的方法,UI部分畢竟是固定的,可以透過語系設定檔的方式來做到動態的效果,但資料庫呢?如果說今天有一間公司,他本身有自己的產品資料庫,現在擴大營業了,要走向亞洲區,所以原本的正體中文與簡體中文不夠用,他還要多日文與韓文,此時想必資料庫的結構還有後端程式碼都必需要跟著改,不僅如此,連後台上架的表單也要跟著改;如果再過幾年,他又擴大營業,跨足歐洲,這下又要多英、德、法.....等歐洲語系,然後過幾年後,公司業績不佳,結束了某些國家的業務,語系又要減少,我想講到這邊,如果你是用傳統的方式作多國語系的話,應該已經瘋掉了

有沒有什麼辦法可以避免這樣的窘(冏)境?透過一種設計模式,做到一個真正動態的多國語系,不管你要增加還是減少語系,只要透過簡單的設定,所有介面包含資料庫都會跟著動態調整,這就是這次研究的主題

先來看成果
先設定語系,多個語系以逗號隔開
然後就會動態產生對應的語系欄位
表單也會動態的變化,產生出對應的語系欄位
今年是兔年,以兔子為例,輸入正體中文
輸入英文
輸入日文

然後就對應顯示到各語系欄位上

 好,到這邊都是一般的狀況,如果說現在突然要多一個新的語系

回到語系設定裡面,把要新增的語系打上去,我們以德文為例,新增德文
顯示的欄位就多了德文

新增的表單也自動多了德文欄位
修改的表單也跟著改變了,而原本的資料,透過修改的功能,也就能新增新的語系資料
輸入德文的兔子
修改完成
如果這時要減少語系
到語系設定裡面,把不要的語系刪掉,以日文為例
日文就消失了
當然表單也伴隨修改了
當然這只是一個概念的展示,其實稍微有一點sense的話,就可以聯想到這樣的設計模式可以套用到具有後台的產品資料庫上,範例中的textarea(也可變成text input),就是產品後台的說明 (或產品名稱),然後只要一新增或減少語系,前端的UI就會自動多一個或少一個tab,而後端的程式及資料庫在這種設計模式下,將具有彈性調整的能力,不管你如何增減語系,都不需要變更後端的程式,也不需要變更資料庫的結構,這個簡單範例,我是以Flex+php+MySQL實作,當然你也可以用其他相關的程式來實作

我也把這個範例的連結附給各位,有興趣的可以上去玩玩看
http://www.cloudpeak.idv.tw/multilanguagedemo/multilanguagedemo.html

Kazuya

2010年12月4日 星期六

阿扁到底會關多久?

阿扁到底要關多久的問題?
這個問題要考慮兩點
1. 刑期
一般假釋條件是以「服刑的二分之一(初犯)」或是「三分之二(累犯)」 
2. 累進處遇的分數
累進處遇的分數要到2級, 且作業、教化、操行每項成績分數連續三個月保持三分以上


刑期的話 要看最後合併執行刑是多少 我猜14年應該跑不掉
阿扁之前在看守所關的750天 算簡單一點2年好了
(14-2)/2 最快也要6年才能假釋


再來是累進處遇的分數
2級要幾分呢?
行刑累進處遇條例 19條大家可以看一下

                                第一級  第二級  第三級  第四級
├──┼───────────┼───┼───┼───┼───┤
│五  │有期徒刑九年以上十二年│二一六│一八○│一四四│一○八│
│    │未滿                  │分    │分    │分    │分    │
├──┼───────────┼───┼───┼───┼───┤
│六  │有期徒刑十二年以上十五│二五二│二一六│一八○│一四四│
│    │年未滿                │分    │分    │分    │分    │
├──┼───────────┼───┼───┼───┼───┤
│七  │有期徒刑十五年以上十八│二八八│二五二│二一六│一八○│
│    │年未滿                │分    │分    │分    │分    │
├──┼───────────┼───┼───┼───┼───┤
│八  │有期徒刑十八年以上二十│三二四│二八八│二五二│二一六│
│    │一年未滿              │分    │分    │分    │分    │
├──┼───────────┼───┼───┼───┼───┤
│九  │有期徒刑二十一年以上二│三六○│三二四│二八八│二五二│
│    │十四年未滿            │分    │分    │分    │分    │
├──┼───────────┼───┼───┼───┼───┤


所以要看檢察官定的執行刑 先以12~15年 來算好了

每個月可拿的分數  行刑累進處遇條例 20條
(一)教化結果最高分數四分。   
(二)作業最高分數四分。   
(三)操行最高分數四分。 

但是施行細則裡有說 (21條)

監獄管理人員對各級受刑人之成績分數,應依照累進處遇由嚴而寬之原則,
嚴加核記。各級受刑人每月教化、操行成績分數,在下列標準以上者,
應提出具體事證,監務委員會並得複查核減之。  
 一、一般受刑人:   
(一)第四級受刑人教化、操行各二.五分。   
(二)第三級受刑人教化、操行各三.0分。   
(三)第二級受刑人教化、操行各三.五分。   
(四)第一級受刑人教化、操行各四.0分。 

然後作業的分數是
作業成績記分標準如左:   
一、一般受刑人作業以一般勞動能率(工作數量)為課程時,其每日成績分數依左列標準記分:
(一)課程超過者四分。   
(二)課程終結者三.五分。   
(三)課程完成十分之八以上未終結者三分。   
(四)課程完成十分之六以上未滿十分之八者二.五分。   
(五)課程完成十分之四以上未滿十分之六者二分。   
(六)課程完成十分之二以上未滿十分之四者一分。   
(七)課程完成十分之二者零分。 


假如不要算上特殊的加分或扣分, 作業分數算上滿分
4級受刑人,一個月可以拿的分數  9分 16個月後,可以升到3級
3級受刑人,一個月可以拿到分數 10分,18個月後, 可以升到2級 
total 34個月 還不到3年就可以集滿

但是如果不作業的話
4級受刑人,一個月可以拿的分數  5分 29個月後,可以升到3級
3級受刑人,一個月可以拿到分數 6分,30個月後, 可以升到2級  
60個月 大概5年可以集滿分數 

所以看起來阿扁作不作業, 對他的假釋影響不大
但是累進處遇的級數不同, 在監獄裡的爽度也不同, 比如說接見, 要三級才能接見非親屬
(但是有立委可以送小籠包所以沒差這樣??)

而且以他其他案子來說, 最後執行刑到上限20年的機會很大...
對阿扁來說, 最快的方法,應該是期望2012能民進黨當選, 然後把他放出來這樣


最後補兩個八掛
1. 北監的伙食, 其實比北所的看起來衛生好吃多了
2. 阿扁沒有特權...才怪
   北監這幾年超收的嚴重, 一間牢房5~6坪, (有圖有真像 http://ppt.cc/mweA)
   要擠16~22人, 以阿扁4級的菜鳥, 普通人的話應該是去擠這種牢房才是
   怎麼可能住獨居房然後2人1間這樣...
   還是有享受到前元首的禮遇啦

新分類成立

這邊要先公告一件事給各位朋友知道,就是有個新分類出現了,叫做【逍遙法外】,這個分類,主要是談專業的法律問題,當然,講到這邊,認識我的人都知道,這個區一定是我老婆來主筆了,因為他是法律人,我不是,特別公告出來的原因也是如此,一方面告訴大家這一塊不是我寫的,另一方面則是告訴大家有什麼法律問題的話,可以在這一個區塊提出詢問,我老婆會盡力協助各位解決法律問題的

各位,好久不見

各位朋友

好久不見了!
距本法師電腦爆炸,大概有兩三個月的時間沒更新BLOG
主要是本法師跑去度蜜月一個月,回來後一堆辦公室的事、專案和研發計畫等著本法師去處理
所以也沒時間更新BLOG
真的是很抱歉啊!

我會盡可能更新的

2010年8月23日 星期一

遊戲設計概論(3)-4

3.4    獎賞回饋
有付出就有收穫,這是在遊戲世界中不變的法則,當玩家付出了努力達成了某些目標,在遊戲設計上就必須給予玩家獎賞回饋,這樣才能不斷的刺激玩家完成下一個目標,隨著一個個目標的達成,最後就會堆疊到遊戲的最後目標。

1.    種類設計
獎賞的種類有很多,可能是角色能力的提升,可能是道具,可能是得分,可能是進一步的遊戲資訊,不過在所有的獎賞中,都不跳出一個原則,就是對玩家造成一種永久或暫時性的提升效果,使得遊戲變得更簡單。當玩家完成一個小的目標時,所給予的獎賞往往是暫時性的提升效果,如子彈數增加、隱形…..等,一方面讓玩家接下來的關卡較好進行,二方面也補足玩家為完成前一目標所耗費的補給,所以暫時性的效果往往都是消耗品的補給。永久性的效果,則是發生在玩家完成一個階段目標之後,遊戲會給予玩家能力提升或給予永久性的道具,如車輛、特殊武器、習得新法術…..等,目的是讓玩家成長變強,以邁向新的里程碑,而當玩家得到這樣的獎賞時,也會特別有成就感,進而凸顯該目標的重要性。

2.    程度設計
決定在什麼狀況下給予何種獎賞固然很重要,但獎賞的程度設計也是重點之一,玩家非常的精明而且挑剔,如果說完成一個目標給予的獎賞太小,這目標會被跳過,如果給的太大,那玩家會更貪心,希望下一個目標的獎賞能夠更大,這樣會造成獎賞通膨的現象。獎賞的程度設計一定要有他的潛在規則,不能時有時無,也不能大小失當,比方說,如果今天在惡魔城中,打倒頭目時,會掉補血球,但如果突然有其中一個不會掉補血球,玩家勢必非常錯愕,甚至起度爛,因為下一關會很難過。再比方說,如果有一個遊戲,打倒普通小敵人時,就會掉出增加HP最大值的物品,這個獎賞就過大,到最後玩家的HP會非常非常的多,多到他連吃都懶得吃,這時加HP最大值的獎賞就通膨了,變得毫無意義。

3.    期望設計
在獎賞的設計中,最後一個要注意的重點是,設計者必須決定獎賞的期望設計是隨機性還是可預期性。舉例來說,超級瑪莉裡的金幣,每蒐集到100枚可以加一隻,這就是屬於可預期性獎賞,只要玩家努力蒐集100枚金幣,就可以加一隻。但如果說今天改成每蒐集到一枚金幣,有1/100的機率會加一隻,這就變成隨機性獎賞,雖然以機率的中央極限定律來看,讓玩家蒐集個10000枚金幣下來,兩種獎賞方式加隻的次數應該是一樣,但在心理學上對玩家的影響則大不相同。可預期性的獎賞,帶給玩家的遊戲張力是有峰值的,當玩家剛開始遊戲時,並不會很熱衷於蒐集金幣,而是隨著遊戲的進展逐漸蒐集,但是到了50枚以上後,玩家會開始注意金幣的存在了,開始積極的去蒐集金幣,當到了80枚以上時,玩家甚至會願意冒險去做高難度的動作吃到金幣,或是找到隱藏的金幣磚塊,以求多拿幾枚金幣,趕快加一隻,加一隻之後,玩家對金幣的追求曲線又再度回到谷底,週而復始。而隨機性的獎賞則是玩家隨時都在期待加隻的來臨,但這個期待不會有峰值,永遠都是平的,因此也不會特別冒險去蒐集金幣,心態上會變成雖然有期待,但路上碰到吃一吃,碰個運氣看看就好。因此雖然獲得獎賞的機率一樣,但是對玩家的行為則大不相同,這兩種獎賞的期望設計並沒有好壞之分,端看遊戲類型以及你希望玩家在遊戲中的行為去設計。

4.    提示設計
前面已經提到獎賞一定與玩家達成的目標有關,如果是大的獎賞,這很容易辨識,但一些暫時性的小獎賞,如補血、補魔、加分等,玩家很容易發生吃到了但不明白效果在哪的狀況,所以這類的獎賞必須伴隨著音效或圖片效果,如吃到補血藥,發出效果音,血條亮一下,然後變長,這樣就能把玩家的動作與物件和發生效果連結在一起,玩家馬上就知道,原來這玩意兒叫補血藥,吃了會補血。

2010年8月22日 星期日

工商服務暫停一次

因為本法師的電腦炸了,這不是形容詞,重複,這不是形容詞,本法師的電腦是真的炸了.....
所以工商服務暫停一次,等到電腦恢復正常(嘆)再重新為各位服務

2010年8月15日 星期日

遊戲設計概論(3)-3

3.3    平衡
平衡對一個好的遊戲來說,是相當重要的因素,常常會聽到玩家抱怨遊戲不平衡的問題,不管是單機遊戲還是連線遊戲,平衡要做的好是很不容易的,如果玩家武器太威,遊戲會很無聊,武器太爛,遊戲會很難玩。此外,玩家本身是很聰明的,他們會在一次又一次的經驗中找到遊戲不平衡但對自己有利的地方,然後利用那個不平衡,去贏得遊戲,這樣遊戲的樂趣就會消失,如世紀帝國早期的條爆就是一種不平衡,魔獸爭霸3初期的版本(1.00),月祭的星降CD只有60秒,這也是一種不平衡,雖然這兩款遊戲到後面改版更新後,已經逐漸修正掉不平衡的地方,但我們要看到的地方是,連微軟、Blizzard這種大遊戲公司都沒辦法做到漂亮的平衡,可以知道遊戲平衡是多困難的事。有關於平衡的議題,以下分玩家間、玩家與遊戲間及遊戲內部參數平衡等三部分討論。

3.3.1    玩家間平衡
玩家間的平衡問題,往往出現在對戰類型的遊戲中,對戰遊戲的平衡設計重點在玩家必須靠著公平的方式獲得勝利,而不是運氣或是角色設定差異,如即時戰略遊戲,玩家一開始出現的地點,一個玩家周圍充滿資源,另一個玩家則是沒有資源,這樣就是相當不平衡的設計,或是格鬥遊戲中可以輸入密碼叫出隱藏角色,然後透過角色間設定的差異獲得勝利,這也是一種不平衡設計,所以坊間的格鬥天王對戰,大多看到暴走角色到處跑,只有真正的高手才會使用一般角色對戰,這就是隱藏角色造成的不平衡所致。平衡又分對稱平衡與不對稱平衡兩種。

1.    對稱平衡
所謂的對稱平衡,就是指玩家擁有的資源完全相同,比方說棋奕遊戲,所有玩家擁有的棋子都一樣,走法也一樣,彼此輪流,唯一的差異在於先手與後手,不過這樣的差異可以透過多場比賽輪流先手來消除,這就是標準的對稱平衡,對稱平衡當然是絕對的平衡,但是如果對遊戲來說,對稱平衡會讓遊戲變得單調,缺少吸引力,舉例來說,如果一個即時戰略遊戲,每位玩家的兵種都是一樣的,資源消耗也是一樣的,周圍地形也是一樣的,我相信這樣的遊戲大概沒什麼人要玩,因為雖然平衡,但不具特性,所以在遊戲設計中,必須要做到下面要討論的不對稱平衡。
2.    不對稱平衡
世紀帝國1當初被星海爭霸取代的主因,就是世紀帝國1雖然非常的平衡,但是12種種族,但部隊系統卻只有一種,而星海爭霸有三種截然不同的種族,三組部隊系統,而這三組部隊系統,巧妙的做到了不對稱平衡,因此衍生出許多不同的變化。什麼是不對稱平衡?我就以星海爭霸為例,以同樣資源消耗來說,先以基礎步兵來看,蟲族的異形狗,數量多、攻速快,但是血少;人類的陸戰隊數量次之,攻速次之,血量次之,但具有遠程攻擊能力;神族的狂戰士,數量最少,攻速最慢、血量最多,但具有護盾。事實上以同樣的資源消耗來說,這三種基礎步兵實力是不相上下的,必須靠玩家臨場反應發揮才能克敵致勝。若以整體遊戲來說,在同樣的資源消耗和時間下,蟲族可以製造出最多的部隊,人類可以建構出最強的防禦,神族可以構建出最強的攻擊,因此數量戰、攻擊戰與防禦戰彼此相生相剋,形成完美的不對稱平衡,因此星海爭霸成為了即時戰略史上的經典名作。後來的世紀帝國2,也加入了種族要素進去,讓各種族有其特色,遊戲也開始走向不對稱平衡,所以世紀帝國2遠較世紀帝國1受歡迎,自然也成為了另一經典名作。

3.3.2    玩家與遊戲設計間平衡
我們之前一直不斷強調一個重點,遊戲設計的目的,是幫助玩家在挑戰中取得最後勝利,使玩家獲得成就感,而不是去惡整玩家,讓玩家充滿挫折感,玩家會輸掉遊戲一定是因為他犯下夠多或夠嚴重的決策錯誤,而不是因為他找不到某個按鈕,但玩家身處於遊戲世界之中,資訊與操作都受制於遊戲,所以玩家與遊戲間操作平衡與資訊平衡的拿捏就變得十分重要。

1.    操作平衡
遊戲的操作設計上,必須要兼顧玩家與遊戲回饋間的平衡,比方說,一般最常見的即時戰略遊戲,當敵軍進入到我軍單位的射程範圍內時,我軍單位會自動展開攻擊;玩射擊遊戲時,按住射擊鈕會發射子彈,有的甚至可以連射,這就是一種操作上的平衡設計。試想,如果說星海爭霸裡的每一個單位,你都必須要一個一個的下指令,他們才會攻擊;射擊遊戲必須要按三下發射鈕,才會發出一發子彈,這遊戲是不是會變得很難玩?你會不會覺得遊戲在惡整你?如果因為這樣輸掉遊戲,你是不是覺得很幹?但玩家沒得選擇,只能選擇接受這種操作設計或是選擇不玩,這就是操作設計上的不平衡。

2.    資訊平衡
遊戲的資訊設計上,必須要兼顧玩家操作與遊戲回饋間的平衡,比方說,一般最常見的RPG遊戲或冒險遊戲,玩家在遊戲中,遇到一扇必須要開啟的暗門,門上面有一百顆石頭,其中一顆是開門的關鍵,當玩家滑鼠移到石頭上時,石頭會發亮,或是那顆石頭本身顏色與其他石頭不同,也有可能在先前的劇情中,玩家取得石頭座標的情報,諸如此類,輔助玩家能快速找到那顆石頭,把那扇按門打開,這就是一種資訊平衡的設計。試想,如果說今天這一百顆石頭完全沒有任何提示,必須要用試誤法從頭試到尾,運氣好第一顆就給你碰上,運氣不好要試一百次才能碰上,或是說把石頭做的很小,讓你滑鼠點得很痛苦,如果這類平常的開門關卡都做成這樣,這遊戲是不是會變得很難玩?你會不會覺得遊戲在惡整你?如果因為這樣卡關,你是不是覺得很幹?但玩家沒得選擇,因為他身處於一個陌生的遊戲世界,這世界的所有設定只有遊戲設計者本人知道,玩家只能選擇不斷浪費時間試誤或是選擇不玩,這就是資訊設計上的不平衡。

操作平衡與資訊平衡分寸拿捏的底線在於「讓玩家只把時間與精力花費在最重要的事物上」,剩下的交由遊戲程式來處理,比方說在即時戰略遊戲中,玩家把時間與精力花費在制訂戰略戰術上,制訂完畢後,下達攻擊指令,剩下的就交給程式解決了,再比方說RPG或冒險遊戲中,玩家把時間跟精力花費在了解故事劇情或是解謎上,剩下的程式會主動判斷玩家目前的行為狀態及所需要的資訊,提供適當的輔助,讓玩家遊戲進行的更順利,只要掌握到這個底線,你的遊戲就不會變成整人遊戲。

3.3.3    遊戲參數設計間平衡
所謂遊戲參數設計間平衡,是指遊戲中參數與參數間彼此有平衡的交互關係,不會產生出無意義的物件、無成長的敵人及無變化的關卡,說是簡單,但要做到完美很難,這部分的設計錯誤,其實很多遊戲都發生過,甚至是大公司出的名作都會發生,因此在做遊戲設計時,不可不慎!

1.    物件參數設計平衡
各遊戲物件的參數設計上必須要獲得平衡,使得每樣遊戲物件都有其功用,不會有所謂的「雞肋物件」出現,遊戲物件有很多種,武器、單位、敵人、道路…..等,遊戲物件會引導遊戲決策,玩家會因為他遭遇到的遊戲物件,進行思考並做出對他最有利的決策,這也是遊戲中最有趣的地方,也是玩家能掌握及控制遊戲局面的地方。但是假設遊戲中有四種武器,其中一樣武器的攻擊力是另外三樣的100倍,其他參數都相同,表面上看起來你是有四種武器可以選擇來過關斬將,但事實上玩家一定會選擇最強的那把,因此到最後剩下的那三把武器就變成無意義了。可是不可能遊戲中所有武器設定都一樣,威力都一樣,一定有強有弱,這時就需要靠其他參數來平衡,以夢幻模擬戰為例,夢幻模擬戰當中有一把劍叫彌賽亞之劍,這把劍裝備上去之後,不但不會增加攻防,反而會扣攻防,可是裝備上去之後,取得的經驗值會變成原來兩倍,這就是個很有趣的決策了,玩家是要裝備較強的武器過關斬將?還是要裝備這樣的一把劍,讓過關之路變得辛苦,但取得經驗值變成兩倍,讓角色成長速度變快?事實證明,有不少玩家為了練功而裝備這把劍,設計者透過攻擊力、防禦力跟經驗值三種參數的平衡,讓彌賽亞之劍成為傳統武器之外的另一選擇。

2.    敵人參數設計平衡
敵人參數設計自然會決定敵人的強度,隨著遊戲的進行,角色有所成長,角色變強了,敵人理論上應該要愈來愈強,這樣的推論確實沒錯,可是這邊有個大家很容易掉入的陷阱,就是當角色跟敵人在同樣的參數上變強時,對遊戲來說等於毫無變化,也就是說這樣的敵人對玩家來說,並沒有變強的感覺,就如同原本玩家攻擊力10,敵人血100,砍10刀會死,現在玩家攻擊力20,敵人血200,一樣砍10刀會死,敵人雖然變強了,但事實上並沒有變強,玩家也沒有感受到自己或敵人的成長,這樣遊戲就會變得無趣。因為玩家玩遊戲,除了遊戲角色要變強之外,最重要的是要讓玩家感受到他自己也變強了,變得更熟悉遊戲,更熟悉系統,更能控制局面,遊戲角色只是玩家在虛擬世界的代言人而已。所以剛剛的例子如果做一點修改,敵人不是單純的參數值增加,而是伴隨屬性(地火水風)改變,玩家在遊戲過程中,學習到新的法術及屬性間的生剋,然後可以透過不同屬性的法術與普攻,給予敵人重創,這樣的敵我關係就會變得有趣許多。

3.    關卡參數設計平衡
在遊戲設計中,玩家透過一個一個的關卡來了解整個遊戲的全貌,並且在遊戲的過程中,不斷學習與成長,因此在關卡設計上,必須要由易到難,一開始讓玩家作簡單的決策與控制,到後面愈來愈複雜,關卡的設計上,也不宜一開始就把所有的遊戲要素全部秀出來,這樣到最後各關都千篇一律、了無新意,在關卡參數的設計上,應該將遊戲的特色慢慢的拋出,就像一部好電影一樣,不斷的給予玩家刺激與驚喜,一直到最後破關為止。這邊舉兩個經典遊戲為例,一個是小精靈,小精靈在關卡參數設計上就稍差一些,後面的關卡只是鬼動的速度比較快,迷宮長的不一樣而已,其他的遊戲要素都沒變,所以玩久了會膩,這就是所謂無法持續給予玩家刺激與驚喜;但另一個遊戲,超級瑪莉,這就是非常經典的關卡設計了,各小關的風格完全不一樣,有平原、地城、水下或高臺、王城,各大關相同小關則是遊戲物件不一樣,比方說1-1的敵人是烏龜與壞香菇,4-1多了刺龜,8-1多了鐵龜,諸如此類的設計,讓你在全破之前永遠猜不到下一關長什麼樣,不斷有新東西加入,這就是一種刺激;讓你料想不到,這就是一種驚喜,這樣的關卡設計會讓遊戲很具黏性,一直到全破為止,如果加上多重路線,會讓人想一破再破。