當前位置: 華文問答 > 遊戲

既然有些人喜歡開掛,為啥不開發一款網遊,提供編程介面,允許玩家自行用各種軟件,同時允許電腦參與計算?

2019-04-15遊戲

真有這種遊戲啊。。。

【Screeps】

steam連結:https:// store.steampowered.com/ app/464350/Screeps/

有想要挑戰一下的可以看這個live demo,不需要註冊就可以立刻試玩:https:// screeps.com/a/# !/sim

遊戲的介紹:Screeps is an open source MMO RTS sandbox game for programming enthusiasts, wherein the core mechanic is programming your units AI. You control your colony by writing JavaScript which operates 24/7 in the single persistent world filled by other players on par with you.

介紹的轉譯:Screeps是一個為程式碼變態(劃掉)愛好者設計的開源的MMO RTS(大規模多人線上即時戰略)遊戲。這個遊戲的核心機制就是來為你控制的單位寫AI。你可以用JavaScript來控制你殖民地(裏的一切),並且這些內容7*24小時執行的,並且充滿其他玩家來與你對抗。

說白了就是給你提供一個JavaScript的介面,用來寫一個「AI」來跟其他玩家對抗。可以簡單的基於規則,也可以寫有限狀態自動機,也可以寫增強學習之類的agent ai(但效能其實很受限)。

現在這個遊戲已經變得巨復雜了。從能源到采集,從防禦到進攻策略甚至還有貿易等等等等。。。

這個遊戲有多復雜?首先想要入門,遊戲是全英文的,除了寫code要用純英文,最重要的是所有的官方文件也都是英文的。你需要透過閱讀文件來學習這個遊戲的API:https:// docs.screeps.com/archit ecture.html

(這文件一看就是API Reference的風格)

文件中包括整個遊戲系統的執行邏輯、寫code的介面和一大堆內部機制。

當然,還有API References!來來來,請隨意體驗一下被程式碼支配的恐懼:

然後看看大佬開源出來的code:https:// github.com/TooAngel/scr eeps

(是的,放在了全球最大宅男/女交友社區)

這個遊戲的收費是花錢買算力(subscription token)。。而遊戲中你可以獲得算力再出售。所以完全有可能透過寫一個巨厲害的code來賺錢……

詳細資訊建議看steam頁面中 Attack.On.Pika[AFK] 的評論。。。分析的已經很透徹了

更:附上tutorial裏的第一段程式碼:

module . exports . loop = function () { var creep = Game . creeps [ 'Harvester1' ]; var sources = creep . room . find ( FIND_SOURCES ); if ( creep . harvest ( sources [ 0 ]) == ERR_NOT_IN_RANGE ){ creep . moveTo ( sources [ 0 ]); } }

大致的意思是這樣的:從場景中找到名為Harvester1的一個creep(既遊戲種的一種基本單位)。然後尋找當前房間中的所有source。然後命令creep去harvest 所有source中的第1個source。但這個過程有可能返回值是「ERR_NOT_IN_RANGE」這個錯誤,說明creep距離source太遠了。然後就命令creep moveTO那個source裏。然後整個函數永不間斷地執行下去。

如此,萬裏長征第一步搞定了!你得到了一個可以遍歷采集資源的creep。但是抵禦不了入侵者,也很難最佳化效率等等。想要更高端的agent,還是要多燒腦了。

更:看了一下API,這玩意居然還支持Binary Module。就是說一些要求效能的地方,你可以寫個C語言的code然後編譯成二進制的library再在JavaScript指令碼裏呼叫。