2025秋招友塔游戲游戲開發(fā)工程師
2025秋招友塔游戲游戲開發(fā)工程師
2025秋招-上海友塔網(wǎng)絡科技有限公司-游戲開發(fā)工程師。
2024-09-13 投遞簡歷。
2024-09-19 技術筆試。
考試時間:120分鐘,考試內容:4道編程題。
第1題,15分,難度簡單。
我們可以使用正多邊形的周長除以對角頂點長度來近似求π,假設中心點到正多邊形頂點的距離為r,正多邊形的周長為L,則近似的π=L/(2*r)。請根據(jù)輸入的正多邊形邊數(shù)(2的正整數(shù)次冪,如8,16),輸出對應正多邊形計算后的π值。注意:不可使用sin,cos等三角函數(shù)。解法:使用數(shù)學幾何方法。
第2題,25分,難度中等。
游戲中玩家可以抓捕寵物,寵物有三個屬性,攻擊、防御和生命,且每個寵物有一個評分(三個屬性和評分均為整數(shù),且各項資質均不會低于1)。若已知評分=攻擊*攻擊評分系數(shù)+防御*防御評分系數(shù)+生命*生命評分系數(shù)。我們無法獲知這幾個系數(shù)的值,但我們知道同一種寵物的各系數(shù)都是相同的,且我們有2只此種寵物的攻防生命屬性和評分信息,請根據(jù)這2只寵物的信息計算并輸出此種類特定攻防生命屬性的寵物的評分應該是多少,若無法確定,請輸出0。(輸入輸出數(shù)據(jù)均為整數(shù))。解法:使用數(shù)學線性代數(shù)方法。
第3題,25分,難度中等。
假設N*N的地圖上有一片連續(xù)的特殊地形(比如水面),在A[N][N]的二維數(shù)組中,每個坐標(i, j)表示地圖上的一個小格子,整張大地圖由大量的小格子拼成,A[i][j]值為-1表示坐標(i, j)對應的小格是水面的組成部分(可以是與陸地的交接處,即格子的一部分為水面),現(xiàn)在要求特殊地形每個格子以如下圖的編號來表示其拼圖素材:地形中間沒有與其他地形有邊界的純水部分用編號0表示,上、右、下、左與陸地的邊界分別以編號1、2、3、4表示,四種凸角(水面占據(jù)的角度為90度的轉角)分別以編號5、6、7、8表示,四種凹角(水面占據(jù)的角度為270度的轉角)分別以9、10、11、12表示,輸入數(shù)組A,將A中值為-1的部分全部替換為實際的圖形編號(即0-12)并輸出(A中的陸地值假設為-2)。解法:遍歷地圖,根據(jù)周圍地形的情況確定編號。
第4題,35分,難度困難。
某游戲中每個玩家有一個戰(zhàn)斗力(玩家不可見),且有多個服務器,服務器間的玩家只能通過部分跨服活動才能與其他服務器的玩家戰(zhàn)斗。由于隨機分組等原因,并不是所有服務器的玩家都能相互見過。已知玩家間戰(zhàn)斗結果僅與戰(zhàn)斗力相關,且玩家能從戰(zhàn)斗結果中得知雙方戰(zhàn)力的準確差值。玩家通過交流匯總了部分玩家間的戰(zhàn)斗結果,需要根據(jù)已有的戰(zhàn)斗結果來判斷一些對玩家戰(zhàn)力差值的猜測是否正確,輸出正確猜測的數(shù)量即可。若無法判斷則當做不正確。由于玩家間交流難免出現(xiàn)錯誤,如果出現(xiàn)了和已有條件沖突的記錄,則以更早出現(xiàn)的為準。設記錄和預測涉及的玩家總數(shù)為 N。N小于等于10000。解法:利用戰(zhàn)斗結果構建圖,利用并查集合并圖,使用DFS計算路徑邊權和。
2024-09-26 面試邀約,郵件面試邀請2024-09-29 14:00,填寫應聘登記表。
2024-09-29 技術一面,友塔游戲,游戲開發(fā)工程師,面試時長60分鐘。
1.自我介紹。
2.你是怎么想到投軟件開發(fā)崗位的?
3.介紹崗位,游戲開發(fā)三個方向:客戶端(UE,Unity)、服務端(Linux,SQL)、渲染(Shader)。
4.你玩過哪些類型的游戲?
5.已知三個點組成一個三角形,現(xiàn)在有一個新的點,如何判斷新的點是否在三角形里面?
設已知ABC,新點為P,向量AP分別叉乘AB,AC,如果叉乘后的向量方向相反,說明點P在角A內部,同樣的可以驗證P在角B和角C內部。
6.向量叉乘的含義是什么?
a和b作叉乘得到c,c的方向垂直于a和b所在的平面,c的模等于a和b構成平行四邊形的面積。
7.有n個點依次構成一個可能是凹的多邊形,如何判斷任意點是否在多邊形內部?
射線法:從測試點向任意方向發(fā)射一條射線,并計算射線與多邊形邊的交點數(shù)量。如果交點數(shù)量為奇數(shù),則測試點在多邊形內部;如果為偶數(shù),則在多邊形外部。
8.你是怎么想到這個方法的?
無窮遠處肯定在圖形外,交點就代表要么進入圖形,要么走出圖形,所以奇數(shù)次代表在圖形內,偶數(shù)次代表在圖形外。
9.再重復一下你玩過的游戲。
10.在回合制卡牌游戲中,設計一個對局回放功能系統(tǒng)。
記錄每回合的初始狀態(tài),記錄玩家操作,記錄隨機結果,回放時再渲染。
11.有沒有可以不記錄隨機結果的方法。
可以直接記錄隨機種子,計算出的隨機結果是一致的。
12.如何利用數(shù)據(jù)庫存儲會過期的游戲道具?
每個道具對應一個主鍵,并維護一個過期時間,每次更新數(shù)據(jù)時,檢查是否過期,如果過期則刪除這條數(shù)據(jù)。
13.設定為100人對局,如果已經(jīng)匹配了99人,此時有10人進入匹配,如何確保對局人數(shù)不超過100人?
維護一個匹配池,記錄匹配中玩家的數(shù)量,如果數(shù)量超過100,則根據(jù)優(yōu)先級選擇玩家進入對局。
14.你有參加過acm、oi訓練嗎?
開始手撕算法。
15.有一列n個數(shù)字a[1]到a[n],衰減常數(shù)c取值為0~1,可以在數(shù)列中選取任意數(shù)字,但順序不能變,組成新的數(shù)列b[1]到b[k],求b[1]+b[2]*c+b[3]*c^2+...+b[k]*c^(k-1)的最大值。
首先a[n]必選,然后考慮a[n-1]+a[n]*c和a[n]哪個大,決定是否選取a[n-1],同樣的方式考慮a[n-2]+(...)*c和(...)哪個大,決定是否選取a[n-2],以此類推。
開始反問。
16.您剛才說的客戶端、服務器和渲染三個方向,公司會如何安排新人定崗?
面試官:客戶端崗位屬于游戲開發(fā)的核心崗位,可以和服務端和渲染對接。公司會根據(jù)新人的學習和興趣情況決定。
2024-10-10 郵件邀約,技術終面,面試時間:2024-10-12 15:00-16:00,遠程面試。
2024-10-12 技術終面,友塔游戲,游戲開發(fā)工程師,面試時長:60分鐘。
1.為什么選擇游戲開發(fā)崗位?2.喜歡玩什么類型的游戲?最近在玩哪些游戲?喜歡二次元嗎?
開始復盤筆試編程題目。
3.三個未知數(shù),兩個方程,可能有解嗎?可以嘗試將兩個未知數(shù)合并成一個未知數(shù)。
4.記錄玩家戰(zhàn)力差值,并預測戰(zhàn)斗結果。使用并查集構建玩家戰(zhàn)力圖。
5.學過計算機相關課程嗎?常見的數(shù)據(jù)結構有哪些?數(shù)組、鏈表、棧、隊列、哈希表、樹、圖、集合等。
6.浮點數(shù)編碼方式是什么?最大能表示的數(shù)字是多少?指數(shù)(階碼)+尾數(shù),最大2的127次方。
7.計算機中為什么除法比乘法慢?商是試出來的。
8.從按下開機鍵到系統(tǒng)啟動有哪些步驟?電源供應,BIOS/UEFI初始化(硬件自檢),加載引導程序(Bootloader MBR/GPT),加載操作系統(tǒng)內核,啟動系統(tǒng)服務,進入用戶界面。
9.操作系統(tǒng)是不是一個進程?操作系統(tǒng)不是一個進程,它負責管理和調度進程。
10.進程和線程有什么區(qū)別?進程是操作系統(tǒng)分配資源的基本單位,線程是CPU調度的基本單位。
11.Linux里面當內存不足時,系統(tǒng)會觸發(fā)什么操作?默認殺死內存占用最大的進程。
12.有什么情況能觸發(fā)內存不足?進程占用,進程過多,內存泄露,惡意病毒,內存碎片化。
13.系統(tǒng)內存剩余2G,申請200M內存報出內存不足,為什么?內存碎片化。
14.Linux系統(tǒng)管理內存的核心思想是什么?虛擬內存(地址映射,頁面置換),內存管理(頁表,回收,壓縮)等。
15.如何利用C++中的socket庫實現(xiàn)客戶端和服務端的連接?有哪些過程?函數(shù)需要哪些參數(shù)?
創(chuàng)建套接字、綁定地址(僅服務端)、監(jiān)聽連接請求(僅服務端)、接受連接(僅服務端)、連接到服務器(僅客戶端)、發(fā)送和接收數(shù)據(jù),以及關閉連接。套接字:連接協(xié)議、本機/遠程的IP/進程端口號。函數(shù)參數(shù):地址族、套接字類型、網(wǎng)絡字節(jié)序、連接請求隊列的最大長度、數(shù)據(jù)通信緩沖區(qū)等。
16.如何與數(shù)據(jù)庫建立連接?數(shù)據(jù)庫URL、用戶名、密碼等。
17.udp的使用場景。視頻直播、語音通話、在線游戲,實時性要求較高。
18.udp比tcp快多少?可以量化嗎?為什么會快?udp不需要建立連接,tcp需要三次握手建立連接。udp無確認和重傳機制,tcp有序列號,確認應答和重傳機制。
19.tcp和udp的傳輸次數(shù)上有什么區(qū)別?tcp數(shù)據(jù)包較小,傳輸次數(shù)多,udp數(shù)據(jù)包較大,傳輸次數(shù)少。
開始手撕算法。
20.有一個4*4*4的立方區(qū)域,共有64個位置可以放置小立方體,小立方體組成三維結構,已知三維結構的三視圖,求滿足三視圖的三維結構最少需要多少個小立方體。例:如果三視圖為全滿,每個都是16個,則需要16個小立方體。如果三視圖為16、16、15,則需要17個小立方體。解法:遍歷空間每個位置,若在三視圖中均存在,且對應投影線上沒有放置小立方體,則放置小立方體。
開始反問。1.游戲開發(fā)團隊的規(guī)模如何?一個卡牌游戲有30-40人開發(fā),一個開放世界游戲有更多開發(fā)人員。
2025秋招-上海友塔網(wǎng)絡科技有限公司-游戲開發(fā)工程師。
2024-09-13 投遞簡歷。
2024-09-19 技術筆試。
考試時間:120分鐘,考試內容:4道編程題。
第1題,15分,難度簡單。
我們可以使用正多邊形的周長除以對角頂點長度來近似求π,假設中心點到正多邊形頂點的距離為r,正多邊形的周長為L,則近似的π=L/(2*r)。請根據(jù)輸入的正多邊形邊數(shù)(2的正整數(shù)次冪,如8,16),輸出對應正多邊形計算后的π值。注意:不可使用sin,cos等三角函數(shù)。解法:使用數(shù)學幾何方法。
第2題,25分,難度中等。
游戲中玩家可以抓捕寵物,寵物有三個屬性,攻擊、防御和生命,且每個寵物有一個評分(三個屬性和評分均為整數(shù),且各項資質均不會低于1)。若已知評分=攻擊*攻擊評分系數(shù)+防御*防御評分系數(shù)+生命*生命評分系數(shù)。我們無法獲知這幾個系數(shù)的值,但我們知道同一種寵物的各系數(shù)都是相同的,且我們有2只此種寵物的攻防生命屬性和評分信息,請根據(jù)這2只寵物的信息計算并輸出此種類特定攻防生命屬性的寵物的評分應該是多少,若無法確定,請輸出0。(輸入輸出數(shù)據(jù)均為整數(shù))。解法:使用數(shù)學線性代數(shù)方法。
第3題,25分,難度中等。
假設N*N的地圖上有一片連續(xù)的特殊地形(比如水面),在A[N][N]的二維數(shù)組中,每個坐標(i, j)表示地圖上的一個小格子,整張大地圖由大量的小格子拼成,A[i][j]值為-1表示坐標(i, j)對應的小格是水面的組成部分(可以是與陸地的交接處,即格子的一部分為水面),現(xiàn)在要求特殊地形每個格子以如下圖的編號來表示其拼圖素材:地形中間沒有與其他地形有邊界的純水部分用編號0表示,上、右、下、左與陸地的邊界分別以編號1、2、3、4表示,四種凸角(水面占據(jù)的角度為90度的轉角)分別以編號5、6、7、8表示,四種凹角(水面占據(jù)的角度為270度的轉角)分別以9、10、11、12表示,輸入數(shù)組A,將A中值為-1的部分全部替換為實際的圖形編號(即0-12)并輸出(A中的陸地值假設為-2)。解法:遍歷地圖,根據(jù)周圍地形的情況確定編號。
第4題,35分,難度困難。
某游戲中每個玩家有一個戰(zhàn)斗力(玩家不可見),且有多個服務器,服務器間的玩家只能通過部分跨服活動才能與其他服務器的玩家戰(zhàn)斗。由于隨機分組等原因,并不是所有服務器的玩家都能相互見過。已知玩家間戰(zhàn)斗結果僅與戰(zhàn)斗力相關,且玩家能從戰(zhàn)斗結果中得知雙方戰(zhàn)力的準確差值。玩家通過交流匯總了部分玩家間的戰(zhàn)斗結果,需要根據(jù)已有的戰(zhàn)斗結果來判斷一些對玩家戰(zhàn)力差值的猜測是否正確,輸出正確猜測的數(shù)量即可。若無法判斷則當做不正確。由于玩家間交流難免出現(xiàn)錯誤,如果出現(xiàn)了和已有條件沖突的記錄,則以更早出現(xiàn)的為準。設記錄和預測涉及的玩家總數(shù)為 N。N小于等于10000。解法:利用戰(zhàn)斗結果構建圖,利用并查集合并圖,使用DFS計算路徑邊權和。
2024-09-26 面試邀約,郵件面試邀請2024-09-29 14:00,填寫應聘登記表。
2024-09-29 技術一面,友塔游戲,游戲開發(fā)工程師,面試時長60分鐘。
1.自我介紹。
2.你是怎么想到投軟件開發(fā)崗位的?
3.介紹崗位,游戲開發(fā)三個方向:客戶端(UE,Unity)、服務端(Linux,SQL)、渲染(Shader)。
4.你玩過哪些類型的游戲?
5.已知三個點組成一個三角形,現(xiàn)在有一個新的點,如何判斷新的點是否在三角形里面?
設已知ABC,新點為P,向量AP分別叉乘AB,AC,如果叉乘后的向量方向相反,說明點P在角A內部,同樣的可以驗證P在角B和角C內部。
6.向量叉乘的含義是什么?
a和b作叉乘得到c,c的方向垂直于a和b所在的平面,c的模等于a和b構成平行四邊形的面積。
7.有n個點依次構成一個可能是凹的多邊形,如何判斷任意點是否在多邊形內部?
射線法:從測試點向任意方向發(fā)射一條射線,并計算射線與多邊形邊的交點數(shù)量。如果交點數(shù)量為奇數(shù),則測試點在多邊形內部;如果為偶數(shù),則在多邊形外部。
8.你是怎么想到這個方法的?
無窮遠處肯定在圖形外,交點就代表要么進入圖形,要么走出圖形,所以奇數(shù)次代表在圖形內,偶數(shù)次代表在圖形外。
9.再重復一下你玩過的游戲。
10.在回合制卡牌游戲中,設計一個對局回放功能系統(tǒng)。
記錄每回合的初始狀態(tài),記錄玩家操作,記錄隨機結果,回放時再渲染。
11.有沒有可以不記錄隨機結果的方法。
可以直接記錄隨機種子,計算出的隨機結果是一致的。
12.如何利用數(shù)據(jù)庫存儲會過期的游戲道具?
每個道具對應一個主鍵,并維護一個過期時間,每次更新數(shù)據(jù)時,檢查是否過期,如果過期則刪除這條數(shù)據(jù)。
13.設定為100人對局,如果已經(jīng)匹配了99人,此時有10人進入匹配,如何確保對局人數(shù)不超過100人?
維護一個匹配池,記錄匹配中玩家的數(shù)量,如果數(shù)量超過100,則根據(jù)優(yōu)先級選擇玩家進入對局。
14.你有參加過acm、oi訓練嗎?
開始手撕算法。
15.有一列n個數(shù)字a[1]到a[n],衰減常數(shù)c取值為0~1,可以在數(shù)列中選取任意數(shù)字,但順序不能變,組成新的數(shù)列b[1]到b[k],求b[1]+b[2]*c+b[3]*c^2+...+b[k]*c^(k-1)的最大值。
首先a[n]必選,然后考慮a[n-1]+a[n]*c和a[n]哪個大,決定是否選取a[n-1],同樣的方式考慮a[n-2]+(...)*c和(...)哪個大,決定是否選取a[n-2],以此類推。
開始反問。
16.您剛才說的客戶端、服務器和渲染三個方向,公司會如何安排新人定崗?
面試官:客戶端崗位屬于游戲開發(fā)的核心崗位,可以和服務端和渲染對接。公司會根據(jù)新人的學習和興趣情況決定。
2024-10-10 郵件邀約,技術終面,面試時間:2024-10-12 15:00-16:00,遠程面試。
2024-10-12 技術終面,友塔游戲,游戲開發(fā)工程師,面試時長:60分鐘。
1.為什么選擇游戲開發(fā)崗位?2.喜歡玩什么類型的游戲?最近在玩哪些游戲?喜歡二次元嗎?
開始復盤筆試編程題目。
3.三個未知數(shù),兩個方程,可能有解嗎?可以嘗試將兩個未知數(shù)合并成一個未知數(shù)。
4.記錄玩家戰(zhàn)力差值,并預測戰(zhàn)斗結果。使用并查集構建玩家戰(zhàn)力圖。
5.學過計算機相關課程嗎?常見的數(shù)據(jù)結構有哪些?數(shù)組、鏈表、棧、隊列、哈希表、樹、圖、集合等。
6.浮點數(shù)編碼方式是什么?最大能表示的數(shù)字是多少?指數(shù)(階碼)+尾數(shù),最大2的127次方。
7.計算機中為什么除法比乘法慢?商是試出來的。
8.從按下開機鍵到系統(tǒng)啟動有哪些步驟?電源供應,BIOS/UEFI初始化(硬件自檢),加載引導程序(Bootloader MBR/GPT),加載操作系統(tǒng)內核,啟動系統(tǒng)服務,進入用戶界面。
9.操作系統(tǒng)是不是一個進程?操作系統(tǒng)不是一個進程,它負責管理和調度進程。
10.進程和線程有什么區(qū)別?進程是操作系統(tǒng)分配資源的基本單位,線程是CPU調度的基本單位。
11.Linux里面當內存不足時,系統(tǒng)會觸發(fā)什么操作?默認殺死內存占用最大的進程。
12.有什么情況能觸發(fā)內存不足?進程占用,進程過多,內存泄露,惡意病毒,內存碎片化。
13.系統(tǒng)內存剩余2G,申請200M內存報出內存不足,為什么?內存碎片化。
14.Linux系統(tǒng)管理內存的核心思想是什么?虛擬內存(地址映射,頁面置換),內存管理(頁表,回收,壓縮)等。
15.如何利用C++中的socket庫實現(xiàn)客戶端和服務端的連接?有哪些過程?函數(shù)需要哪些參數(shù)?
創(chuàng)建套接字、綁定地址(僅服務端)、監(jiān)聽連接請求(僅服務端)、接受連接(僅服務端)、連接到服務器(僅客戶端)、發(fā)送和接收數(shù)據(jù),以及關閉連接。套接字:連接協(xié)議、本機/遠程的IP/進程端口號。函數(shù)參數(shù):地址族、套接字類型、網(wǎng)絡字節(jié)序、連接請求隊列的最大長度、數(shù)據(jù)通信緩沖區(qū)等。
16.如何與數(shù)據(jù)庫建立連接?數(shù)據(jù)庫URL、用戶名、密碼等。
17.udp的使用場景。視頻直播、語音通話、在線游戲,實時性要求較高。
18.udp比tcp快多少?可以量化嗎?為什么會快?udp不需要建立連接,tcp需要三次握手建立連接。udp無確認和重傳機制,tcp有序列號,確認應答和重傳機制。
19.tcp和udp的傳輸次數(shù)上有什么區(qū)別?tcp數(shù)據(jù)包較小,傳輸次數(shù)多,udp數(shù)據(jù)包較大,傳輸次數(shù)少。
開始手撕算法。
20.有一個4*4*4的立方區(qū)域,共有64個位置可以放置小立方體,小立方體組成三維結構,已知三維結構的三視圖,求滿足三視圖的三維結構最少需要多少個小立方體。例:如果三視圖為全滿,每個都是16個,則需要16個小立方體。如果三視圖為16、16、15,則需要17個小立方體。解法:遍歷空間每個位置,若在三視圖中均存在,且對應投影線上沒有放置小立方體,則放置小立方體。
開始反問。1.游戲開發(fā)團隊的規(guī)模如何?一個卡牌游戲有30-40人開發(fā),一個開放世界游戲有更多開發(fā)人員。
全部評論
沃日,甜蜜蜜游戲公司都特么要求這么高嗎???
相關推薦
點贊 評論 收藏
分享
點贊 評論 收藏
分享
點贊 評論 收藏
分享
點贊 評論 收藏
分享