【開發(fā)日志補全計劃】合同的改進
原作者:CCP Atlas
原文:http://community.eveonline.com/devblog.asp?a=blog&nbid=1902
?
在Incursion 1.1版本中,我們對日漸老化的合同系統(tǒng)做了大量改進。該系統(tǒng)可以改進的地方有很多,這幾年來我們從玩家那兒得到了大量有關合同搜索功能的改進建議。
后臺工作
之所以我們現(xiàn)在才開始改進工作,主要是由于后臺的性能問題。目前合同的搜索是在數(shù)據(jù)庫層面進行的,而合同的管理(比如查看合同)則是在合同創(chuàng)建時所在的服務器節(jié)點上進行的。
這樣做的理由在于,它是一種非常自然的負載均衡方式,并且利用了數(shù)據(jù)庫的專長??上嶋H情況卻不是這樣,因為目前大多數(shù)合同都集中在吉他星系,多數(shù)合同搜索請求也都從那兒發(fā)起。所以實際情況就是大多數(shù)合同的搜索與查看都在一個已經(jīng)十分繁忙的節(jié)點上進行,誰讓大家都喜歡去吉他消費呢?
正是這個原因,再加上搜索合同對數(shù)據(jù)庫產生的巨大資源消耗,迫使我們重新審視我們的合同系統(tǒng)。結果就是我們對合同系統(tǒng)后臺的架構進行了重新設計,將搜索任務從數(shù)據(jù)庫移到一個專門的合同節(jié)點上。此外,所有的合同也都被放在了那個節(jié)點(而不是90%都放在吉他節(jié)點上)。
采用這個新系統(tǒng)后,除了放入或拿出合同物品的步驟之外,你所處星系的節(jié)點將不會與合同扯上任何關系。這樣星系節(jié)點就得到了解放,在吉他那樣的地方,查看合同的速度會加快很多,即使是在異常繁忙的星系,合同的搜索速度也會相應加快。
在人物節(jié)點上,我們也在做類似的優(yōu)化工作,將人物節(jié)點的負載均衡工作轉移到專門的服務器集群中去,這樣星系節(jié)點的負擔就輕一點。
優(yōu)化之后,我們新增了很多原有結構不支持的功能。每當你對服務器做優(yōu)化的時候,只要能在減輕其負擔的同時又新增了其他功能,那它就是一項有價值的優(yōu)化工作。
現(xiàn)在讓我來為大家詳細介紹一下新功能吧。
新的合同搜索功能
新的合同搜索功能尚處于實驗階段,我們會花數(shù)月時間去不斷調試完善它。在此期間,現(xiàn)有的合同搜索功能依舊可用,同時我們歡迎大家去論壇向我們提出針對這一實驗功能的意見。我想,幾個補丁過后,我們就可以讓這個新搜索功能正式取代現(xiàn)有的搜索功能了。但是我們向大家保證,即使是實驗性的搜索功能,它也是完全可用的,所以還是希望大家能盡量嘗試這一新搜索功能。
合同搜索與控制邊欄是首批被實驗的功能。這是我們最近在嘗試的一種新的應用方式:就是先在小范圍內使用新功能,然后再進一步擴大新功能的應用范圍。希望你們能喜歡這種做法,然后盡可能多的給我們反饋。
需要提醒大家的是,這畢竟是一項實驗功能,因此或多或少會存在一點問題。如果出現(xiàn)大問題,我們可能會在不提醒大家的情況下關閉這一功能。
如果你不想讀下去了,那現(xiàn)在就去測試服務器上試試新功能吧。如果你還想聽點什么,那我再進一步細述合同搜索的新功能。
打開了新的合同系統(tǒng)之后,你應該看到如下的標簽窗口:
?

哇,看起來有不少新玩意兒?,F(xiàn)在,讓我一一道來吧!
服務器端進行的排序
目前合同系統(tǒng)的最大問題之一就是,整個合同列表都是按照創(chuàng)建時間的先后排列的,而你只能在含有100項的分頁上進行其他排序。這樣一來,搜索變得非常困難,因為你的搜索范圍可能是數(shù)千份合同。除非你能很好地縮小搜索范圍,否則這樣搜索是件非常麻煩的事。
好在新設計能夠讓我們改變這一狀況?,F(xiàn)在搜索操作都由服務器來負責,服務器將對整個結果進行排序,然后再將結果傳給客戶端。這樣,你就可以按照下列標準對合同進行排序了:
1、?創(chuàng)建日期
2、剩余時間
3、價格(拍賣與物品交換)
4、獎勵(快遞)
5、押金(快遞)
6、體積(快遞)
但比較遺憾的一點,就是我們無法讓你按距離排序,因為這牽涉到具體用戶的路徑尋找,而這一操作是服務器負擔不起的。但是,在每個分頁上,你還是可以進行距離排序。
新的合同搜索將返回最多1000份合同,總共10個分頁。它們的排序是針對全體合同而言的,因此不會出現(xiàn)隱形排序。
列表中有了更多的信息
目前的搜索功能并沒有在其結果中提供很多的內容。這是因為我們當初想讓大家比較容易地立即找到各種不同類型的合同,因此搜索結果必須比較粗略,比較寬泛,所以實用性就打了折扣。例如,下圖顯示了搜索快遞合同的一個結果:
?

大家可以看到我們在新的搜索窗口中做了改動,突出“每次只搜一種合同”這樣一種概念(當然大家還是可以繼續(xù)同時搜拍賣與物品交換合同,只不過在搜索結果中,信息量較少)。這樣我們就能提供針對某一類型合同的搜索結果,然后添加相應的選項欄,供玩家進行排序。
?

從這個快遞合同搜索的結果來看,你可以按目的地、體積、路線長度等指標來對它們進行排序。如果你搜索拍賣合同,那相應的選項欄也會有所不同,與合同的類型相對應。
可能你已經(jīng)注意到,如果合同不在你所處的星域,那結果中還會包含星域名稱以及終點星系的安全等級。除此之外,你還能從結果中知道你目前的自動導航設置是否能帶你到目的地。
地點搜索選項
地點選項有很多。你可以像以前一樣,選自己在的空間站、星系或星域,同時,你還可以選星座,或者其他的星系、星座或星域。你可以因此進行多樣化的搜索,比如你在某處找到了你感興趣的裝備,現(xiàn)在你可以搜索該裝備所在的星座來看看附近是否有其他你感興趣的物品。
尋找相關合同
現(xiàn)在你可以在合同搜索結果中以及合同詳情窗口上的合同菜單中使用“尋找相關合同”功能。通過它,你可以搜尋來自同一發(fā)布者、同一星系/星座/星域的合同,另外如果是快遞合同的話,還能搜索運往同一星系/星座/星域的合同。
這是個簡單但又非常有用的功能。例如,你可以利用它迅速獲得所有運往某一地區(qū)的合同信息。
對于含有一個物品的拍賣與物品交換合同,你可以利用該功能尋找同一類型、組別或種類的物品。
快遞合同搜索選項
現(xiàn)在搜索快遞合同的時候,你可以指定其范圍、報酬、押金或者體積。另外你也可以像以前一樣,指定星系、星座或星域之類的合同目的地。
頁面過濾器
在服務器上實現(xiàn)這一功能非常慢,但在客戶端上這類功能跑起來非??臁Mㄟ^頁面過濾器,你可以篩選每頁結果。使用過濾器之后,每頁上顯示的合同也會相應減少。
你可以設置的篩選條件有:
1、排除無法到達的地點
2、?排除已忽略的合同發(fā)布者
3、?最大跳躍距離
4、?最大路徑長度(僅針對快遞合同)
部分類型搜索
對于一直使用合同系統(tǒng)的人來說,每次只能搜一個類型物品的合同是件讓人火大的事?,F(xiàn)在,新的合同系統(tǒng)能讓我們改變這點。
你可以在“類型”框里輸入部分名稱,搜索結果將返回所有含有那部分名稱的合同。另外你還可以指定種類或組別來進一步細化你的搜索。最后,你可以將物品直接拽入“類型”框來搜索包含這類物品的合同,也可以很方便地將人物名稱從“人物和地點”界面或聊天窗口中拽入“發(fā)布者”框進行搜索。
將垃圾信息過濾掉
你可以在搜索中過濾掉含有多件物品、求購或者交換類型的合同,也可以過濾掉那些無法到達的星系和空間站,這樣整個搜索結果看起來就能清爽些。
界面仍在制作中
新合同搜索系統(tǒng)的界面還在不斷修改之中。接下來的幾周時間里,CCP Karkur 將會繼續(xù)完善合同界面。如果你有什么好點子,只管說出來!
但……新系統(tǒng)只適用于公共合同
新的合同搜索系統(tǒng)無法搜索私人合同,只能搜索公共合同。
之所以這樣,是因為真正指派到每個聯(lián)盟、軍團或個人頭上的合同并不多,因此對新功能的需求也不是那么緊迫。另外,可搜索合同的緩存對服務器資源占用較大,且私人合同總量也并非小數(shù)目,我們最終決定私人合同的搜索依舊采用老系統(tǒng)。
如果你覺得私人合同也有必要運用新系統(tǒng),那就請告訴我們,畢竟現(xiàn)在我們還不覺得有任何理由需要這樣做。
?
大量新功能
除了新的搜索功能之外,我們還新增了一些合同方面的新功能以及對其可用性的改善,其中大多數(shù)都來自于玩家和星際管理委員會(CSM)的意見。在這里我要感謝大家。
復制合同
現(xiàn)在你可以利用合同詳情上的這一右鍵菜單來“復制”合同,它會彈出一個參數(shù)都已預先填滿的“創(chuàng)建合同”向導窗口。這在你想創(chuàng)建多份相同合同的情況下尤其有用,能大大降低你的鼠標點擊次數(shù)。
已投保的艦船
快遞合同中,已投保的艦船的保險將不再失效,這樣才更符合常理。
通知
當你登錄游戲后,如果有指派給你的合同,你將會收到通知,并且可以非常容易地找到相關合同。另外,需要你注意的合同也會以類似的方式高亮顯示,這樣你一旦登錄便能對合同情況一目了然。
合同通知系統(tǒng)運行的機制,與技能訓練完成通知的機制一樣。
物品體積
在“創(chuàng)建合同”向導的“選擇物品”這一步,我們新增了“體積”一欄。此外,創(chuàng)建快遞合同的時候,所有選中物品的體積將顯示一個總和,這將有助于你更加容易地創(chuàng)建這類合同。
損壞的物品
損壞物品今后可以被放入任意一種合同,損壞的物品會在合同詳情窗口中顯示說明。這適用于所有的物品與合同。大伙兒不必再為含有二級科技晶體的合同煩惱了。
星系信息
現(xiàn)在,你會看到合同所在星系的更多信息,這樣你就能明白前往那兒是否安全。
合同詳情會顯示目的地星系的安全等級,同時也會顯示經(jīng)過星系的安全等級。你還能看到某個空間站是否歸玩家所有(如果是的話,你或許就進不了那個站)或者你目前的自動導航設定能否將你帶往目的地。
查找塑料包裹對應的合同
對于查詢塑料包裹對應的合同,我們在其右鍵菜單上新增了“查找合同”這一選項。點擊它,你就可以看到該包裹所屬的合同了。
在合同中搜索
現(xiàn)在你可以右鍵點擊任何類型的物品,然后選擇“在合同中搜索”來查看包含該類型物品的公共合同。
已裝填的彈藥
當你將一艘武器上裝有彈藥的艦船放入合同時,那些彈藥將被自動卸載到艦船貨柜艙中,而不再是機庫里。我想很多人都會為此歡呼雀躍的。
已裝配的裝備
包含艦船的合同將在每個裝配在其上的裝備旁顯示一個“已裝配”標志。由于改裝件裝配好后就無法再拆下(除非毀掉),因此這一功能對于查看合同中的艦船是否插了改裝件特別有用。
其他改進
1、對于只有一個條目的搜索結果,我們添加了“顯示信息”右鍵菜單選項。
2、簡化了“創(chuàng)建合同”向導。
3、物品交換合同現(xiàn)在有了不同的圖標。它們將采用“自由合同”之前使用的圖標。
4、如果合同目的地是個你無法進入的玩家擁有空間站,那系統(tǒng)會通知你這一點。
5、合同中,物品的衍生等級信息將正確顯示。
6、現(xiàn)在你可以在合同詳情窗口中預覽物品。
7、提升了合同的打開速度,不會再有較長的等待時間。
8、其他一些小改進。
不遠的將來
在不遠的將來,我們還打算添加其他功能,比如保存搜索條件(快速搜索),添加合同書簽,合同API及一些使用上的改善。我們希望能在接下來數(shù)月時間里完成這些功能。
如果你有任何意見或建議,歡迎在官網(wǎng)論壇上提出。我們期待你的反饋。