那些可愛的遊戲們

突然想寫一下這幾年玩到印象很深刻的遊戲。

回想用電腦有幾年,玩電腦遊戲大概就有幾年,說是電腦遊戲帶領我進入資訊世界的也不為過。小時候用 56K 撥接網路連接 eDonkey 網路花將近一個月下載 Freedom Fighters 還是壞檔,真是甜蜜的回憶…。

要說 all-time favorite,應該是 四海兄弟(中文譯名) 這款遊戲吧。雖然是誕生在 GTA 席捲天下的時代,這款遊戲在學習其遊戲世界的同時,走出了自己獨特的一條路。通常這種沙盒遊戲的劇情都很空洞,但是 Mafia 的劇情卻相當棒,就像看了一部超長的《教父》一樣。

遊戲背景是設定在經濟大蕭條、戒酒期前後,主角是一個平凡的計程車司機 Thomas,在一次意外中捲入幫派交火,結束之後想要回歸正常的生活,沒想到對方幫派挾怨報復,走投無路之下只好加入黑手黨。在黑道生活中遇到不少對人性的挑戰,老大要求殺掉自己老婆的好朋友,主角卻不忍心動手只好將其放走;腐敗的警察受到對手幫派的賄絡挾持了老大副手的家人要求副手交出帳簿,老大只好命令 Thomas 去把副手殺了,再次的主角因為不忍心所以也放他們走了。最後是主角最好的朋友與老大聯手背叛主角,在美術館策劃了暗殺計畫,主角逃跑之後跑去參加檢方的證人保護計畫,搬到美國另外一側隱姓埋名生活,哪知道最後還是被發現被老大的餘黨殺了。

還有一款想要抓出來提,就是 波斯王子。系列作都相當好玩,劇情也都還算可以,但我印象比較深刻的是這個 2008 年版本的重製。劇情跟系列作差不多,解謎、飛簷走壁等等的元素也不少,但我最喜歡的是它的結局。遊戲中主角為了擊敗黑暗大魔王,與公主接力合作收集世界中的光之元素,後來發現其實公主早就死了,是國王與黑暗大魔王做了交易,讓黑暗大魔王統治世界,才讓公主復活。為了要封印黑暗大魔王,公主在遊戲的結尾必須犧牲自己。在封印完成,遊戲看似結束之後,畫面上沒有了任何提示,這時候我們唯一能做的事是將先前遊戲過程中收集的光之元素全部帶回到公主身邊,使她復活,但是卻也讓世界再度淪陷於永恆的黑暗之中。

遊戲的結尾就是主角抱著公主離開神殿,在被公主責罵的同時,背面的黑暗也鋪天蓋地的席捲而來…

為了愛情,可以放棄全世界。

那些可愛的遊戲們

dokuwiki 整合 minecraft 驗證系統

dokuwiki 是一套我很喜歡的迷你 wiki 系統,他的特色包括輕巧又有足夠的功能、檔案以純文字撰寫等。

因為目前所架設的 Minecraft 伺服器有採用 AuthMe 驗證系統,因為要在遊戲裡面註冊帳號實在是很麻煩,因此很早以前就寫了個網站方便更改資料、註冊帳號。但是 wiki 也需要帳號,考量到使用者編輯的需要,每次都要使用者一直註冊帳號實在是很不方便,因此就嘗試結合 dokuwiki 的認證機制,讓使用者可以使用同一組帳號密碼登入遊戲與網站。

dokuwiki 支援各種登入驗證方式,預設是採用 plaintext,也就是密碼 hash 之後存在純文字檔案中。由於 AuthMe 是採用 MySQL 作為後台,因此我們就以 mysql_class.php 這個 MySQL 範例檔案來修改。

新建一個 local.protected.php 於 conf 資料夾中,這樣設定檔才不會被自動設定蓋掉。同時從 /conf/mysql.conf.php.example 可以看到各種應該寫的 MySQL query,我建議直接改名成 mysql.conf.php 然後直接 require 到  local.protected.php 中,這樣升級時就不會被覆蓋。同時,這邊也要搭配 AuthMe 的架構,如果你有更改過資料庫欄位的命名,也要配合調整 query。

由於要自己撰寫 authentication backend,所以將 /inc/auth/mysql.class.php 複製一份,更名為  minecraft.class.php。可以將 minecraft 更改為自己喜歡的名稱,但注意於之後都要使用同樣的 class 名稱。

class auth_minecraft extends auth_basic {
//auth_mysql 改成 auth_minecraft
...
    function checkPass($user,$pass){
    //主要驗證的程式
    ...
    return $rc;
    }
}

剩下要改寫的部份其實不多,照著官網提供的資料結構與 AuthMe 給的密碼加密方式 (sha256) 就可以了。這樣就完成最基本的驗證登入,剩下的部份也都照著改寫,應該就沒有問題了。

Reference:
https://www.dokuwiki.org/auth:mysql 
https://www.dokuwiki.org/devel:authentication_backends

UPDATED 20130329:

沒想到才過沒多久,Dokuwiki 就改變驗證後台的撰寫方式了 Orz

現在是採用 Authentication Plugin 的方式撰寫,其實跟之前的方法差不多,主要就是要寫一個外掛放在後台這樣子。

詳細資源請參考 https://www.dokuwiki.org/devel:auth_plugins 

dokuwiki 整合 minecraft 驗證系統