文章列表

Docker打包 App還是打包底層程式作為Image ?

科技新知
MacauYeah・2023-07-28

雖然筆者對於Docker Swarm Mode的資歷尚淺,但由於後期更動的難點越來越多,筆者很想早一點討論其中不同操作的差異 Docker Swarm Docker Swarm Mode其實是Docker提供的一個Cluster(群集)環境。在其中運行的Image,都可以比較方便地隨時分身到不同的node(節點)上,對於提高負載或可用性,都是一個不錯的解決。 只要該Image跑起的Container是Stateless(前後兩次執行的結果互不相干涉),或者是把Stateful的部份(有干涉的部份)外包到第三方(例如儲存空間使用NFS,或記憶體暫存改為Key-Value Database),就可以方便地運作在Docker Swarm mode上。 部署Docker Swarm的選項 Docker Swarm可以把Image變成分身Container,但並不沒有硬性改變傳統App操作方式。大部份App在執行時,都需要另一個底層程式的支緩。例如 Php Web App,需要底層php fpm + nginx或apache Java Web App,就需要java + Tomcat 所以在發佈App時,可以選擇把 App直接打包成Image 只把底層程式打包在Image中(例如Tomcat),再在跑起Container時再動態接起App。 兩者有何差別? 就信心層面上,一定是把App直接打包成Image實際一點。因為這樣可以極大地減少測試環境和正式環境的差異而出現的問題。筆者一開始也不完全讚成,但也越來越傾向這種做法。 在解釋筆者為何有這個結論前,先條列式地對比一下兩種差別。 事項打包App成為Image打包底層程式成為Image 打包複雜度 需要把App用到的一些環境變數引入設定Image的entrypoint中,方便配合不同的環境可以改變App的行為。打包次數根據App數量有關。比較靈活,但比較需要學習和試錯。 底層程式統一設定環境變數,其中所有App都會使用類似或相同的設定,設定方式跟傳統方式無異。打包次數根據底層程式數量有關。比較死版,但要試錯的成本較低 發佈流程 打包App成Image。再靠Docker Swarm設定Image有多少分身,每個分身不需要特別再設定。 原來的底層程式已存在於Docker Swarm中,只需把新建或更新了的App放入不同分身的儲存空間,讓底層程式動態跑起App。 管理複雜度 每個App都是獨立的,代表有任何更新也是獨立更新。在微服務的協作環境中,需要管理員從Image層面為每個App設定網絡(network)或開放端口(Port)。但每個App可以設定不同的分身數量,靈活性一定比只打包底層程式要高。 使用同一個底層程式Image的App都會使用同一個網路和端口設定。在微服務的協作環境中,管理員要應付的設定數量一定比打包App要少。但由於是Conatiner分身是針對底層程式,所以若然某個App有不同需求,就要重新設定另一套底層程式。 上述幾個點,最後其實都是複雜度和靈活度的取捨。雖然打包App的工序更多,但提供的靈活性也更多。如果考慮要從傳統模式中過渡,方便與完成不懂Docker的同事協作,就首選打包底層程式。如果考慮可重複性和信心保證,還是打抱App比較直接,要複制一個環境到另一個環境,也比較易測試。

自己架設Docker的共享儲存空間

科技新知
MacauYeah・2023-07-21

Docker很好用,在單機環境下真的很好用。Docker原本的設計,是為了快速迭代而設計成Image的。在一般設定下,每次新建或重建container,都會根據Image重設一下各方面的環境,包括儲存空間。重設CPU,Memory,大家都很易理解,但重設儲存空間,真的不是每一個使用情況都可以這樣。 又或者說,未必所有使用情況都會有一個第三方的儲存空間可以用。所以良心的Docker在單機環境下也有提供bind mount或是docker named volume,作為可以長期保存,不受container生死的影響,以達到長期存在Data的存在。 單機-儲存空間 單機情況下很簡單,就用一個docker compose做例子 其中html就是一個bind mount,而nginxlogs就是一個docker named volume,兩者都可以長期保存data,除非各位自己手動刪除,否則不會因為container的興亡而不見了。 但有兩個很重要的分別 bind mount,直接跟host os連接,實際上是每次folder有更新,docker都要同步host和container之間的資料。 bind mount在linux下很暢順,因為大部份docker image/container原本就是linux engine,所以folder mount真的可以互通。 bind mount在windows / mac下,就會不斷抄資料。面對大量檔案,例如node_module,就會有速度上的問題 docker named volume,就是docker 分離一些獨立空間,然後再綁到container上 相對bind mount,即使在windows / mac下,都沒有那個速度上的問題。筆者猜測,即使是獨立空間,其實本身都已經限定在linux enginx下,所以沒有需要抄資料。 但在windows / mac下,因應docker 底層建立Linux VM的技術不同,你可能沒法在windows / mac預設環境下直接讀取docker named volume。 若要讀取docker named volume,最好的做法,還是連上docker container,然後用docker cp 來抄回資料。一但抄資料,其實都會有速度上問題,不過docker cp是手動決定何時做的,不做docker cp,其實container也是可以用。 Cluster-儲存空間 雖然良心的bind mount和named volume解決了單機上的儲存問題,但到了cluster環境,就沒有可以跨機同步儲存空間的做法,要做就自己建立。 筆者也稍為研究了一下同步的問題,不過對技術真的很有要求。所以退而求其次,筆者還是選擇簡單的第三方儲存空間。就是做一個可以分享存取的NAS。 建立nfs linux下要安裝nfs其實很簡單,不過要注意資料夾和防火牆權限,以下安裝教學以ubunut 22.04為例,記得把下面的YOUR_DOCKER_NODE_ADDRESS_RANGE轉為你的真實IP段落 修改docker compose 最後,你在原來的docker-compose的docker volume上加driver_opts就大功告成。 記得把下面的YOUR_NFS_IP轉為你的真實IP

Pser_hanser 用愛發電的文字遊戲攻略制作者

手機‧電玩
MacauYeah・2023-07-18

雖然筆者玩已少有再制作攻略,大部份都以分享心得為主。但筆者對攻略制作者都很支持,不論是公司媒體還是素人制作,在質量足夠的情況下,筆者購買紙本或是推廣他們的作品。 最近因為華文攻略的抄襲事件,反而讓多認識一位內地的攻略作者,Pser_hanser。他跟一般的Up主不一樣,他做的大部份攻略都是文字攻略。很明顯,文字攻略被抄走的難度一定低很多,但他也頂著壓力的情況下繼續用愛發電。 Pser_hanser的作品集 https://docs.qq.com/sheet/DR1NnTkRrc0NhUmxV 他的攻略,雖不能搶首發,但勝在持續更新,有些錯誤的地方,都會因為協作效應得到更正。 他也有一份堅持,就是做數據整理。一般網紅作者都會為了量產,只挑主線或特定迷題去影片攻略,省時,不需要全面驗正。但Pser_hanser就偏走最傳統路線,文字、流程、內容數據整理,目的就是方便他人查看,重複使閱讀。 拜搜尋引擎所托,現在很多影片都可以被特定的方式搜尋。不過對於可重複檢閱,還是文字更有意義。筆者過去因為Speedrun的原故,也查找了不少外國網站,只有同人才能編制得出一些「真·爽」的攻略。 瀏覽完Pser_hanser幾篇的作品,筆者亦都很受到鼓舞,雖不能靠寫攻略來養家活口,能對自己鍾愛的遊戲的支持,才是重要。筆者一直也認為,作為素人,也可以隨時創作,因為攻略的核心以協作為主,當有人起草了主脈落,其他人就可以一同持續修正。文字攻略所需要器材真的不多,只要能書寫,就可以描述很多抽象事情。現在各大主機平台,截圖也是很方便的,上傳圖像遠比錄影要容易。所以筆者開立了個Discord Server,有興趣參與華文攻略制作的朋友可以一起來聊聊。 https://discord.gg/5szV86tN 華文同人攻略連結

FF16 - 心得分享

手機‧電玩
MacauYeah・2023-07-14

絕對一讚的唯美 雖然FF16這代大大改變以往的遊戲方法,但作為老牌遊戲,它的角色建模、CG過程始終都保持領先地位。這些元素,大家可以在試玩版中體驗到。試玩版的序章一開始進入遊戲,就馬上可以看到第一場召喚獸大戰,畫面精彩、夠震撼、令人興奮。序章部份還有教學及實戰,控制主角打哥布林及BOSS。其中回避、攻擊模式做得不錯,雖然只是哥布林,但BOSS表現也很有壓場感,讚、很好。 探索部份有點失落 餘下的,就要聊聊機制的部份。雖然劇情很好,也有看大片的感覺,但畢竟是遊戲,要長期遊玩還是要好好考慮難度和探索設計的問題。 在一開始遊玩時,筆者還會不停探索地圖,檢道具,清野怪以及小BOSS。但越玩就越發現,這些都並不必要,什麼覺得有點多餘。 因為隨著遊戲進程,需要買裝備或升級裝備的時候,對材料的消耗量並不多,主線中原本就會得到足夠的材料以及金錢,解支線的剛性需求不大。而且初期很快就會得到兩件紫色防具,而這兩件防具足夠用到中後期。另一方面,武器跟隨主線就可以到武器店建造,不能強化。而後期,單單做武器商的支線以及打某幾隻危險怪就可以制造最高級防具以及武器,跟本用不著到處探索找材料。 支線部分,大部分支線都十分無聊,對劇情沒什麼關係,而且獎勵雞肋,所以並沒有特別的吸引力。除了增加道具使用數量以及裝備圖紙等,其他支線做與不做真是無分別。 所以即使地圖再大再多,筆者也無任何探索欲望。 而技能方面,遊戲合共可以選擇3個召喚獸技能以及6個分支技能。每個召喚獸分支技能升到最高級可以放在不同召喚獸上使用,而且可以隨時重置。這部分就可以自行選擇自已喜愛的技能,設計尚算宜人。 總結 總括來講,今集劇情畫面一流,對得起3A大作的稱號,但其他部分遊戲吸引力就很普通,難以讓玩家流年忘返。 劇情4分、遊戲性2分、畫面5分 對比FF7重制系列的可玩性,此作不推薦。但若然為傳統劇情老玩家,或完全未玩過系列作,想以入門試水溫但怕痛苦的,反而就值得一試。

死亡島2- 心得分享

手機‧電玩
MacauYeah・2023-07-07

系統篇 死亡之島2 玩法與第一代類似,遊戲多出技能卡牌選擇,相關選擇會影響角色主要攻擊及防禦手段,包括使用格檔還是使用閃避作防禦手段。而攻擊技能都有三種選擇,所有技能都有相應卡片強化效果。 角色相互的差異到中後期已經無太大差別,故無需煩惱使用哪個角色,因為對劇情結局都無影響。如有朋友一起遊玩,還可以分工合作,使得遊玩多樣化。 而喪屍種類就有十數種,包括屬性不同的喪屍,角色可以利用不同環境屬性攻擊,例如:可以先用水炸彈弄濕,再用電攻擊可加速中電擊屬性累積,所以活用屬性關係攻擊可以事半攻倍。 裝備系統強化則看稀有度以及級數,除橙色裝備無法掉落得到外,其他稀有度都可以從喪屍以及裝備箱得到。屬性強化則可以選擇火、雷、出血、切割、腐蝕等強化,而稀有度就影響強化數量,即越稀有,可強化數量越高。 而升級裝備所需要的金錢並不是小數,需要做取捨。但以筆者經驗來看,升級裝備並不是必要的,因為隨角色升級更換裝備效果會更佳,而且3級以內裝備差別不大,再上才有一定差別。 劇情篇 遊戲劇情可以說是今集敗筆之作,劇性相當荷里活,而角色毫無特點,直接可以用三無來形容:無感動、無高潮、令人無記憶點,總括來講不及第一代劇情好。 而遊戲性就可以說是中規中矩,如有朋友一起遊玩,則可以更好。 總結- 還是等等等吧 劇情評分2分滿分五分,遊戲性3分,建議打折再進行購買。

Git Co-Work Flow

科技新知
MacauYeah・2023-06-23

Git Co-Work Flow 雖然git面世已很久,但相當一部份澳門朋友都是solo man,很少合作寫code,對git branch始終都有些恐懼。所以這次來解召一個基本原則,至少你不會爛了code救不回來。 若然大家未熟悉git,初次利用git合作寫program,請盡量減少使用共同分支(branch),可以極大地減少問題。 第一個大原則 - 建立一條自己分支 在一個repo中,為自己建立一條分支(branch),可以減少Remote repo中有人比你先commit,而令你push失敗的情況。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 除非你的隊友故意你用的分支名先commit,又或者你自己有幾台電腦,幾台一起做改動。不然push 應該不會有問題。 第二個大原則 - 用fetch取代pull 很多人在取用Remote Repo的更新時,都會使用pull。但pull其實是fetch及merge的混合,而且merge還要考慮source branch是那條分支的問題,若然大家都有一條獨立branch,那麼這個無腦pull並不存於每人只有一台電腦下的多人協作中。 fetch的過程中,還可以加入參數--prune,順便依照Remote Repo的指示,同步刪掉本機中一些不再存在的origin/branch。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 第三個大原則 - Merge前先Commit 經過前述fetch後,其實他人的改動並未加入自己的分支中,必需經過merge才會出現。但並不是沒有conflict就無腦merge。 假若自己有改動,未commit,應該老虎蟹都先commit。這是為了在merge後,還有機會可以無腦reset,回到之前那個commit。這就像是做任何更新前,先做backup。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 第四個大原則 - 由某個特定的人來管理master或main branch main branch(以前叫master branch),是他人下載時的預設分支,也是Github、Gitlab的預設顯示分支。所以該分支存放著的source code,應該在代表信心度比較高。 在協作的環境中,每人都有自己分支,那就代表要有一位人員做管理,他負責checkout main, 然後合併其他已驗證的分支。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 在某些比較嚴僅的環境中(例如Github、Gitlab),main分支可能會被系統機制鎖定,必需通過系統內鍵的Pull Request,才能通過審核,合併到main。另外,也有一些關於開發上的Git workflow,主要針對功能管理、版本發佈、錯誤修正等控制。有機會再為大家介紹。 希望以上的流程,可以有效且容易地讓大家協作。如果有任何command錯誤或更新,都可以經Github Pull Request通知筆者。

Vmware下建立Docker Cluster

科技新知
MacauYeah・2023-06-16

之前都使用Multipass作為Proof of Concept,自己做測試用。直正上Production,Network環境就多少有點差異。 假設大家為Application Admin,但無條件處理Vmware層面上的事項,只可以從VM內部install / setup application。 安裝Docker script 都來自Docker 官方網,筆者微調了一些auto accept選項。 Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 假設三台VM已經安裝docker,ip分別為 10.13.31.21, 10.13.31.22, 10.13.31.23。 在其中一台VM上,例如:ip 10.13.31.21上, Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 與前述Multipass不同的是,這裏的data-path-port要自定義,因為預設的port 4789在Vmware的有特殊同途。 之後部份就跟傳統做法一樣,先取得manager join token, 然後在其他VM上使用該token加入cluster Code block由於安全性問題,沒有獨立寫了LifeMag 網誌中,請移到github repo。 這樣,在swarm上的application,就會自動在10.13.31.21, 10.13.31.22, 10.13.31.23,上遊走。 即使你的app container目前是跑在10.13.31.23:8080上,但因為swarm mode routing mesh,你經過10.13.31.21:8080都可以連到該app。 如果你只是做stateless app load balance分流,這樣就足夠了,不用考慮ip fail over。但如果你要做到ip fail over,還要額外設定keepalive virtual ip,這個virtual ip會自動依付到某台活著的VM上,這樣外界才不會連到一個死ip上。又或者額外建一台load balancer,可以偵測到swarm node上那台機還活著,從而達到fail over效果。但這台load balancer也有一些穩定性要求,若然大家只是用一個普通的nginx做load balance,還是會有單點故障問題(single point of failure)。

崩壞:星穹鐵道|無課金推主線、中段角色養成心得

手機‧電玩
MacauYeah・2023-06-09

三月七-初期贈送角色,冰屬性,在筆者弄懂遊戲規則之前最依賴的角色。 它的重點在於「戰技」可愛即是正義,施加3回合盾,可以吸傷害。更重要的是被施加者,下幾回合很大機率會吸引敵攻擊,轉移傷害的其中一個手法。 她的終結技有機率使敵人凍結結。筆者目測,在敵人破防以後,成功凍結機率比較高 娜塔莎-推進雅利洛VI主線時自動解鎖的角色,物理屬性,是出場後至今必帶的奶媽。 「戰技」愛,救護與抉擇,單角色連續兩回合少量回血,終結技全體回血。 筆者認為,這兩名角色同時上場有極好的控血效果。在推主線時,大家慢慢就會發現,敵方多個敵人的情況下,我方一隊四人,不可能全面針對敵方弱點報陣,特別是BOSS戰,單人BOSS也會中途召喚援軍,那些官方推薦屬性角色,都是雞肋。所以筆者最後都是直接帶三月七和娜塔莎,不考慮她們的攻擊屬性,剩下兩人才針對主要敵人打弱點。 系統因為鎖等級,初期上限好像只有20級,推進主線時會提示「均衡等級」及「均衡試煉」。首次試煉(好像解鎖等級30),筆者用官方推薦屬性,帶著三月七,運氣好,勉強能過。第二次試煉,筆者就用二人輕鬆過,解鎖等級50。 (PS因為課金制,筆者還沒有光、暗屬性角色,玩下去也算可以)

使用 Multipass 建立Docker Cluster

科技新知
MacauYeah・2023-06-02

以下流程,假設各位已經 在Ubuntu Server中開設了virtual bridge 供Multipass設定Static IP,並且network interface定為 localbr 使用Packer template制成docker.img , 並存放於當前資料夾內 使用docker.img 起三個node,並使用network interface localbr,各有一個指定的mac address multipass launch file://$PWD/docker.img --name node21 --network name=localbr,mode=manual,mac="52:54:00:4b:ab:21" multipass launch file://$PWD/docker.img --name node22 --network name=localbr,mode=manual,mac="52:54:00:4b:ab:22" multipass launch file://$PWD/docker.img --name node23 --network name=localbr,mode=manual,mac="52:54:00:4b:ab:23" 對運行中的三個node,為它們設定static ip multipass exec -n node21 -- sudo bash -c 'cat /etc/netplan/10-custom.yaml network: version: 2 ethernets: extra0: dhcp4: no match: macaddress: "52:54:00:4b:ab:21" addresses: [10.13.31.21/24] EOF' multipass exec -n node22 -- sudo bash -c 'cat /etc/netplan/10-custom.yaml network: version: 2 ethernets: extra0: dhcp4: no match: macaddress: "52:54:00:4b:ab:22" addresses: [10.13.31.22/24] EOF' multipass exec -n node23 -- sudo bash -c 'cat /etc/netplan/10-custom.yaml network: version: 2 ethernets: extra0: dhcp4: no match: macaddress: "52:54:00:4b:ab:23" addresses: [10.13.31.23/24] EOF' multipass exec -n node21 -- sudo netplan apply multipass exec -n node22 -- sudo netplan apply multipass exec -n node23 -- sudo netplan apply 使用node21作為Leader (Manager),與其他兩個node一起組成Cluster multipass exec -n node21 -- sudo docker swarm init --advertise-addr 10.13.31.21 multipass exec -n node21 -- sudo docker swarm join-token manager managerToken=$(multipass exec -n node21 -- sudo docker swarm join-token manager -q) multipass exec -n node22 -- sudo docker swarm join --token $managerToken 10.13.31.21:2377 multipass exec -n node23 -- sudo docker swarm join --token $managerToken 10.13.31.21:2377 Cluster就建立完成。 若想刪掉重來 multipass delete node21 multipass delete node22 multipass delete node23 multipass purge 備註 在直正使用時,大部份時間還需要做port forwarding。multipass沒有自己的port forward,可以用ssh tunnel來模擬。 例如把Ubuntu Server的8080指向node21的8080,可以這樣 sudo ssh -i /var/snap/multipass/common/data/multipassd/ssh-keys/id_rsa -L 0.0.0.0:8080:10.13.31.21:8080 ubuntu@10.13.31.21 完整的script可以參考initDockerCluster.sh。 沒有Bare Metal Ubuntu或者沒有static ip也可以參考initDockerClusterWithoutStaticIp.sh。只是因為network brandwidth問題,我就不會在每次更新時都測試。

崩壞:星穹鐵道|體驗章節心得

手機‧電玩
MacauYeah・2023-05-26

上一篇推介的RPG手遊作品《歧路旅人:大陸的霸者》,其首發日期,已是兩年多前的作品。大家若果覺得畫面不太適合,想試試別的,實在可以試試米哈遊的最新作《崩壞:星穹鐵道》。筆者在前述的文章也有強調過,要在手機平台推遊戲,就必需配合手機的操作時機,以及同時重現在機制上的可重複遊玩性。更好的是,不要把課金意圖弄得太難看,讓人有試玩的空間。而《崩壞:星穹鐵道》,就最初遊戲的5小時體驗裏,以上的事都做得不錯,所以盡早為大家推薦一下。 首先講講戰鬥系統,遊戲採用回合制, 每次上場,我方可以最多上場四名角色,有直接影響戰鬥的戰鬥屬性分七種,分別是:物理、火、冰、雷、風、量子、虛數。每個角色只會對應一種屬性,而敵人則擁有幾個弱點屬性。若玩家成功攻擊敵人的弱點屬性,不單有大傷害,更可以令敵人崩壞,喪失行動力。遊戲雖然以回合制進行,但每個角色都有不同的速度值,如何運用角色屬性令敵人崩壞,去創造行動優勢,就是這遊戲的遊玩核心。(回合制就像《FF10》那樣,速度高的角色就相較其他角色行動來得頻密。《歧路旅人:大陸的霸者》則是一回合內各角色行動一次,但先後順序不同。) 雖然除弱點屬性外,還有七種角色屬性「命途」,但因為不直接影響戰局,筆者就不再逐個列出。在戰鬥屬性和命途的互相影響,看似有七七四十九種組合,看似要組一隊萬能隊伍,需要很多的課金。但筆者遊玩的時候並沒有這種壓力。因為上場人數的限制,最多只有四人,所以不論你課不課,也頂多只有四種弱點屬性,所以也不必在初期不斷去抽角色。大概有個五種就足以上場(對比《歧路旅人:大陸的霸者》,八種武器弱點加六種魔法弱點,即便八人上場,一人就一種武器,少量角色才有一種魔法,《崩壞》真的沒有那種課金壓逼感) 戰鬥系統的聲畫演出各方面,都比筆者過去遊玩的要強得多。而且遊戲亦有自動保存機制,每走一段路、跟環境或NPC互動後,都會自動保存,那怕是如筆者般的碎片化時間,也能玩得下去。故事亦沒有明顯的小關卡段落,在劇情上的連貫性就表現得比普偏手遊的小關卡制好。(某些手遊的小關卡過場,看多了真的會覺得很造作,在筆者珍貴的碎片化時間中,看看就會選擇完全跳掉)。如果你真的很久沒有試手機上的RPG故事作品,《崩壞:星穹鐵道》絕對可以是一個選擇。 《崩壞:星穹鐵道》官方網頁 https://hsr.hoyoverse.com/zh-tw/

《瑪利歐賽車巡迴賽》長期遊玩要素

手機‧電玩
MacauYeah・2023-05-19

上回就介紹了筆者主要推薦《瑪利歐賽車巡迴賽》的原因,請參考這篇。今天就聊一些長期的遊玩賽制和角色養成特點。 在基礎遊戲中,每個跑道的得分記錄也是獨立的,分數越高,解鎖星數越多。以高名次衝線、多場景互動,都可以提高分數。星數亦可以換來道具角色升級,讓之後的高難度關卡更易取得分數加乘。另一方面,因為基礎遊戲中對手全是電腦(以AI操作其他玩家角色),而且因為遊戲機制伴隨一定的惡作劇成份,所以大家對勝負不用太執著。研究怎樣拿到高分,才是長久的議題。 就如前述所說,名次是影響分數的因子之一。除此之外,過彎加速、漂移加速(遊戲內的特有加速機制),也是賺取分數的因子之一。這讓過彎有了另一層的意義:你可以在同一個彎位漂移兩次或以上,分數和速度也有加成,但風險也就更高,很容易會垂直撞牆場。另一個加分因子,就是跑道跳台。而遊戲很多時候把跳台與彎道結合。這就讓玩家又多了一個可以嘗試的組合:到底怎樣可以同時漂移,又能踏上跳台?故意走外彎或跳台拿分數,又是不是會失了名次? 最後一個加分因子,就是傳統的賽道隨機道具,每次成功使用(作弄你的對手,或為自己加Buff),都會加分,拿到三個相同的道具,更會有大量加分(遊戲內叫Fever)。而且角色、車、滑翔翼本身也有不同屬性,對應不同的賽道道具有不同的加分比重。 多人遊戲模式:除了基礎模式,遊戲還有一個真人多人對戰。玩家可以在當天伺服器指定規則下(例如只能使用一級車),在線上大廳進行對戰,又或是創建獨立房間與朋友一較高下。多人模式就如傳統比賽一樣,名次就是最終目標。結束此模式不會有角色育成效果,但可以取得抽卡獎勵,分數和排名,就影響了抽卡獎勵的累積速度。 總括來講,筆者在首兩週的健康遊玩下,體驗很不錯。就如瑪利歐的其他遊戲一樣,並不是劇情深度,而是更單純的遊玩樂趣。再加上它是免費遊玩類型,有如此體驗已是難能可貴。

《瑪利歐賽車巡迴賽》推坑介紹

手機‧電玩
MacauYeah・2023-05-12

《瑪利歐賽車巡迴賽》是一款由任天堂開發的手機平台賽車遊戲,不論大家是過去主機瑪利歐賽車系列的老手,還是首次接觸的新手,都值得試玩一下這款手機作品。筆者在免費手遊當中,曾試過不少爛作,通常教學模式一過,就已經刪掉。但這一款,筆者才玩沒幾天,就完全沉浸於遊戲當中。以下就讓筆者好好介紹它的特點。 與系列作相前,遊戲中的賽道是經過非常精心設計的。這些賽道不僅美麗,而且充滿挑戰性。玩家需要適應各種不同的地形和環境,如草地、沙漠、山區等。同時,比賽選手可以在賽道上放置各種陷阱,如香蕉皮、炸彈等,給遊戲帶來更多的不確定性和樂趣。 另一方面,豐富多樣的角色陣容亦是很引人注目的。筆者目測就角色已經有232個,再加290款車和206款滑翔翼,這麼多的組合絕對可以配搭出不同的Fashion(可以萬惡課金的源頭)。但這個角色、車、滑翔翼卡池,在筆者初步遊玩之下,並不影競速體驗。主要是因為它們影響的是特殊道具取得數和分數倍數,但跟車速無關,分數低,依然可以贏比賽,最得首名衝線。這也是跟主機系列最大不同的地方(如有錯誤,請告知筆者,筆者會再修正)。 分數最大的作用是取得完美通關,分數越高,通關後星星取得更多,就可以更快地抽取其他角色等。也就是大家不課金,還是可以贏比賽。課金,就更易完美通關,取得更多角色,更容易完美通關。

[教學] 平民雲端服務不是夢 | 5分鐘教你如何快速起VM

科技新知
MacauYeah・2023-05-11

前言 原本筆者只是想做docker cluster,但因為在實機中建VM極其麻煩,所以就研究了好一陣子如何快速起VM。 Hyper-V有預設的Ubuntu template,但只有ubuntu desktop版,沒有server版。而且desktop gui顯得浪費資源,要clone VM也很廢時,放棄。 Windows Subsystem Linux起VM很方便,但同一個Linux version只有一個instance,沒法起cluster,放棄。 Virtual box沒有Ubuntu template,若要clone的話就變得跟Hyper-V差不多,放棄。 經過一輪資料搜集,發現了一個Ubuntu multipass engine,聲稱可以跨平台快速起VM。裏面有一些很吸引的功能,可以自己建立images、使用固定IP。 那怕即使是沒有snapshot,在自定義images的配合下預裝docker,要隨時加減cluster node都是一件容易的事。 重大決策點 醜話說在前頭。經過一輪測試,multipass最大的問題,就是custom image、fix IP都只能在bare metal ubuntu 中才能使用。如果你沒有一台閒置實體機安裝Ubuntu,還是要再多考慮一下。 重點 詳細的流程,筆者記錄了在Packer template 和Multipass Static IP中,在這裏就只說一些重點。 packer是使用cloud-init和qemu的技術,行起template中指定的cloud image (在筆者的例子中就是ubuntu-22.04-server-cloudimg-amd64.img) 大家可以定義image行起後進行一些操作,而那些操作都是經過qemu vnc、ssh進去操作的。 操作完後就會直接儲存當時的image。所以在操作結束之前,盡可能地刪cache或刪去不要的user / group settings。 最後生成的image,還是一個cloud image。若要再運行它,必需要使用支援cloud-init的VM來讀取。 cloud-init是用來指定初次運行時要設定的事,例如:hdd size, user account password, ssh key import等。 使用工具cloud-localds可以生成一個seed.img,這樣qemu也可以cloud-init。 Hyper-V應該也可以經過類似方式,進行cloud-init,但筆者未有去實測。如有更簡便的方法請告知。 multipass預設就已經有cloud-init,在bare metal ubuntu就可以直接執行。 multipass也可以設定不同的cloud-init參數。 成品 最後筆者就選擇了用packer用來預裝docker,經mulitpass無腦起VM,再使用shell script對多個node設定docker,達到即時起docker node的功能。這樣就減省了VM的安裝時間,也省去了docker的安裝問題。 說到底,如果只想測試docker cluster,其實windows, macOS中的multipass也可以實現相同的功能。因為安裝docker那些都可以經過shell script自動化,只是每次重複操作,都變得相當慢。另外,因為multipass在windows, macOS不支援fix ip,對於指定docker cluster interface又會再多一重功夫。

Playdigious 良心手機遊戲移植開發商

手機‧電玩
MacauYeah・2023-05-05

現時手機遊戲營運商,大部份都是課金、online、每日任務重覆刷這種方向走。真正可以讓筆者感受到流暢、不需要為刷而刷的類單機遊戲真的很少。 有發行單機遊戲的公司,如Square Enix ,筆者都很慷慨地支持。但Square Enix 可真不厚道,每逢手機OS升級,就總有幾款遊戲不能開。例如FF9久經處理,終於解決問題,但去年年底,Last Remnant又再碰上同一難題,升級後無法遊玩,而且到現在都還沒有修復,實在令人失望。 暫時未見有問題的,筆者又願意花錢買它遊戲的,就只有Playdigious這一家。筆者前後買了Evoland、Evoland 2、Dead Cells、Streets of Rage 4四款遊戲,一直遊玩至今,都沒有升級上的問題。 Evoland 2屬於故事類,但因為遊戲概念主打「進化」,隨著遊戲發展,2D、3D、解迷、回合制RPG、橫向清關、空戰射擊、戰棋、格鬥、跑酷、炸彈人、音樂遊戲,都在遊戲中一次過出現,可謂誠意滿滿。Evoland 首作的遊戲類型比較少,劇情較短,也沒有太大起伏,但也因此比較便宜。 Dead Cells就是出名的類銀河戰士惡魔城的遊戲,配上手柄玩就一流。沒有手柄,要用搓玻璃的方法玩一定比較痛苦,但好在優化到位,要玩還是玩得下。實在不行的話,遊戲還有自帶修改器,可以減輕敵人攻擊傷害,以調整適合的難度。最近官方也持續出DLC,讓遊戲保持有新關卡可以挑戰。 Streets of Rage 4就是一款橫向清關遊戲,系列作在以前在街機廳十分常見。Streets of Rage 4作為系列最新作,終於登上主機平台,亦同步進入手機之中。這類遊戲,看似很無腦,沒有什麼花樣可以做。但原來傳統3個操作按鍵在互相配搭之下,打得出的花樣我還真是猜不到。一個攻擊、一個捐血攻擊和一個跳鍵,就這些配合方向鍵,可以玩出投技、蓄力技、特技(如升龍)、轉身技、空中變化技。熟習機制的朋友,想打出一整套倒地、彈牆連招,並不是難事。 總括來說,Playdigious這家公司的移植遊戲重玩度很不低,Dead Cells更是隨手拿來刷兩場的好遊戲。如果大家見到它的遊戲中,有你常玩的類型,可以買一兩款來試試。又或者等它們特價,再來入手。