首先澄清引擎這個概念。
@kubisoft提到引擎只會帶來更出色的畫面、更細膩的動畫,是不全面的。這麽說的話只是說到了「渲染引擎」而已。一個遊戲,還有物理引擎、AI引擎等很重要的幾個引擎。而所謂的引擎,很大的程度上,是一個」專註於某個功能的模組「。軟件中有很多的模組,為什麽只有渲染、物理等才被成為引擎,跟汽車的引擎一樣,因為這個模組可能比較核心,在所有的元件中功能更有決定性,所以才被叫做引擎。有人可能會說,現在的遊戲,決定性的是遊戲的內容、邏輯,那為什麽沒有邏輯引擎這個說法。這個的關鍵之處在於,邏輯不能成為一個很通用的模組。所以,才沒有邏輯引擎這個說法。
另外,嚴格的說來,引擎和解決方案是兩個概念,對unity3d來說,即使官方也用engine的字眼,但是,如果硬要用引擎(engine)和解決方案(solution)來區分,那麽其實unity3d更是一個solution,而不是engine。因為它本身包含了很多的engine(渲染、物理、AI、audio等),在這些engine的周圍,又整合了一個團度協作需要的各種工具(動畫、材質、物理、場景編輯器,以及打包釋出工具等等)。相對而言,ogre更偏重是一個純粹的engine:它只負責渲染。另外一個很好的案例是現在的cocos2d-x,原先它只是一個engine,後來它開始出編輯器了,那麽慢慢就演變成一個完整的解決方案(現在顯然還沒有到這個級別)。
然後回到題目,回答是:直接寫。甚至現在還有很多的公司還是直接寫。基於OpenGL或者Direct3D,自己寫場景的解析器,自己寫渲染器。為了跟美術和策劃合作,至少還得寫一個場景編輯器,後來發現老是手工改材質配置非常繁瑣或者是容易出錯,就需要再寫個材質編輯器。後來又發現缺個啥,再寫個什麽。如果完完整整都寫下來,那麽寫出來的這些個工具,就成了一套完整的3d引擎了。現實中,有的遊戲很小,根本不需要那麽多的工具。有些公司很小,沒有那麽多的協作,或者各個力量都很牛,開啟個文本編輯點東西不是什麽問題,那麽也就沒有那麽多的工具。因為最終目的是出遊戲內容,而不是周邊工具。
而遊戲引擎,只是有人發現了這是個市場,所以專門針對內容開發團隊做了相應的產品:保證他們可以協同,保證他們可以用不是很技術的方式產生高質素的內容,保證他們,如廣告中所說」讓開發團隊只需要專註於內容的開發「。但是因為3d遊戲引擎最好的賣點就是渲染,所以會比較註重渲染這一塊的技術。