99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀淺析Webgame的設(shè)計(jì)測試方法
淺析Webgame的設(shè)計(jì)測試方法
2014-11-20
收藏

淺析Webgame的設(shè)計(jì)測試方法

近兩年,webgame成為了平臺(tái)商和用戶熱棒的對象,今天我們就來侃侃webgame的設(shè)計(jì)及測試的方法。

首先需要著重指出的一點(diǎn)是,本文所針對的僅是當(dāng)前最流行的戰(zhàn)爭策略類Webgame,對于其它類型Webgame并不適用。

事實(shí)上,在當(dāng)前的Webgame市場上所充斥的這些戰(zhàn)爭策略游戲的高度同質(zhì)化,已經(jīng)使得我們在很大程度上對于Webgame品質(zhì)的好壞喪失了判斷力。究竟一款Webgame設(shè)計(jì)成什么樣子才能夠成功,這個(gè)問題是行業(yè)內(nèi)沒有任何一個(gè)人可以回答的了的。在當(dāng)前以運(yùn)營和宣傳能力作為評判一款Webgame成敗的標(biāo)準(zhǔn)是一種很可行和可信的方法,但是對于Webgame的設(shè)計(jì)者和開發(fā)者(尤其是策劃),這樣的現(xiàn)狀卻是致命的。究竟我們?nèi)绾稳ピO(shè)計(jì)一款Webgame,應(yīng)當(dāng)遵循什么樣的設(shè)計(jì)原則?在找到這個(gè)問題的答案前,我們的游戲設(shè)計(jì)者被迫處在一個(gè)迷茫期中。事實(shí)上,本文無意于去找到這一設(shè)計(jì)原則,僅僅是嘗試在開發(fā)過程中尋求一些減少和避免設(shè)計(jì)失誤的方法。

數(shù)值設(shè)計(jì)被認(rèn)為是戰(zhàn)爭策略類Webgame設(shè)計(jì)中最難的一環(huán),其原因就在于我們對于數(shù)值設(shè)計(jì)的評價(jià)標(biāo)準(zhǔn)知之甚少。從表面上看,Webgame的數(shù)值設(shè)計(jì)是存在有很大的隨意性的,尤其是作為Webgame核心的各項(xiàng)時(shí)間和資源增長速度的設(shè)計(jì),由于它們對于各個(gè)玩家來講是公平的,而且相互之間往往很難看出直接的數(shù)值關(guān)聯(lián),因此很多對此并不精通的游戲策劃在設(shè)計(jì)它們時(shí)往往過分隨意。而隱藏在這種隨意背后的,往往就是災(zāi)難性的游戲進(jìn)程。無論是資源生產(chǎn)速度和資源消耗速度的不匹配,游戲戰(zhàn)略進(jìn)程和玩家部隊(duì)生產(chǎn)速度的不匹配,主城和分城建設(shè)因不同資源和科技起點(diǎn)造成的數(shù)值漏洞,都屬于容易帶給玩家很嚴(yán)重的游戲體驗(yàn)挫折,但并不容易在設(shè)計(jì)階段快速發(fā)現(xiàn)的問題。因此的,在戰(zhàn)爭策略類Webgame的設(shè)計(jì)開發(fā)過程中,我們需要引入設(shè)計(jì)測試的方法。

傳統(tǒng)的軟件測試和游戲測試更加偏重的都是程序漏洞(一般稱為Bug)而不是設(shè)計(jì)漏洞。究其原因,很重要的一點(diǎn)就是測試的測試文檔(或稱測試用例)是基于既有的設(shè)計(jì)文檔的,測試的評判標(biāo)準(zhǔn)是實(shí)現(xiàn)的程序(游戲)是否符合既有的需求文檔。但是在這一過程中,設(shè)計(jì)的錯(cuò)誤往往被忽略。大量的設(shè)計(jì)漏洞由于測試不充分而沒有在游戲開發(fā)測試階段被發(fā)現(xiàn),而是被保留到了正式的外部測試階段。尤其是一些后期的數(shù)值型漏洞,往往是在游戲開始公測甚至于正式運(yùn)營后才暴露出來的。由于游戲數(shù)值的普遍關(guān)聯(lián)性,以及玩家角色積累的連續(xù)性,在這一階段暴露出的設(shè)計(jì)漏洞能否被彌補(bǔ),彌補(bǔ)需要多少時(shí)間都成為了未知數(shù)。因此的,在游戲開發(fā)過程中,我們需要針對設(shè)計(jì)漏洞的測試流程和測試方法。

事實(shí)上,在游戲行業(yè)的開發(fā)過程中,針對單一玩法,單一流程的設(shè)計(jì)測試(或者叫內(nèi)容測試)是存在的,而且也可以說是比較到位的,但是,戰(zhàn)爭策略類 Webgame的特殊性就在于它的設(shè)計(jì)漏洞往往出現(xiàn)在多個(gè)系統(tǒng),多個(gè)玩法,多個(gè)流程共同作用的一個(gè)混合的玩家游戲過程中,而不是存在于某一個(gè)個(gè)體中,這樣的,傳統(tǒng)的基于模塊的測試方法在應(yīng)對戰(zhàn)爭策略類Webgame時(shí)往往是很不充分的。那么,Webgame測試中還需要什么樣的測試方法呢?很簡單的,就是測試者(事實(shí)上,這個(gè)測試者的角色建議以游戲策劃而不是專門的游戲測試人員擔(dān)任)以不同的游戲陣營和游戲角色加入游戲,整體體驗(yàn)游戲進(jìn)程,并且記錄各種體驗(yàn)性數(shù)據(jù)(一般為混合性數(shù)據(jù),即不存在于游戲數(shù)值策劃文檔內(nèi)的數(shù)據(jù),例如玩家主城升級(jí)到X級(jí)所需的整體時(shí)間,玩家從進(jìn)入游戲到開出第一座分城所需要的時(shí)間等)。

我們來看一個(gè)近期比較火熱的戰(zhàn)爭策略類Webgame:《熱血三國》中所出現(xiàn)的兩個(gè)最為嚴(yán)重的,也是游戲設(shè)計(jì)者在近期更新中著重解決的兩個(gè)設(shè)計(jì)漏洞:1.游戲中后期很容易出現(xiàn)資源堆積現(xiàn)象(尤其是石頭和鐵),繼而頻繁的發(fā)生“人禍”。一個(gè)玩家因故兩天不上游戲就可能導(dǎo)致接近致命的非PVP損失。

2.玩家頻繁刷十級(jí)NPC城快速提升聲望。

我們會(huì)注意到,以上的設(shè)計(jì)漏洞恰恰反映了兩種最常見的容易在設(shè)計(jì)開發(fā)測試流程中被忽略的漏洞:一是多個(gè)混合系統(tǒng)長時(shí)間作用所發(fā)生的混合效應(yīng)(漏洞一反映了資源生產(chǎn),資源儲(chǔ)存,資源消耗和人禍系統(tǒng)四個(gè)系統(tǒng)共同作用過程中的配合問題);二是單一系統(tǒng)的效果沒有直觀反應(yīng)出其漏洞(十級(jí)NPC城的掠奪收益是在游戲策劃的規(guī)劃之內(nèi)的,但他并沒有清晰的意識(shí)到這一規(guī)劃到底會(huì)導(dǎo)致什么樣的整體結(jié)果)。而對于絕大部分在游戲中進(jìn)行到這一階段的玩家而言,這些漏洞都是顯而易見的。同樣的,我們可以意識(shí)到,如果我們有這樣一個(gè)基于玩家整體游戲過程的測試的話,那么很多問題是可以在游戲面世之前被發(fā)現(xiàn)和解決的。

當(dāng)然的,另一個(gè)問題也擺在了我們面前:戰(zhàn)爭策略類Webgame以游戲進(jìn)程緩慢,周期長為主要特征,難道我們的一環(huán)測試需要測試者連續(xù)去玩上幾個(gè)月么?是否還需要游戲測試者24小時(shí)在線?因此的,我們接下來要指出的,就是這一基于設(shè)計(jì)的測試所應(yīng)采取的正確方法。

1.在游戲開發(fā)早期預(yù)留速度調(diào)整和用于中斷的游戲控制接口。對于測試過程來講,測試者有需要簡化和跳過一般玩家的長時(shí)間等待過程,但又要保持在這一過程中的數(shù)據(jù)可以與游戲正常運(yùn)行時(shí)一般玩家同步變化,這就需要游戲開發(fā)過程中為測試預(yù)留出可以控制游戲速度的接口。需要控制的游戲速度主要包括:玩家資源獲取的速度,建筑單位的建筑速度,科技研發(fā)速度,軍隊(duì)和其他物品的生產(chǎn)度,以及玩家單位在地圖上的移動(dòng)速度等。需要特殊指出的是,由于測試者測試的是當(dāng)前數(shù)值體系下的數(shù)值平衡問題,因此不應(yīng)該提供給游戲測試者改變兩個(gè)速度間相對比例的接口,換言之,游戲測試者需要的僅僅是一個(gè)調(diào)整游戲整體運(yùn)行速度的接口。另一方面,游戲測試者會(huì)有測試玩家離開游戲一段時(shí)間后游戲狀況變化的需求,以及游戲測試者本人因?yàn)橄掳?,休息或其他原因暫時(shí)離開游戲的需求,因此需要在程序上提供給測試者一個(gè)暫時(shí)中斷游戲進(jìn)行的接口。這兩個(gè)接口應(yīng)該在游戲開發(fā)早期即預(yù)留,這樣可以讓游戲設(shè)計(jì)者在第一個(gè)可運(yùn)行版本出來時(shí)即可開始初步的數(shù)值測試。事實(shí)上,考慮到當(dāng)前Webgame主流使用的頁面腳本的后臺(tái)開發(fā)模式,游戲策劃可以在早期進(jìn)行的測試應(yīng)該是非常方便和快捷的。

2.為游戲設(shè)計(jì)測試提供自動(dòng)化的腳本式的測試機(jī)器人。無論我們的游戲在實(shí)際的玩家界面和功能上是否支持玩家連續(xù)指定多個(gè)任務(wù)(Ogame默認(rèn)允許玩家安排長達(dá)10個(gè)的任務(wù)序列,其他戰(zhàn)爭策略類Webgame則大多將這一點(diǎn)作為收費(fèi)點(diǎn)),游戲開發(fā)者都應(yīng)該為游戲設(shè)計(jì)測試開發(fā)這一功能。這將大大有助于提高設(shè)計(jì)測試的效率,并為一個(gè)測試人員同時(shí)測試多個(gè)角色,多個(gè)流程提供可能性。為了達(dá)到這一目的,一個(gè)可能的程序架構(gòu)原則是盡量粒子化各個(gè)玩家單一過程(例如升級(jí)1座兵營或者升級(jí)1級(jí)民房),并至少在開發(fā)測試過程中為各個(gè)玩家單一過程提供外部的驅(qū)動(dòng)接口,從而從外部直接接受玩家的腳本式的測試指令集。這一指令集的一個(gè)可能的形式是:(官府(ID:1)升級(jí)到2級(jí);建造民房(ID:2);民房(ID:2)升級(jí)到2級(jí)…………)。當(dāng)然,如果測試人員能夠略有一點(diǎn)程序基礎(chǔ),將會(huì)大大有利于這一自動(dòng)化測試流程的建立。

3.提供便于非開發(fā)人員使用的單一玩家日志。事實(shí)上,我是支持在游戲的正式界面中為一般玩家提供查看個(gè)人行為日志的功能的,并且非常建議在服務(wù)器上盡量保留玩家的玩家行為日志,這將成為日后游戲設(shè)計(jì)者進(jìn)行基于玩家游戲行為的數(shù)據(jù)分析和挖掘的基礎(chǔ),這一思路在傳統(tǒng)的互聯(lián)網(wǎng)運(yùn)營和設(shè)計(jì)中是非常普遍的,但在游戲行業(yè)并沒有得到足夠的重視。但至少,在游戲開發(fā)測試過程中,需要為游戲的設(shè)計(jì)測試人員(他們往往是非技術(shù)開發(fā)人士)提供便于他們使用的玩家日志。這一日志將成為他們發(fā)現(xiàn)問題,以及發(fā)現(xiàn)問題成因的根本來源。以前面講到的《熱血三國》的設(shè)計(jì)漏洞為例,玩家日志中頻繁出現(xiàn)的人禍將成為游戲設(shè)計(jì)測試人員發(fā)現(xiàn)設(shè)計(jì)漏洞的一個(gè)重要著眼點(diǎn)。事實(shí)上,在游戲的正式運(yùn)營過程中,對游戲日志進(jìn)行數(shù)據(jù)分析和總結(jié),也是找到游戲設(shè)計(jì)漏洞的一個(gè)重要方法。

4.明確需要進(jìn)行測試的玩家行為模式。由于游戲設(shè)計(jì)測試往往是以10倍甚至100倍于一般玩家游戲過程的速度在進(jìn)行的,因此的,我們需要更加明確我們需要關(guān)注的玩家行為模式有哪些,并將其映射到我們的測試環(huán)境下,來進(jìn)行有針對性的行為模式模擬。典型的需要關(guān)注的玩家行為模式包括:(1)深度游戲玩家。他們可以在自己需要的任意時(shí)刻保持在線,而且每天可以保持12個(gè)小時(shí)甚至更長的在線游戲時(shí)間。對于這樣的玩家,我們需要模擬的是長時(shí)間連續(xù)操作的游戲過程,以及一個(gè)模擬玩家每日在線12小時(shí)以上的周期性游戲過程。

(2)辦公室型玩家。他們每天白天可以基本保證長時(shí)間在線,但是他們每天的在線時(shí)間往往局限在上班時(shí)間的9小時(shí)內(nèi)。對于這樣的玩家,我們需要模擬的是一個(gè)每日在線9小時(shí)以下的周期性游戲過程。

(3)夜晚玩家。以學(xué)生和從事某些行業(yè)的工作者為主的,他們每天的主要游戲時(shí)間在晚上下班(放學(xué))后的幾個(gè)小時(shí)。對于這樣的玩家,我們需要模擬的是一個(gè)每日在線5小時(shí)以下的周期性游戲過程。

(4)不定時(shí)玩家,這些玩家可能以在校學(xué)生以及其他低端玩家為主體,他們往往以網(wǎng)吧為主要上網(wǎng)地點(diǎn),游戲時(shí)間非常不固定,日上網(wǎng)時(shí)間也可能發(fā)生很大的波動(dòng)。對于這樣的玩家,我們可以模擬一個(gè)以隨機(jī)時(shí)間驅(qū)動(dòng)的游戲過程。

(5)雙休日及節(jié)假日現(xiàn)象。雙休日意味著會(huì)有一大批玩家頻繁的出現(xiàn)連續(xù)兩天半(即從周五下班到周一上班)的離線情況,而節(jié)假日則意味著會(huì)出現(xiàn)(但不會(huì)頻繁出現(xiàn))大批玩家連續(xù)3天~7天不上線的情況。事實(shí)上,只要游戲測試人員在游戲測試過程中有意識(shí)的停止一段時(shí)間的游戲操作,很容易模擬這一現(xiàn)象。事實(shí)上,前文中《熱血三國》的第一個(gè)設(shè)計(jì)漏洞恰恰出在了對于雙休日及節(jié)假日現(xiàn)象的忽略。

5.明確需要達(dá)到和避免的玩家體驗(yàn)和游戲局面。我們希不希望玩家每次在線都有事可作?我們希望玩家被卡在建設(shè)時(shí)間還是資源上?我們希不希望玩家的資源很容易達(dá)到城市的儲(chǔ)存上限?在各種玩家行為流程下,我們希望各種負(fù)體驗(yàn)設(shè)置(例如天災(zāi)人禍)以多大頻度發(fā)生?諸如以上的設(shè)計(jì)目標(biāo)越明確,測試時(shí)越能做到有的放矢,測試效果也會(huì)越好。事實(shí)上,如果設(shè)計(jì)測試者能夠?qū)⑦@些設(shè)計(jì)目標(biāo)量化為明確的數(shù)值目標(biāo),那么我們的程序開發(fā)者完全可以將這些設(shè)計(jì)目標(biāo)作為游戲系統(tǒng)的報(bào)警機(jī)制,從而在這些設(shè)計(jì)目標(biāo)被突破時(shí)直接給予游戲設(shè)計(jì)測試者以反饋。這樣的測試流程效果會(huì)大大好于盲目的體驗(yàn)式測試。另一點(diǎn)需要指出的是,由于設(shè)計(jì)測試過程往往處在一個(gè)高速的非正常的游戲過程中,因此諸如 “玩家建造一個(gè)建筑所需時(shí)間造成的體驗(yàn)”這樣的問題是不適合于在我們的測試過程中去解決的。

建議對這一測試過程不夠了解或者存有疑慮的朋友可以去嘗試一下Ogame的第三方服務(wù)器,該第三方服務(wù)器提供了管理員隨時(shí)手動(dòng)管理游戲速度的功能(事實(shí)上,這一功能的開發(fā)難度基本可以忽略),從而使得我們可以很直觀的體驗(yàn)游戲中一個(gè)玩家整體的發(fā)展流程。一個(gè)額外的話題是,當(dāng)你在游戲中發(fā)現(xiàn)以100倍速升級(jí)一個(gè)科技需要幾十個(gè)小時(shí)時(shí),大概你也會(huì)感覺到在標(biāo)準(zhǔn)的游戲過程中這會(huì)帶給玩家什么樣的體驗(yàn)了。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }