2

附錄小說 杉鹿圓的FPS講座 理論強化篇

《我與她的遊戲戰爭》 · 師走透 · 7414 字

這一天,現代遊戲社一如平常地正要開始社團活動。不過只有這天的活動內容與平常不一樣。

事情的開端,是天道以下這句發言:

「對了,杉鹿,我一直有個疑問,是不是可以請妳告訴我了?」

「嗯?什麼問題?」

「上次我們第一次讓岸嶺玩FPS的時候,不是講到了『點發』嗎?」

所謂的點發,就是FPS的一項射擊技巧。

就跟現實當中的槍械一樣,在擬真系FPS當中如果讓槍械全自動射擊,準星會因爲後座力而偏掉。若是近距離的話稍微偏掉沒差,但是在射擊豆子大的遠處敵人時,只要有一點誤差就會完全射不中敵人了。

因此,在射擊遠距離的敵人時,必須每開幾槍就放開扳機,藉此抑止準星的偏差。這種技巧就是所謂的「點發」。

「那時候我們講到,射擊遠距離敵人時一定要用點發,可是點發難免會造成射擊速率下降對吧?所以我就問說,在第一發命中時如果被對手跑了,不就殺不死對手了嗎?」

「啊,原來是那件事啊。」

岸嶺也明白了天道想問什麼。

「我也很想知道呢,那時候杉鹿不是說,這方面的問題在網路對戰時不用在意嗎?記得妳好像是說跟Lag的問題有關……」

「對,就是那件事。爲什麼不用在意呢?我一直不懂。」

「哦,妳是問那個啊。要我告訴妳可以……可是講起來有點長喔。因爲要解釋這個問題,就得講到Ping還有FPS。」

「沒關係,如果是這樣的話,我也想拜託妳,請務必跟大家解說一下!」瀨名老師推了她一把:「仔細想想,我還沒跟岸嶺同學解釋過這方面的事呢!我早就想找機會解說一番了,這樣正好!」

「啊──?好麻煩喔。不過也是啦,的確應該跟你們解釋一下。」

杉鹿平時雖然講話帶刺,不過被人拜託做什麼的時候,好像不太擅長拒絕。

「好吧,首先我要一個白板,還有筆。」

「知道了,我來準備。」

天道把房間角落的白板喀啦啦地拉了過來。

岸嶺勉強聽懂了她的意思。

「啊,是這樣喔?因爲同一間房間裏有多達四臺的遊戲機,我還以爲是直接連接,而不是用網路呢。」

「這時候伺服器是在瀨名老師那邊,然後包括瀨名老師在內,我們四個人都以用戶端連接到伺服器。現在,比方說我移動一下角色──」

「說了你可能覺得意外,其實用纜線反而比較麻煩,而且有的遊戲不對應。如果是網路的話,只要設定一次路由器,之後就簡單了。」

最愛做解說的瀨名老師眼鏡耀眼一亮。

「我很想說妳答對了……可惜就差一點,其實這是個陷阱題。我剛纔說過有的遊戲每秒跑三十影格,有的跑六十影格,對吧?所以正確答案是『六十FPS的遊戲每影格大約〇‧〇一七秒,三十FPS的遊戲則是〇‧〇三三秒』。」

「…………」

天道再度以驚人的心算能力一瞬間算出答案。

接着她又在周圍寫上「PC2用戶端」「PC3用戶端」「PC4用戶端」,同樣用紅線連到中央的「伺服器」。

「好,這樣就萬事具備了!開始吧!」

「嗯,我們社團也是。」天道點點頭。「遊戲機都是經由網路連接的。」

「可是一般來說,很難在同一個地方準備好幾臺遊戲機,對吧?所以最普遍的方法就是網路對戰。」

「沒錯,翻成國語應該就是『每秒顯示影格數』之類的吧。至於它的意思嘛……嗯──只要懂了就會覺得很簡單,可是要解釋還真難呢。」

「哦,這我就懂了。」

「咦?呃……好像有在網路用語裏聽過……我記得是讓伺服器與用戶端連線,藉此互相傳遞資料……」

「哎,你的話或許有可能,不過有時候應該也是Lag造成的。聽好嘍,基本上,假設有十個人玩網路對戰,會由十個人當中的一個人開設伺服器,然後十個人都以用戶端程式與伺服器連線。換句話說,開設伺服器的人會同時用到伺服器與用戶端。」

「對,不過,這幅圖的四條紅線長度都差不多,但比方說用戶端①可能是從日本存取資料,用戶端②卻可能是從美國存取,實際上要讓用戶端連上伺服器,必須透過數據機或是路由器等各種裝置,所以資料傳遞其實還蠻花時間的。而Ping就是顯示伺服器與用戶端之間連線狀態的單位。基本上這個單位的數字越小,就等於連線狀況越好。」

岸嶺有這個經驗。

「Lag……」

「勉……勉強。就是伺服器跟四個用戶端連線了,對吧?」

「就是這樣!順便一提,爲什麼是以六十次爲基本呢?因爲最近的電視或電腦熒幕每秒能更新的次數大多都是六十次!」

「咦?咦?咦?」

「真的明白了嗎?」杉鹿冷眼瞪着岸嶺。「那我考考你,一影格大約是幾秒?」

「這啥啊?眼鏡?我又沒有近視。」

杉鹿在白板上寫上「ping」,g好像不發音。

首先她在中央寫上「PC1用戶端」,正下方寫上「伺服器」。然後用紅線把「PC1用戶端」與「伺服器」連起來。

然後岸嶺等人進入房間,啓動對戰模式。

「沒錯。用戶端程式每隔幾影格,就會把這幾影格之間的手把輸入訊號、移動速度與視線角度等資料一起持續送往伺服器。伺服器處理這些資料,再把結果送回用戶端,顯示在畫面上。不過也不是所有FPS都是如此,像格鬥遊戲的話甚至是每影格都會持續將手把的輸入訊號送到伺服器。喂,岸嶺?你有跟上嗎?」

「Per Second我懂。」天道說。「簡而言之就是『每秒』的意思吧。」

杉鹿先把自己的角色移動到天道的角色面前。現在天道的畫面上看得到杉鹿,杉鹿的畫面上也看得到天道。

接着她在「伺服器」的周圍又寫上「用戶端①」~「用戶端④」四個項目,然後拿出紅筆,用紅線將四個「用戶端」與「伺服器」分別連起來。

「不要講得好像事不關己啦,他也是杉鹿的顧問啊。」

瀨名老師手腳俐落地啓動遊戲,創建了私人房間。

杉鹿本來就是個滿兇悍的女生,如今戴起眼鏡,減少了幾分平常的孩子氣,看起來成熟了些,散發一種與平時不同的魅力。

話題突然變得好誇張。

「原來如此,我好像懂了。」

講到這裏,杉鹿轉向瀨名老師。

「哎,Ping就像是一個單位,所以應該不難懂吧,那我要進入下一段嘍。Ping是代表伺服器與用戶端之間連線狀態的單位,至於電玩也有表示速度的單位,就是FPS。」

「……我每次都在想,你們的顧問是不是哪裏有毛病啊?」

「不過,這真的辦得到嗎?」

「放棄得太快了吧!真拿你沒辦法耶,總之統整起來,就是遊戲每秒會固定做幾十次的處理啦。」

「勉……勉強。也就是PC1開設了伺服器,然後所有玩家以用戶端程式跟伺服器連線對吧?」

「沒錯。講起來有點複雜,FPS的伺服器程式會與用戶端互相傳遞資料,並且架構一個我們看不到的世界。這個世界只是沒有顯示圖像,其他都一樣,在這個世界裏也有玩家操作的角色在玩遊戲。而且這個世界是未來的世界,不過只比我們快個幾影格就是了。說成時間進行得比我們快,或許比較好懂?然後用戶端將手把訊號傳送到這個世界,藉此改變過去……應該說重新架構未來世界,再把結果反映到我們的遊戲畫面上。」

「大致上算對,不過更正確來說是『向目標主機傳出封包後的封包往返時間』。那麼接下來……岸嶺,你有聽過『伺服器』與『用戶端』嗎?」

「順便一提,JGBC也是用這個方法!JGBC的會場有幾十臺遊戲機,但全部都是經由網路連線的!理由是這樣比較能重現參賽者平常的遊戲環境!」

杉鹿被迫收下了眼鏡,板着臉小聲對岸嶺說道:

或許該說不愧是天道,她一瞬間就算出來了。

「還是實際演練一下吧。麻煩老師準備一下游戲,要選一中槍就會沒命的擬真系FPS。然後請老師開一個私人房間,叫我們過去。」

「所以網路遊戲爲了解決這個物理性的Lag,就會做很多處理。比較具代表性的處理方式,就是『在伺服器程式內架構未來世界』。」

「……抱……抱歉,我有點跟不上了。」

「嗯,對啊。」

「嗯,我知道了!」

「妳說用戶端每隔幾影格,就會把這幾影格之間的手把訊號或角色資料送到伺服器……但十影格也不過才〇‧一二秒吧?這麼多資料能送得這麼快嗎?」

「聽不懂嗎?那我用動畫來打比方吧!動畫是用幾萬張賽璐珞片連續拍攝製作成的,這你應該知道吧?動畫每秒需要用到十五到二十四張賽璐珞片!遊戲也是一樣,每秒要進行多達幾十次的程式處理,才能描繪出圖像!」

「FPS?」天道微微偏頭。「那不是指First Person Shooter嗎?」

岸嶺慌張了一下,不過冷靜一下就發現不難。

「你就當作是延遲或滯後的意思就對了。比方說……有了,在玩擬真系FPS時,有沒有過一種經驗,就是明明是自己先開槍,卻射輸對方?」

「……算了,怎樣都好啦。」

杉鹿開始在白板上劃一幅新的示意圖。

「要從基礎用語開始學起,才能進一步說明啊。那就照你的希望,開始進入主題吧。比方說假設有很多玩家想一起玩遊戲,除了分割畫面之類,就只有兩種方法,對吧?一種是直接用纜線連接好幾臺遊戲機,一種則是經由網路對戰。」

「你就把這條紅線當作是網路連線,伺服器與用戶端就是使用這個連線在互相傳遞資料。到目前爲止跟得上嗎?」

「對啊。不過啊,不管在什麼樣的環境下,網路對戰都會有個棘手的問題,那就是Lag。」

「那我要開始講解嘍,首先從Ping開始。」

剛纔潛艦的例子很好懂,但這次的解說專業術語太多,岸嶺跟不上。

「那……那麼……也就是說大家在同一個會場,卻特地與遠方的伺服器連線對戰嗎?」

「我大概明白FPS是什麼了。」

「不,這次不一樣!」瀨名老師插嘴道:「杉鹿同學說的,應該是Frame Per Second(畫面更新率)吧!」

「呃──六十分之一秒,就是1÷60……」

「嗯,有有有。但我那時以爲是槍的問題,或是我本領太差。」

「總之,一次遊戲迴圈處理就叫做一影格,影格數越多動作就越平滑。像是瞬息間決勝負的格鬥遊戲或是STG,大多數都是以六十FPS在跑的。如果是電腦需要長時間思考的SLG等類別,也有的遊戲是三十FPS。」

「…………呃。這個……」

天道似乎懂了,如此回答。

「哦,原來如此。」

杉鹿在白板中央寫上大大的「伺服器」幾個字,然後劃線圈起來。

「沒錯,伺服器的英文Server就是托盤之類的意思。比方說我們都是藉由網路讓遊戲機連線對戰,那也是某個地方啓動了伺服器程式,然後其他玩家以用戶端程式與伺服器連線,互相傳遞資料。」

「〇‧〇一六六六秒……差不多是〇‧〇一七秒吧。」

「啊,岸嶺同學,剛纔講的這些不懂沒關係!簡而言之,就是世界一直在進步啦!」

「呃,嗯,勉強……」

「別擔心,這眼鏡沒度數!別管那麼多細節,妳就戴吧,解說員都得戴眼鏡,這是慣例!」

「你應該看得懂這個的意思吧?」

「哎,沒差,晚點我再幫你做個總整理。」

「沒錯。如果是六十FPS的遊戲的話,一影格是〇‧〇一七秒,單純計算起來就會產生四影格的延遲。在解釋Ping的時候我也講過,實際上必須透過數據機或路由器等各種裝置處理資料,所以速度會更慢。一旦延遲達到十影格左右,在一槍致命的擬真系FPS就會攸關生死問題,對吧?」

「嗯,對啊。要是被狙擊手爆頭,一槍就沒命了。」

「對耶,就算光速是每秒三十萬公里,也還是會產生〇‧〇六七秒的Lag呢。」

因爲熒幕每秒能描繪六十次,所以遊戲也是每秒描繪六十次。而每一次描繪好像就叫做一影格。

杉鹿自暴自棄地戴起平光眼鏡,站到白板前。

「按鈕訊號的資料量其實不大!」瀨名老師說:「因爲基本上一顆按鈕用ON跟OFF就能管理了,加上十字鍵也才十六位元,也就是說只要有二個位元組就能管理十六顆按鈕了!當然如果再加上類比操作杆或角色的視線角度,問題會再複雜一點,不過因爲現代壓縮技術進步的關係,實際上的數字比這更小!而且就連用電話線上網的時代,連線速度都有二八八〇〇BPS了,更不要說現在寬頻技術發達,有些廠商甚至主打最高一〇MBPS!〇‧一秒傳送個幾位元,小意思啦!」

至於瀨名老師,他正在準備好的白板上寫上幾個大字「杉鹿圓的FPS講座」。

天道好像明白了,但又是位元又是位元組的,岸嶺還是一樣有聽沒懂。

「這……這樣的話我勉強能理解。不過,我不懂這跟打電動變強有什麼關係耶……」

岸嶺曾經讀過有潛艦登場的小說,因此很能理解瀨名老師舉的例子。在黑暗的海底看不見任何東西,所以要用聲波探測周圍的地形或敵軍潛艦。網路也是一樣,不可能目測用戶端與伺服器的距離,大概是因爲這樣,纔要發送Ping測量距離吧。

「原來如此,也就是說畫面更新率,指的就是『每秒處理幾影格』吧。」

至於瀨名老師則是從白袍口袋中拿出一個東西,「拿去用吧!」交給了杉鹿。

「聽好了!所謂的電玩遊戲都是用程式在跑,這點你們也都知道吧!拜科技進步所賜,如今的電腦能夠一瞬間完成龐大計算,電玩遊戲也就於焉誕生!而遊戲程式又分成相當多種類,像是圖像描繪、接收手把訊號、計算處理攻擊判定等等,相當複雜!這些處理統稱爲遊戲迴圈,每秒跑三十次或六十次的遊戲迴圈,以架構出流暢的遊戲世界!」

「我有聽過。」天道說:「就是用來表示網路連線狀態的單字吧?」

跟岸嶺不同,天道似乎都有聽懂,手託着下巴問道:

「看好嘍。兩個熒幕擺在一起,應該很清楚,你仔細比較一下我跟天道的畫面。」

「F……Frame?Per……Second?」

一連串很少聽到的單字組合,讓岸嶺也偏了偏頭。

「原來如此,也是呢。」

「未……未來世界?」

「好吧,那麼這裏就交給我來!」

「然後呢,接下來纔是關鍵。網路連線速度越來越快是事實,但是在網路上傳遞資料,不管怎麼樣就是會產生延遲。比方說日本與美國單程大約一萬公里,往返就有兩萬公里,對吧?就算用光速傳遞資料,也不可能一瞬間就傳到。」

「我舉個簡單的例子!」瀨名老師眼鏡一亮。「Ping這個名稱原本是取自潛艦的主動聲納!你們有沒有在電影裏看過潛艦探測周圍時拍發聲納的場面?簡而言之就是那個的網路版!你們可以解釋成拍發Ping等待回應,以偵測用戶端與伺服器之間的距離!」

(想……想不到還滿合適的……)

杉鹿把左操作杆稍微往前推了一下,讓角色前進。

首先,杉鹿畫面上的角色立刻前進。然後稍微慢了一步,天道畫面上的角色也跟着移動。

「唔,杉鹿的畫面上沒有任何問題,但我的畫面稍微慢了一點。這就是Lag嗎?」

「對,不過,這個Lag已經把影響處理到最小了。爲了做這個處理,伺服器內才需要描繪『未來世界』。其實不會很難懂,比方說──」

杉鹿再度指着遊戲畫面。

「現在遊戲裏所有角色都沒在動,也沒有人按手把按鈕,所以伺服器內的未來世界,大家應該也都是靜止不動的。可是,如果我現在讓角色前進……」

杉鹿又推了一下類比操作杆。

「這樣一來,我輸入的訊號就會送到伺服器,變成『角色在過去移動了』,於是未來世界就會重新計算、架構。然後這份未來的資料會再送回各個用戶端,反映到遊戲上。即使有幾影格無法迴避的物理性Lag,因爲伺服器程式一直在架構幾影格的未來世界,然後將結果反映給用戶端,所以至少看起來感覺不到太大延遲。開槍也是一樣。」

杉鹿的角色對天道開了一槍。

還是一樣,慢了一拍後纔出現損傷,使天道的畫面發出紅光。

「首先開槍之後,訊號會送到伺服器,反映到未來世界之中,然後伺服器會比對其他角色的位置資料,判斷是否命中。一旦判斷命中了,伺服器就會處理損傷資料,透過網路再送回用戶端,然後纔會反映在各個玩家的畫面上。」

「……好像聽懂了,又好像沒聽懂。」

事實上講到這裏,已經超出了岸嶺的理解範圍。

「嗯,我也開始有點混亂了。」

就連天道都這麼說。

「哎,會混亂也是沒辦法的!」瀨名老師說:「簡而言之呢,各位!就是網路對戰一定會有物理性的Lag!爲了解決……或者該說掩飾這個問題,伺服器內會描繪未來世界,然後把計算結果反映給用戶端!所以自己看到的畫面跟別人的畫面會有誤差!」

這樣歸納的確比較好懂。

「講完了這些,才終於能夠回到天道一開始的疑問。」

「哦,就是用點發打倒敵人的問題,對吧?」

「簡而言之,就是當妳的角色在完全停止不動時被敵人開槍打中了,就算急着想移動,手把訊號『送到伺服器』,『在未來世界做處理』,『再將結果反映到遊戲上』,其實要花蠻多時間的。所以結論就是『從停止狀態開始移動,會比自己的畫面看起來更花時間』。」

至於岸嶺還是一樣,有點丈二金剛摸不着頭腦。

「簡而言之,就是如果跟對手完全同時開槍,贏的會是──Ping比較好的一方?」

「哎,算是原因之一啦。總之,我的講課就到此結束。知道理論當然很重要,不過遊戲本領不是靠理論就能變強的。好啦,差不多該來玩遊戲了吧。」

天道若有所感地點點頭。

「啊,嗯,歸納得這麼簡短,我總算聽懂了。」

「基本上可以這麼說!」瀨名老師說:「不過,我的用戶端程式應該會基於這點做些調整!再說JGBC之類的大賽網路都很穩,這方面應該是不用擔心!」

「你還不懂嗎?總之,一旦你讓角色停下來,自己的畫面看起來可能還好,在其他玩家的畫面上卻已經站很久了。站着不動的敵人打起來最輕鬆了對吧?爲了預防這一點,重要的是儘量不要停下來,並且儘量避免讓動作變慢。理論不懂沒關係,明白這一點就夠了。」

不久之後,岸嶺將以攻擊手之名在JGBC一舉成名,不過那又是另一個故事了。

杉鹿點頭回答天道的問題。

講到這裏,杉鹿深吸一口氣調整呼吸。

「原來是這樣,所以大家纔會說FPS裏最難纏的,是殺進敵陣的攻擊手?」

「哎,就是這麼回事。Ping較差的一方就連接收伺服器資料的間隔都會比較長,所以遊戲更新也會斷斷續續的。這樣一來,可能……當然也要看程式怎麼處理,但其他玩家的角色看起來可能會像是在瞬間移動,或是其他類似的現象,總之應該會對自己很不利。」

「而且連線的Lag,會因爲一點小原因而輕易變嚴重。只要哪邊發生網路塞車,馬上就會造成嚴重Lag。Lag如果太嚴重,或者說Ping太差,有時候會發生明明是自己先開槍,卻還是被對手射殺的現象。」

「啊──真是,講了老半天,結論不過就是這麼一句話:『等到中槍纔想躲就來不及了』。」

就這樣,岸嶺等人用剩下的時間大玩特玩FPS。

「這正是杉鹿同學解釋的現象!換句話說,中彈之後急着想跑,但是在手把訊號傳送到伺服器,世界更新之前,伺服器已經先做出了中彈判定,角色就死了!」

「那真的很嚴重……也就是說,現在我們幾個當中,開伺服器的瀨名老師最佔優勢?」

「也是。那麼爲了實踐杉鹿的教導,今天照常開始正式的社團活動吧。」

「……好像聽懂了,又好像沒聽懂。」

「不過畢竟還是有物理性Lag,所以動作反映就是會比較慢。非得狙擊或是埋伏的時候沒辦法,但永遠都是隨時移動的一方比較有利。講了老半天的理論,其實結論不過如此。」

「妳這麼一講讓我想到,有時候被敵人開槍打中之後躲到隱蔽處,卻常會照樣死掉。我甚至還以爲是程式漏洞呢……」

「原來是這麼回事啊。」

READING MENU

目錄與設置

登錄後加入書架章節報錯

閱讀設置

自動保存
字號
20px
行距
標準
背景
日間

第一卷我與她的遊戲戰爭 1

  1. 01插圖
  2. 02序章 或許就在不久的將來
  3. 03EP‧0 姓名:岸嶺健吾 興趣:閱讀
  4. 04EP‧1 第二次高中生活
  5. 05EP‧2 高中部普通科男生的日常生活
  6. 06EP‧3 第一次的電視遊戲
  7. 07EP‧4 第一次的ROM卡匣
  8. 08EP‧5 推動世界的大多是錢
  9. 09EP‧6 第一次的JGBC
  10. 10後記

第二卷我與她的遊戲戰爭 2

  1. 01插圖
  2. 02EP‧1 小隊的基本是四人組 上篇
  3. 03EP‧2 小隊的基本是四人組 下篇
  4. 04EP‧3 杉鹿圓的FPS講座 基礎篇
  5. 05EP‧4 勝負與邂逅總是來得突然
  6. 06過場 上班族玩家的憂鬱
  7. 07EP‧5 魔術師再度登場
  8. 08EP‧6 現代遊戲社之後的日常光景
  9. 09後記
  10. 10附錄小說 杉鹿圓的FPS講座 理論強化篇正在閱讀

第三卷我與她的遊戲戰爭 3

  1. 01插圖
  2. 02EP‧2 青梅竹馬與新社員
  3. 03EP‧3 釣魚,電玩,聯歡會
  4. 04EP‧4 駿河坂學園電子遊戲研究社
  5. 05EP‧5 破碎的天空
  6. 06EP‧6 激戰之後
  7. 07後記

第四卷我與她的遊戲戰爭 4

  1. 01插圖
  2. 02序章
  3. 03EP‧1 挑戰SSFⅣ AE
  4. 04EP‧2 我要去見比我更強的人
  5. 05EP‧3 電玩家教
  6. 06EP‧4 小小復仇戰
  7. 07EP‧5 我要去比我更強的人等待之處
  8. 08EP‧6 Here Comes a New Challenger
  9. 09後記
  10. 10附錄小說 現代遊戲的格鬥遊戲技巧講座

第五卷我與她的遊戲戰爭 5

  1. 01插圖
  2. 02序章
  3. 03EP‧1 岸嶺健吾的憂鬱與展望
  4. 04EP‧2 電玩集訓大賽
  5. 05EP‧3 大家打高爾夫
  6. 06EP‧4 Let9;s!魔法氣泡勝負
  7. 07過場 主辦人的憂鬱
  8. 08EP‧6 對戰型STG
  9. 09EP‧7 岸嶺健吾的新挑戰
  10. 10後記

第六卷我與她的遊戲戰爭 6

  1. 01插圖
  2. 02EP‧1 電玩集訓大賽第二天
  3. 03EP‧2 幽靈小隊
  4. 04EP‧3 寒冷期的世界大戰
  5. 05EP‧4 交流會
  6. 06EP‧5 刺客們的饗宴
  7. 07EP‧6 祭典之後
  8. 08後記

第七卷我與她的遊戲戰爭 7

  1. 01插圖
  2. 02EP‧1 奮鬥吧!遊戲測試員
  3. 03EP‧2 貴族N校的校規問題
  4. 04EP‧3 現代遊戲社的考驗
  5. 05EP‧4 爾虞我詐的心機遊戲
  6. 06EP‧5 戰地前篇
  7. 07EP‧6 戰地後篇
  8. 08EP‧7 逆襲的岸嶺
  9. 09後記

可使用鍵盤 ← / → 翻章

章節內容有誤?提交反饋