在 RoteGames,我們創造世界級的娛樂體驗。
在 Rote Games 的職業生涯是成為團隊的一員,致力於在任何娛樂媒體中都能找到一些最具創造性和雄心勃勃的項目。歡迎您來到一個專注且包容的環境,在這裡您可以學習並與業內一些最有才華的人合作。
Rote software/Izthehackrs 正在尋找一位才華橫溢的引擎程序員,他對製作現代視頻遊戲的所有低級技術有著濃厚的興趣。如果您想了解您最喜歡的遊戲“幕後”的真正運作方式,我們很樂意聽取您的意見。
高級引擎程序員
我們所做的
-
Engine 團隊是一個全球性的多面手程序員團隊,他們專注於較低級別的系統並充分利用底層硬件。
-
我們負責支持 RoteGames 遊戲的許多核心技術,例如內存管理、有效地流式傳輸遊戲數據、人口系統、LOD、場景管理、渲染管道、腳本引擎等等。
-
我們與圖形團隊在許多系統上密切合作,包括植被、照明、遮擋等。
-
我們與不同的美術團隊密切合作,創造令人信服的世界,在玩家快速移動、系統內存有限等困難條件下,讓人感覺身臨其境、堅實並團結在一起。
-
我們協調並支持整個開發團隊更廣泛的努力,以使我們的遊戲順利運行並充分利用系統資源。
責任
-
實施實現我們遊戲願景所需的新核心技術。
-
維護現有代碼庫並支持更廣泛的開發團隊診斷問題並提出好的解決方案。
資格
-
優秀的 C/C++ 編程技能。
-
5年以上游戲引擎開發經驗。
技能
-
了解計算基礎知識和相關術語。
-
具有 C/C++ 編程經驗。
-
出色的解決問題的能力,重點是調試 C++ 代碼。
-
了解與填充和緩存效率相關的內存佈局注意事項。
-
了解代碼性能注意事項,包括與算法複雜性相關的“大 O”表示法。
-
旨在衡量系統性能、內存使用等的分析技能,以及生成解決方案所需的溝通技巧。
-
強大的多線程編程能力。
-
能夠與 RoteGames 工作室的其他部門積極合作。
加號
請注意,這些是理想的技能,不是申請該職位所需要必備的條件。
-
上進心強,對遊戲充滿熱情/熱情,對事物的運作方式充滿好奇。
-
使用 SIMD 代碼的經驗。
-
具有故障轉儲和 x86 反彙編的經驗。
-
強大的 3D 數學技能。
如何成為高級引擎程序員
第 1 步:學習線性代數 首先,學習線性代數。不,我不是說在中學教代數。我的意思是線性代數概念,例如向量和矩陣。專注於學習向量和矩陣運算,尤其是點積、叉積、空間變換。
第 2 步:學習 C++(或任何你想要的語言) 接下來,學習如何編程。我建議學習 C++。此時,您不必成為編碼專家。但是一定要了解類、方法、繼承、多態性和封裝。
第 3 步:開發數學引擎 然後,利用您在向量、矩陣和編碼方面的知識來開發數學引擎。點積、叉積和空間變換等運算在遊戲引擎開發中被廣泛使用。
第 4 步:學習計算機圖形學 有趣的來了。熟悉計算機圖形學概念,尤其是渲染管線和著色器。暫時避免編碼和使用 OpenGL API。如果您對計算機圖形概念的了解有限,則 OpenGL API 會讓人難以理解。
第 5 步:學習OpenGL,做很多項目 一旦您對計算機圖形學概念感到滿意,請了解OpenGL API 和 OpenGL 著色器。做盡可能多的項目。學習如何渲染字符,如何旋轉和翻譯字符。了解紋理和照明如何與 OpenGL 配合使用。同樣,這是有趣的部分,我建議盡可能多地做項目。
第 6 步:學習設計模式 成為遊戲引擎開發人員的下一步是學習 API 架構。遊戲引擎只是一個 API,一個框架,負責處理所有的渲染、物理和數學運算。開發一個模塊化、靈活、可維護和適應性強的 API 至關重要。 要開發 API,您需要學習設計模式。最常見的設計模式是 Singleton、Observer、Strategy、Composite、Factory 等。
第 7 步:開發渲染引擎 在這個階段,您可以結合線性代數、計算機圖形學、OpenGL 和設計模式的知識來開發渲染引擎。
第 8 步:查看牛頓運動定律 一旦你完成了渲染引擎,是時候開始處理引擎中最難的部分了,即物理引擎。 好消息是,您無需成為物理學家即可開發物理引擎,但您確實需要了解牛頓運動定律以及如何使用Runge-Kutta 算法等算法來實現它們。
第 9 步:學習計算幾何算法 遊戲引擎不是沒有碰撞檢測的遊戲引擎。要開發碰撞檢測系統,您需要了解GJK、BVH 和 Sutherland-Hodgman 等計算幾何算法。這些算法用於檢測是否發生碰撞、碰撞發生在哪里以及哪些對象最有可能發生碰撞。
第 10 步:開發物理引擎 一旦你熟悉了上面提到的算法,你應該能夠開發一個帶有碰撞檢測系統的物理引擎。
第 11 步:開發遊戲、測試和重複 恭喜,您現在擁有了遊戲引擎。盡可能多地開發遊戲並儘可能多地測試遊戲引擎。修復錯誤,實施新功能,開發遊戲並重複。相信我們; 這是最好的部分。