自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Gamerzilla:一個開源游戲成就系統(tǒng)

開源
了解開源游戲成就系統(tǒng) Gamerzilla。它使游戲開發(fā)者能夠獨立于游戲平臺實現(xiàn)成就系統(tǒng)。

一些開源游戲的質(zhì)量已經(jīng)媲美商業(yè)游戲。盡管還難以比肩 3A 大作,但開源游戲在獨立游戲中已頗具競爭力。不過,游戲玩家的期望是隨時間變化的。早期的游戲只有高分成就。不斷增加的成就種類促使玩家反復(fù)重玩游戲。比如你可能達到了滿級,卻還沒有找到所有隱藏物品或沒有完成全物品收集。Xbox 360 推出了首個在線多游戲成就系統(tǒng)。隨后其它游戲平臺也紛紛推出了自己的成就系統(tǒng)。

開源游戲在很大程度被游戲平臺的成就系統(tǒng)排除在外。你可以在 Stream 上發(fā)布開源游戲,但這需要付費。游戲平臺主要與公司合作,而不是與自由軟件社區(qū)合作。這也進一步把玩家鎖定在了非自由的游戲平臺上。

商業(yè)游戲開發(fā)商也沒有得到太多好處。由于不能共享成就,一些享受成就的玩家拒絕從其他商店購買游戲。這種鎖定效應(yīng)增強了游戲平臺的話語權(quán)。由于各個游戲平臺使用不同的系統(tǒng),開發(fā)者不得不針對它們分別進行適配和測試。較小的游戲平臺則可能完全被忽略掉。并且平臺方能夠訪問到所有使用該平臺的公司的成就數(shù)據(jù),這些數(shù)據(jù)可以被用來擴大競爭優(yōu)勢。

Gamerzilla 的架構(gòu)

??Gamerzilla?? 是一個致力于改善這種現(xiàn)狀的開源游戲成就系統(tǒng)。Gamerzilla 在設(shè)計上同時考慮了開源游戲和商業(yè)游戲。你可以運行自己的 Gamerzilla 服務(wù)器,使用游戲商店提供的服務(wù)器,甚至 Linux 發(fā)行版提供的服務(wù)器。服務(wù)器也可以由其他團體來運行。在哪里購買游戲不再重要。成就數(shù)據(jù)都會上傳到你的 Gamerzilla 服務(wù)器上。

一個基本的成就系統(tǒng)需要兩個要素:游戲和 Gamerzilla 服務(wù)器。然而隨著游戲數(shù)量增長,這種設(shè)計會暴露出其缺點。每個游戲都需要證書才能上傳數(shù)據(jù)到服務(wù)器。由于擁有大量的游戲資源,并且能夠在不同游戲商店之間同步數(shù)據(jù),游戲啟動器成為了眾多玩家的選擇。通過讓啟動器支持 Gamerzilla,游戲本身就不再需要證書了。游戲結(jié)果直接從啟動器上傳到 Gamerzilla 服務(wù)器。

??freegamedev.net??? 曾提供了社交網(wǎng)絡(luò)系統(tǒng) Hubzilla。我們基于此開發(fā)了一個插件來進行 Gamerzilla 的開發(fā)。不幸的是 Hubzilla 的一次升級導(dǎo)致了 ??freegamedev.net??? 的服務(wù)故障,因此 ??freegamedev.net?? 決定不再提供它了。

目前 Gamerzilla 服務(wù)器有兩種實現(xiàn)。維護 Hubzilla 是一項復(fù)雜的工作,所以我們用 .Net 和 React 開發(fā)了一個獨立的 Gamerzilla 服務(wù)器。游戲調(diào)用的 API 是相同的,所以不用關(guān)心連接的服務(wù)器是哪種實現(xiàn)。

游戲啟動器的開發(fā)和支持工作通常是滯后的。為了方便啟動器增加對 Gamerzilla 的支持,我們開發(fā)了 libgamerzilla。這個庫負(fù)責(zé)處理啟動器、游戲和 Gamerzilla 服務(wù)器之間的交互。目前只有 GameHub 實現(xiàn)了一個支持 Gamerzilla 的版本,并將在近期整合到項目中。Fedora 上的 libgamerzilla-server 是一個臨時解決方案。它不啟動游戲,而是監(jiān)聽成就并把成就上傳到服務(wù)器。

支持 Gamerzilla 的游戲在不斷增長。與游戲啟動器一樣,開發(fā)者使用 libgamerzilla 來完成 Gamerzilla 的集成工作。這個庫由 C 語言實現(xiàn),已經(jīng)被 Python 和 nim 等多種編程語言使用。對于那些已經(jīng)有成就系統(tǒng)的游戲,只需要花幾天時間就可以完成對 Gamerzilla 的支持。其他游戲想要支持 Gamerzilla,大部分時間都是花在收集信息和授予成就上。

架設(shè)服務(wù)器

架設(shè)服務(wù)器最容易的方式是使用 Hubzilla 插件。但是運行 Hubzilla 站點卻不是一件輕松的事情。在 Fedora 上架設(shè)基于 .Net 和 React 的服務(wù)器相對來說要容易一些,盡管這仍然需要許多步驟。詳細步驟請參考 ??readme?? 文件。需要這么多步驟的一部分原因是目前沒有預(yù)編譯好的發(fā)布版本。這意味著你需要自己安裝 .Net,動手構(gòu)建 React 源碼部分。構(gòu)建完成之后,React 代碼會直接運行在 Apache 中。.Net 后端則運行在單獨的服務(wù)上。Apache 作為代理負(fù)責(zé)把所有 Gamerzilla API 請求轉(zhuǎn)發(fā)給后端服務(wù)。

按上面的步驟操作,Gamerzilla 已經(jīng)運行起來了,但是現(xiàn)在還沒有用戶。當(dāng)然應(yīng)該有一個簡單的方式來創(chuàng)建管理員和注冊新用戶。但是該功能還沒有完成。目前只能通過 sqlite3 命令行來錄入用戶信息。具體步驟請參考 ??readme??? 文件。用戶可以是公開可見的,也可以是隱藏的。批準(zhǔn)標(biāo)記可以讓新用戶不立刻使用該系統(tǒng),但是網(wǎng)絡(luò)注冊是必須的。在設(shè)計時我們已經(jīng)考慮了用戶相關(guān)模塊的可替換性。通過替換 ??backend/Service/UserService.cs?? 就可以與其他站點進行集成。游戲網(wǎng)站也可以通過這種方式來為用戶提供 Gamerzilla 成就系統(tǒng)。

目前 Gamerzilla 的后端使用的是 sqlite 數(shù)據(jù)庫。我們還沒有對它進行過性能測試。我們預(yù)計較大型的應(yīng)用安裝需要改進系統(tǒng)以使用更魯棒的數(shù)據(jù)庫。

測試

目前要找一個支持 Gamerzilla 的游戲啟動器太難了。如果你安裝了 libgamerzilla-server,就可以在命令行中運行 ??gamerzillaserver??? 命令。首次運行該命令時需要輸入 URL 和登錄信息。以后再運行時會直接從配置文件讀取這些信息。目前更正錯誤的唯一方法是刪除 ??.local/share/gamerzillaserver/server.cfg??? 再重新運行 ??gamerzillaserver?? 命令。

大多數(shù)游戲還沒有支持 Gamerzilla 的版本。??itch.io 上的 《Pinball Disc Room》??,它的 Linux 版本支持 Gamerzilla,但是它的網(wǎng)頁版是沒有成就系統(tǒng)的。這款游戲只有兩個成就:一個是存活 10 秒鐘,另一個是解鎖并使用隧道。只需要稍加練習(xí),你就能獲得一個成就。由于這款游戲沒有可視化的成就提示消息,你需要查看 Gamerzila 服務(wù)器才能確認(rèn)成就。

目前打包到 Fedora 中的游戲都還不支持 Gamerzila?!禨uperTuxKart》 已經(jīng)整合了對 Gamerzila 的支持,正在等待發(fā)布新版本?!禨eahorse adventures》 和 《Shippy 1984》 添加了成就,但是新發(fā)布版本還沒有打包。還有一部分游戲由我們獨立完成了對 Gamerzila 的支持,但我們的拉取請求pull request或其它聯(lián)系嘗試還沒有得到開發(fā)者的回應(yīng)。

后續(xù)工作

Gamerzilla 需要更多游戲的支持。目前已經(jīng)有很多游戲支持 Gamerzilla,并且正在以大約每月一個的速度增長。如果你有喜歡的游戲,可以請求開發(fā)方支持 Gamerzilla。如果你是游戲開發(fā)者,并且在支持 Gamerzilla 上需要技術(shù)支持,請聯(lián)系我們。

服務(wù)器的開發(fā)工作在緩步開展中,我們希望不久之后就會有一個可用的注冊系統(tǒng)。在那之后我們可能會建立一個永久托管站點。目前你可以看到我們的 ??測試服務(wù)器??。一些人對于使用 .Net 作為后端表示擔(dān)憂。我們的 API 并不復(fù)雜,可以很容易用 Python 重寫。

最大的不確定性來自游戲啟動器方面。GameHub 希望有一個通過用的成就接口。未來我們可能會在這方面與他們開展合作。增加對 ??itch.io?? 應(yīng)用的支持可以提升系統(tǒng)的關(guān)注度。另一種方案是完全拋開啟動器。也許可以將 gamerzillaserver 添加到 Gnome 中。然后你就可以在一個設(shè)置頁面里配置 URL 和登錄信息。這樣任何啟動的游戲都可以記錄成就了。

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2023-10-09 07:29:19

2020-08-18 10:33:47

智能手機相機計算

2015-12-09 14:53:58

開源手機系統(tǒng)

2015-07-28 14:35:40

2012-08-30 10:01:40

OpenStack

2015-07-29 10:00:16

開源項目

2012-07-30 09:40:52

Lua

2014-10-21 10:25:50

程序員

2011-11-03 09:13:27

JavaScript

2013-10-09 09:39:17

開源

2021-03-08 10:21:22

開源技術(shù) 框架

2021-04-13 06:35:13

Elixir語言編程語言軟件開發(fā)

2013-12-19 09:58:36

移動應(yīng)用產(chǎn)品市場

2012-09-24 11:11:32

HTML5游戲開發(fā)JavaScript

2009-09-11 09:11:09

2011-10-21 09:10:12

JavaScript

2011-08-16 17:36:50

SolarisIllumos

2015-11-17 17:11:10

聯(lián)想

2017-11-07 11:36:57

開源項目代碼

2013-05-31 09:32:07

云時代億萬富翁
點贊
收藏

51CTO技術(shù)棧公眾號