Screeps 是一款面向編程愛好者的開源 MMO RTS 沙盒游戲,其核心機制是為您的單位撰寫AI,您可以通過撰寫 JavaScript 來控制自己的殖民地,
Screeps 的游戲模式類似紅警、星際爭霸、魔獸、帝國時代等,但是和這些游戲不同,你無法通過滑鼠或者鍵盤控制你的角色,你需要撰寫 JavaScript 代碼來控制你的單位去完成各項任務,
您的殖民地可以采集資源,建造單位,征服領土或是與其他殖民地進行貿易,您征服的土地越多,您擴展疆域的能力和在游戲世界中的影響力也就越大,但是請注意,意圖控制相同區域的多個玩家可能會引發一場戰爭!
Steam售價:65元,我是前不久搞促銷的時候半價買的,
進入游戲后選擇一個資源豐富、地形不錯的地圖,創建自己的基地,默認名字為 Spawn1,全域物件 Game 的 spawns包含了所有的基地(母巢),因此 Game.spawns['Spawn1']或者 Game.spawns.Spawn1就是我們剛才創建的基地,
使用 spawnCreep方法我們可以創建自己的第一個單位(creep) :
Game.spawns['Spawn1'].spawnCreep( [WORK, CARRY, MOVE], 'creeper1' );
上面代碼創建了一個名字為 creeper1 的單位,接下來我們撰寫代碼,讓他去采集資源:
module.exports.loop = function () {
var creep = Game.creeps['creeper1'];
var sources = creep.room.find(FIND_SOURCES);
if(creep.harvest(sources[0]) == ERR_NOT_IN_RANGE){
creep.moveTo(sources[0]);
}
}
Game.creeps['creeper1']從全域物件 Game 的 creeps 屬性中根據名字找到剛才創建的 creep(單位)
從當前房間 creep.room中尋找特定建筑,我們傳入的引數是 FIND_SOURCES,因此我們尋找的所有 source(資源)
命令 creep 去采集所有 source 中的第 1 個 source
要想采集資源,需要 creep 在資源的附近,我們需要撰寫代碼讓 creep 移動過去,然后判斷兩者的距離再采集,但是有個討巧的方式,我們可以通過判斷 harvest 函式的回傳值來實作,如果回傳了 ERR_NOT_IN_RANGE,說明 creep 距離 source 太遠,此時我們就呼叫 creep.moveTo 方法,
最后是整個程式的入口,Screeps 規定程式的入口檔案是 main.js,在主檔案中需要匯出一個 loop 函式,這樣整個程序就永不間斷地執行下去,
這只是一個簡單的例子,你還可以發揮自己的想象力,開發不同的演算法和策略來經營自己的殖民地,
通過演算法你可以給房間的物品安排特定的布局以提高資源的產量和利用率:
當有敵人侵入時你可以防守,甚至可以主動去進攻別人,擴大自己的殖民地:
你不需要一直盯在電腦前,只需要把代碼上傳,然后是不是查看一下自己的基地就可以了,
Screeps 支持搭建私服,服務器代碼使用 Node.js 撰寫,并且在 GitHub 開源,
我上周末也搭建了一個:screeps.devtips.cn,目前已經運行了一周,基本運行平穩,
服務器中有 20*20 共 400 個房間,80% 以上的房間都是相對平坦的地形,并配有 2 個資源采集點,
相關鏈接:
游戲官網:https://screeps.com
我的私服地址:https://screeps.devtips.cn
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232102.html
標籤:其他
