製作遊戲的兩三事【50】不是見鬼,是工程師一時短路了

Posted by

一則BBC的新聞,報導台灣的科技業使用乖乖來祈求好運。其實,遊戲業也是一樣,常會遇到許多神奇的事。像是程式運作的不順利,但是負責寫這程式的工程師一出現,就突然正常了。也因為這樣,大多數的工程師都相信一些玄學,所謂的『伺服器上放乖乖』也很常見。不過有時候,出問題其實只是工程師的思路一時短路了,所以寫出了有問題的程式。

乖乖 kuai kuai

不過呢,有的時候程式運作的不正常,並不是見鬼,也不是乖乖被不知情的人給吃了。有的時候,只不過是負責的工程師的腦子突然的當機了,所以在邏輯上出了些狀況,所以寫出了有問題的程式。這些當初出問題的程式,當初可能找了很久都找不出問題,等到真正找出問題時會忍不住苦笑呢。

這裡銀狐就提一個曾經發生的案例:

那是線上遊戲還在月費計時制的時代。這種營運模式的線上遊戲,為了要持續的把玩家留在線上,會製作各式各樣的活動,讓玩家在遊戲中有事做,自然就會留在線上。除了各種現實世界的節日外,遊戲也會找各種的理由辦活動,其目的都是為了維持玩家在線。

那一次的節慶活動,我們在原本遊戲的打怪掉寶上額外加上了機率性的掉落物品。玩家收集這個活動的掉落物品,然後將它交回給活動NPC,就可以累積分數。然後這個分數可以用來兌換各種活動的獎勵。獎勵中有一般的遊戲中的消耗品,當然也有特別為了這個活動製作的外觀獎品。

這一類的活動我們都會事先計算玩家每個小時可能獲得的平均分數,然後依據這個分數來訂定兌換獎品所需要的分數。由於這類的活動我們都會安排一到兩週的活動時間,所以通常玩家想要兌換其中最稀有的活動獎品,通常都需要努力好一段的時間。不過因為活動最佳的獎品是稀有的外觀,所以玩家對這類活動的反應都很不錯,活動期間在線人數也會提升。

然後,活動開始之後,有一天突然客服單位收到玩家的回報,有玩家反應他在打怪後一直都沒有獲得活動的掉落物品。像是這一類的回報,客服單位都會幫我們測試看看是否真的有這個狀況。不過客服單位測了一下,發現活動的掉落物品的確有掉落,因此當時覺得可能是玩家的運氣不好,所以就做了個記錄然後回報給開發單位。

開發單位在看到這個回報後,也看到了客服單位複測的註明,不過為了保險起見負責這個活動的遊戲企劃還是進遊戲裡確認了一下。企劃打了幾場戰鬥,有取得活動的掉落物品,表示活動的機制有正確的運作,所以也認為可能是玩家的運氣不好,因此就沒有把這件事放在心上,繼續進行他手中其他的工作。

隔天,又接到了這位玩家的回報,玩家還是一樣表示他都打不到活動的掉落物品,懷疑遊戲內的活動是不是有問題。客服單位再一次的確認,也和負責的遊戲企劃再談過這件事,兩個人都複測過活動,也都有順利的獲得活動的掉落物品,所以認為活動應該沒有問題。不過,這位玩家一直反應這問題,讓我們不禁要懷疑是不是遇到了見鬼的狀況。

第三天,這位玩家又來回報了,不過這次他有多回報了一些狀況。玩家表示他因為工作的關係都很晚回家,所以他都是晚上十二點以後才玩遊戲。昨天晚上他發現,他剛開始玩的那段時間,的確都沒有獲得任何活動的掉落物品。但是,當時間來到清晨一點之後,他開始有打到活動的掉落物品了。

有這麼明確的回報,當然要再仔細檢查看看了。遊戲公司的上班時間正常來說不會到晚上十二點或清晨一點,所以我們的確沒有在這個時間內測試過。不過因為這個活動是24小時在運作的,所以我們認為只要其他的時間有在正確的運作,那麼就不應該有某個特定時間會出問題才對。

然後,團隊的程式去檢查了活動的相關程式碼,想看看到底是為什麼會出現這樣的狀況。這一查,才發現原本負責的程式在寫活動時間的時候大概是頭昏了,居然把活動的時間寫成從1點到24點,換句話說,從午夜12點到清晨1點這段時間的確不是活動的時間,當然玩家在這段時間打不到活動的掉落物品。

當然,發現問題在那裡之後,自然是快快的把它修正了,然後伺服器也立即更新,這樣今晚午夜12點到清晨1點之後就不會再有玩家打不到活動的掉落物品了。至於當初為什麼會寫成這樣呢?負責的程式說他也不知道為什麼當初會寫成這樣,也許那時他覺得每天的時間是從一點到二十四點吧(笑)


One comment

您可以在這裡留下你對這篇文章的意見: