All posts by wwboy6

Game Design - Programming - Playing
jaquet-droz_the-signing-machine-d_l

Mechanical Autopen

原來呢個世界有純機械寫字機
係”寫”字唔係打/印字!
http://www.watchonista.com/2914/watchonista-blog/news/signing-machine-jaquet-droz

仲要係1803年就有
有人仲話佢係電腦嘅最早版本
http://en.wikipedia.org/wiki/Autopen

奧巴馬仲用過黎簽法案添!~(雖然唔係好合法⋯⋯)
http://www.cbsnews.com/news/can-you-tell-the-autopen-from-obamas-real-signature/

睇完真係覺得好神奇
仲有啲心郁想買返部
但係諗真啲其實個原理好簡單
而且比人偷咗可能會比人係咁攞去簽嘢@@
個原理睇下呢條片就明嫁啦:
https://www.youtube.com/watch?v=hdPsskgQ-0k

咁當然要做得準就唔係咁易啦~

hqdefault3

Unreal 4 + Oculus Rift 筆記

撞正Unreal 4 Free咗又接到個Oculus job 做,
就好快手咁玩咗一陣。
初步感覺Crash嘅情況係有但係唔多,
除咗load新project會有啲耐之外performance都算好好,
document好簡陋但有unreal answer補夠。
新engine多咗fancy嘢,又唔洗錢,
明顯係Unity做得太好,佢地要急起直追啦XD

Unreal / Oculus Notes

  • Unreal本身就support oculus,唔洗裝plugin,就咁run個app fullscreen就會自動開stereo mode
  • 我部mbp一開stereo就好鬼慢,暫時未知個bottleneck喺邊。不過做Oculus app就一定要搞好performance
  • Quality Settings: https://answers.unrealengine.com/questions/23023/trouble-configuring-game-settings.html
    P.S. sg.ResolutionQuality好似影響唔到Oculus
  • Disable smooth frame rate: Project Settings -> Engine -> General Settings -> Framerate -> turn off smooth frame rate. 啲人話呢個唔會影響framerate但我見會減咗少少,而且frame rate好低嘅時候唔需要control frame rate
  • Ambient Sound: 記住個聲音檔format要係wav,仲一定要係Mono,否則個engine會做唔到因應player位置嘅立體聲
  • 自動fullscreen: 建立 DefaultGameUserSettings.ini 放入去 project_folder/Config 入面:
    [/Script/Engine.GameUserSettings]
    bUseVSync=False
    ResolutionSizeX=1920
    ResolutionSizeY=1080
    LastUserConfirmedResolutionSizeX=1920
    LastUserConfirmedResolutionSizeY=1080
    WindowPosX=-1
    WindowPosY=-1
    bUseDesktopResolutionForFullscreen=False
    FullscreenMode=0
    LastConfirmedFullscreenMode=2
    Version=5

    P.S. bUseDesktopResolutionForFullscreen唔肯定係唔係False

  • Trick: 個scene冇光源,加ambient cubmap,用有illumination 嘅material做燈光效果,物件加reflection,就可以冇lighting 嘅情況下做到好似有lighting咁,Performace超高。P.S. Unreal 嘅reflection做得出奇地快

Post Process Volume

喺Modes入面search “Post Process Volume” 加入去個scene度,喺Details做settings(將個feature嘅intensity set做0就可以熄咗佢):

  • Post Process Volume – Unbound: turn on令佢影響整個scene,而唔理佢個brush settings
  • Bloom: 光暈。呢個效果出奇地重,較細啲會好啲,但係冇咗又差好遠。就算個scene冇光源,佢對illumination都有效
  • Ambient Cubmap: Unreal冇 “Ambient Light”,所以要用cubmap。Unreal 只係Support 32bits/Channel, 8.8.8.8 ARGB 32 bpp, unsigned。如果做咗個cubmap import唔到可能係因為未set 32 bpp https://docs.unrealengine.com/latest/INT/Engine/Content/Types/Textures/Cubemaps/CreatingCubemaps/index.html
  • Lens Flares: 都係熄咗佢好啲⋯⋯
  • Global Illumination: 可以一次過調整所有illumination。注意有illumination嘅物件唔會令周圍嘅嘢光咗,所以要加cubmap
  • Motion Blur: 喺Oculus Rift見到Motion Blur仲衰過見唔到,一定要熄咗佢

Animation Transition Blending

唔知點解網上面search到嘅blending都好鬼複雜,如果你只係想做個好簡單嘅transition blending,由一個animation blend去另一個animation,首先create個animation blueprint,係入面create個state machine:
https://docs.unrealengine.com/latest/INT/Engine/Animation/StateMachines/CreatingStateMachines/index.html

然後喺個transition rules度set高返 Blend Settings -> Transition Crossfade Sharing -> Duration 就OK了。

Matinee

識用真係幾好用,雖然又多bug又多唔方便嘢XD

首先我解釋下點用:

  • create一個matinee actor,然後select佢,喺details度click “Open Matinee” 就會開咗個Matinee Editor。
  • 喺個scene度㨂咗個actor之後係Matinee Editor -> Tracks -> 左邊個section度add new empty group就會出咗嗰個actor嘅group。
  • 再對個group right click -> Add New Movement Track就可以animation個action走黎走去
  • 㨂咗track同時間之後按enter開keyframe
  • 返去個scene度set position / rotation 等等
  • 見到有條線track住點郁就成功啦
  • 返去matinee editor可以調整個curve

不過好多唔方便嘢大家要記得:

  • 如果喺matinee editor select個keyframe就會select返相應嘅actor,但係一deselect咗個actor就會deselect個keyframe,再郁個actor都唔會edit個keyframe。你要返去matinee editor select返個keyframe再返黎個scene度改。
  • 有個UI bug係click details panel會click到個scene 啲嘢,令你deselect個actor -> deselect個keyframe :@ 解決方法係留意下個cursor over detail panel嘅時候有冇轉到cursor icon,如果仲係十字就select另一個application(Cmd+tab for Mac, 去另一個app例如Chrome)再返去Unreal。
  • 又有個UI bug係right click個group冇menu出,呢個時候right click下curve panel至有menu出,然後right click個group就有返menu
  • 記住唔好開住Matinee Editor,而又唔係改緊keyframe個陣改其他actor,因為一熄咗Matinee Editor就會冇曬。
  • Matinee嘅animation track係冇blending 嘅,所以我用咗個好迂迴嘅方法做⋯⋯有人知道好啲嘅方法請話我知⋯⋯首先做個animation blueprint (custom_animation_blueprint) -> state machine,個transition rule用public variable determine (anim_var)。喺Matinee event track set 個keyframe,然後去Level blueprint -> add matinee controller(去level blueprint之前喺個scene要select緊個matinee actor),個controller會有之前係matinee editor度加嘅event。再跟住令個event改個public variable: actor ref -> get anim instance -> cast to custom_animation_blueprint -> set  anim_var
  • 如果你睇Matinee 嘅tutorial會見到佢好容易就做都一個cut scene,因為佢加條track就會自動多咗個camera然後好易就郁到佢。不過如果做Oculus,嗰個camera就唔會跟個oculus郁。可能你會想加個script入去個camera度就得,或者唔同camera track,而係直接郁個player actor。不過我又唔知點解rotate個actor向下望嗰陣個cam又唔跟住rotate⋯⋯
tash kalar feature

Tash-Kalar

在棋盤上放置棋子,組成特定的排列來使用卡牌,消滅對手的棋子或完成目標來取得分數。遊戲中很多設計都令小弟驚喜萬分!是小弟的最愛之一。

遊戲時間:中等(60分鐘)
玩家人數:2至4人
學習難度:易
思考難度:難
部件體積:中等
官方網站:http://tash-kalar.com/index.html

從上圖就可以了解這遊戲的主要行動了:放置棋子並完成卡牌的排列要求後,卡牌會在白色的方格所對應的格子中產生較強的棋子,並發動其效果。

遊戲簡介

  • 遊戲有三副不同的卡牌組(四種顏色,但紅色和藍色是一樣的),每玩家各選一副。
  • 玩家輪流行動:放下初級棋子,使用卡牌,或換手牌
  • 使用卡牌前在棋盤上要預先準備好所需求的排列,卡牌會在對應的格子產生新的棋子,而該格子不能有一個比新棋子強的棋子。
  • 如果對手的棋子比你多出指定數量,則可使用”爆發卡”(Flare)發動其免費效果。
  • 死鬥模式:殺丟對手的棋子來獲得分數。
  • 任務模式:完成任務卡的要求獲得分數。

遊戲分析

  • 很多人都把這遊戲定為抽象遊戲,但小弟認為也不是完全的抽象-至少有卡牌可用已經比所有抽象遊戲實在得多。而且卡牌的排列和效果,都和卡牌中的角色有密切的關係,這令玩家能感到非常強烈的生命力。
  • 遊戲時的思考時間非常之長⋯⋯雖然因人而異,但在很多情況下卡牌的組合和排列的可能性都很多,遊戲的容錯性不高(一子錯對手就翻盤了),小弟的最長記錄是一個回合用了二十分鐘⋯⋯不過砌排列就是這遊戲的精髓,正如你去看別人下圍棋不可以嫌別人下得慢一樣:P
  • 遊戲中令小弟驚奇的地方,除了它能把抽象的下棋方式和生動的卡牌結合的天衣無縫之外,就是”爆發卡”(Flare)系統。本來小弟以為這只不過是對太弱的棋手隨便給予一個免費行動,但玩過幾次後就發現這簡直是神來之筆!原來遊戲過程中很容易出現一面倒的情況:多棋子的一方較易出卡牌吃對手的棋子,造成更多棋子更易出卡牌。但有了Flare,這遊戲出現了180度的改變:在任務模式中較少棋子的一方能打出較多的Flare,反而成為了優勢!整個遊戲變成了以最少的棋子來達到目的,或設法令對手浪費棋子。棋子的分佈有著明顯的重要性,不能亂打亂吃然後給對手反勝。(不過棋子太少時選擇也就少了⋯⋯)
  • 如果你試過圍棋,但覺得圍棋的難度太高,所需要記下的定式太多而卻步,不妨試一試這款遊戲。

這遊戲是由著名的桌遊設計者Vlaada Chvátil所作。Vlaada在網站提及他本來不太喜歡抽象遊戲,也不喜歡二人對戰的遊戲,思考完一輪然後令對手很不爽地輸丟的感覺。但近年手遊狂熱,他就在他自己的遊戲想法庫中找出一個畫面簡單的遊戲並希望制作成手遊,也這是Tash-Kalar的初型。他在設計過程中的心情想必也很忐忑,但在測試時發現輸丟的玩家也很樂意再玩這遊戲,所以也相信這遊戲能帶來歡樂,也就繼續研發下去。

小弟看完了筆者的一番話感觸良多,除了因為小弟也是手遊程式員,這遊戲本來也令小弟感到可以打破”令對手很不爽地輸丟而感到不快”。小弟在網上玩遊戲時,即使勝出也會因為對手沉默地離開而感到無奈。但玩這遊戲勝出時,卻能與對手談論一番,或說”這遊戲很有原創性,是時候研究一番了”。這令我感到桌遊的真正力量,不是智慧的角力,而是享受和交流。原來Vlaada對這方面也有很強烈的感受。再者,看到Vlaada大神寫了程式版的遊戲然後自己和自己對玩,身為手遊程式員的我卻沒這麼試過,感到有點汗顏⋯⋯

逃出亞特蘭堤斯 (Survive: Escape from Atlantis!)

控制自己的隊員和船隻,離開正在陸沉的亞特蘭堤斯,以及控制生物去阻止對手逃出。

遊戲時間:中等(60分鐘)
玩家人數:2至4人
學習難度:易
部件體積:中等

遊戲簡介

  • 每人有十個隊員,每個都刻有分數。每個玩家輪流把隊員放在中央的島上,然後每個玩家再放兩只船在島的周圍。
  • 玩家輪流開始回合,每回合做三個行動,每一個行動可以移動一個隊員一步,或者移動一個被玩家控制的船一步。在水中游水的隊員每回合只能移動一步。
  • 完成行動後玩家把島的其中一塊陸地磚塊拿走,該格成為海洋,然後執行陸地磚塊背面的指示,或者把它拿起成為玩家的道具。
  • 拿走陸地磚塊後,擲一個骰子決定玩家能移動那一類動物:鯨魚能破壞載了人的船,鯊魚會吃丟一整格裏所有正在游泳的人,海怪會連人帶船都破壞。
  • 隊員離開島嶼到達岸邊則得到相應分數。

遊戲分析

  • 不同分數的隊員有不同的作用:高分的成員要離開,低分的成員可控制船隻阻止對手離開。遊戲沒有指明每一個隊員的功能,但從分數上的分別就讓玩家能自行取捨。
  • 和別人合作控制船隻離開,或者坐在船中讓對手開船,然後控制別的隊員離開,或者把船駛離岸邊⋯⋯簡單的船機制也有不同的變化和互動。
  • 由玩家控制海洋生物是一種簡單的做法,但也可能出現直接針對玩家的現象,而且這機制對勝負的影響很大。基本上被吃得多,或者高分隊員被吃就輸丟比賽,但這部份跟玩家的技能和幸運性關聯不大。可能玩家應考慮如果和其他玩家交涉減少自己的隊員被吃。

兇煞迴廊 (Fearsome Floors)

簡單的逃跑遊戲,玩家的目標就是躲開怪物,把自己的隊員逃到終點。也可以利用隊員的位置阻止對手的移動,或控制怪物的移動。

遊戲時間:中等(60分鐘)
玩家人數:2至7人
學習難度:易
部件大小:中等

遊戲簡介

  • 每人有3至4個隊員,不同隊員在日間和夜間的移動力都不同。每次玩家行動時控制一個隊員移動,反轉它表示該隊員已經行動了並顯示下回合的行動量,然後到下一個玩家行動。
  • 當所有隊員都已移動,怪物會根據怪物卡向前移動。當怪物發現任何隊員時,他會轉向最近的隊員並吃丟他!
  • 特殊情況:如果多於一個隊員和怪物接近,怪物會傻傻的繼續血前進。
  • 怪物碰到牆壁時會在另一個位置出現。即使怪物離開出口很遠也可能碰到牆壁傳送到出口附近!
  • 基本模式中會有一些石頭,可以用作遮擋怪物視線。複雜模式中有更多物品改變怪物的移動模式。

遊戲分析

  • 簡單的怪物移動邏輯,沒有隨機因素令它改變路線,在移動隊員時卻難以遇料怪物的走向,因為任何隊員都可能會令怪物轉向,或製造特殊情況令怪物不轉向。在所有隊員完成行動前,怪物的行動路線都難以確定。
  • 當大部份的隊員位置都確定時,玩家可以利用自己的隊員引導怪物轉向,令其他玩家的隊員被吃!

一網打盡(Cash-a-Catch)

搶拍的拍賣方式,對抗性的買賣,挑戰玩家對物品價值的估算速度

遊戲時間:短至中等(30分鐘)
玩家人數:3至5人
學習難度:易
部件體積:中等

遊戲簡介

  • 由某玩家開始一張一張地拍出貨品卡牌,首先按下按鈴的玩家可用十元購買所有拍出的貨品。拍賣完成後到下一位玩家拍賣。
  • 玩家只可以扣留三類的魚,多餘的魚要丟至垃圾箱,在遊戲完結時扣分。
  • 玩家拍賣前可賣丟魚箱內的魚,同一類的魚的數量越多價值越多。

遊戲分析

  • 搶先購買的拍賣方式很特別,而且變動的不是拍賣價,而是貨品。
  • 在搶先的情況下考慮貨品的價值,對手得到的獲利,和拍下下一張魚卡的風險,對遊戲的經驗有一定的要求。正如一般反應遊戲(twitch game)一樣,是一個易學難精的遊戲。

賽駱駝(Camel Up)

就是估算賽果的遊戲,完全是風險和收益的衡量(risk versus reward tradoffs)。

遊戲時間:中等(30至60分鐘)
玩家人數:2至8人
學習難度:易
部件大小:中等

遊戲簡介

  • 玩家輪流作一個行動:擲骰子決定駱駝的移動,拿取一張中段投注卡,放置影響駱駝移動的指示物,或放置一張賽果投注卡。
  • 先投注的玩家能獲得更多獎金。
  • 後來居上的駱駝會疊在同一格的駱駝之上,當下面的駱駝移動時會帶動上面的駱駝一同前進。這令賽果更難遇料,亦令遊戲出現搞笑的狀況。

後來居上的駱駝會得到戲劇性優勢,這令賽果難以估計。但如果不去冒險投注,擲骰子卻會令賽局明朗化,令後來的玩家得益。先行投注可能有更大利潤,但風險也比較大。

那金字塔型的骰子盒是一大亮點!本身就是一個外型很有趣的物件,也保證了只會出一粒骰子。

這遊戲的平衡性難以估量⋯⋯但這就是一個歡樂的賭博比賽,不要太認真就是了。

政變(Coup)

抵抗組織(The Resistance)的另一作品,也是每人有隱藏身份的遊戲,這次玩家不是隊制對決,而是個人對決:只有一個勝利者!

遊戲時間:短(15分鐘)
玩家人數:2至6人
學習難度:易
部件體積:小

遊戲簡介

  • 每人抽取兩個秘密角色卡,代表玩家對該角色的影響力,每種角色有不同的能力。遊戲主要是收集資金,然後使用資金去解除其他玩家的影響力。當玩家失去所有影響力時,他就輸丟了該場遊戲。
  • 當玩家使用角色的能力時,並不需要展示該角色卡。其他玩家可提出質疑,如果被質疑的玩家展示了相應的卡牌,提出質疑的玩家則失去一個影響力,否則被質疑的玩家失去一個影響力。

遊戲分析

  • 隱藏身份直接影響玩家能力的遊戲可算是罕見。富饒之城也算是其中之一,但身份立刻在能力使用後被展示。玩起來感覺很像吹牛(大話啤),但卡牌的能力令遊戲變化很大。
  • 遊戲的對抗有自由的目標選擇,對抗方式也非常直接,所以被針對的玩家就會輸丟遊戲@@(小弟還是喜歡德式桌遊⋯)不過遊戲簡單明快所以輸了也沒相干~再來一局就是了~

正如抵抗組織的作風,遊戲只有很少部件(五個角色,每個角色三張,和一些金錢指示物),卻有豐富的遊戲性。卡牌製作也非常精美。

Zombicide

在KickStarter很有名氣的合作打喪屍遊戲,遊戲版圖很大,很多模型,但玩法卻很簡單。

遊戲時間:中等(60分鐘)
玩家人數:1至6人
學習難度:易
部件體積:大

封面

滿街都是喪屍!!

遊戲簡介

  • 遊戲有不同的戲情,包含不同的地型,特殊物品和勝利條件。不同的角色也有不同的能力。
  • 每回合在指定地點就會在喪屍進入,或者在打開房門時在室內會發現喪屍。喪屍每回合會向玩家移動一格,或向在同一格的生還者攻擊。角色被攻擊兩次就會死亡!玩家可利用物品發出的聲響控制喪屍的移動方向。
  • 特殊的喪屍能每回合行動兩次;大型喪屍只有特殊武器才能對付。
  • 角色停留在室內可以找尋武器和工具,也可能會找到喪屍!武器和工具可用作抵抗喪屍。
  • 角色擊殺喪屍會提升等級,但新加入的喪屍會因應最高等級的角色而增加,所以玩家要管理好每個角色的擊殺數,甚至減少擊殺喪屍來完成任務。

 

OLYMPUS DIGITAL CAMERA

勃艮第城堡(The Castles of Burgundy)

在boardgamegeek.com排名11的遊戲,遊戲重點是擲骰子決定行動的可能性,買賣貨品或擴建城市。

遊戲時間:稍長(九十分鐘)
遊戲人數:2至4人
學習難度:易至中等
部件體積:稍大

封面

遊戲進行中!

遊戲概要

  • 擲骰子決定玩家可以拿哪些建築物,把建築物建在哪處,或賣出哪些貨物。玩家可使用工人去改變骰子的數值來增加選擇。
  • 大部份建築物在建造後立刻發生效果,只有少數建築物有持續效果。
  • 玩家可透過買賣貨物或建造某些建築物來賺取銀幣,用作購買建築物,但每回合只能購買一次,而且數量有限。
  • 玩家可透過建造農場,特殊建築物,或完成區域(用同類建築物填滿區域)來得到分數。建造同類的農場,或較早完成區域的玩家能得到額外分數。最高分的玩家勝出遊戲。
  • 建築物的選擇隨著玩家的拿取而減少,在每一階段開始時保充。每個玩家在每回合有兩個行動,每一階段有五個回合。遊戲在五個階段後結束。

遊戲分析

基本分析

  • 由於建築物種類比較多,新玩家需要花一些時間去了解建築物的功能。
  • 遊戲的平衡性:
    • 每階段保充的每種建築物的數量都是指定的。
    • 玩家可透過建造船隻改善行動排序。
    • 玩家的建設規劃是預先設定好的,不會出現太極端的建設規劃(例如全部都是農場⋯)。
  • 遊戲中很少正反饋系統(positive feedback)。大部分的建築物也沒有持續效果,即使有也不會有很大的影響力,未見到一些疊加性效果令回合效果倍加的情況。
  • 玩家的取捨主要在於優化行動的順序和工人的消耗上。消耗工人能得到更好的選擇,但消耗得太快的話會浪費更多的回合去獲取工人。由於較早完成區域的玩家能得到額外分數,而且回合有限,越少回合則能建的建築物越少,浪費回合意味著得到較少分數。
  • 玩家之間的主要競爭在於建築物的選擇上:農場的種類,先完成哪類建築物,特殊的建築物,有限的出購建築物。

衝突輕微

感覺上就是哪種和一名玩家爭同一資源就令第三者得益的遊戲。遊戲得分的方向很多,在遊戲進行的前部份衝突較少。

回合效益

和卡坦島比較,這遊戲令每個玩家的行動質量都相差不遠,不會出現像卡坦島中獲取資源的差異很大的情況。幸運性也只在工人的消耗上去體現,這也能由資源分配上去改善。與其說它是骰子行動遊戲不如說是使用工人的考量。整體來說主要都是回合效益和分數的計算。