遊戲引擎是什麼?怎樣開始做一個遊戲,需要用到哪些技術?

我想利用寒假製作一個遊戲,(之前上課用c#什麼的做過連連看,但是是winform),對於製作一個遊戲完全沒有想法?請指教。


我剛畢業出來的時候也是做遊戲的(ios平台),使用cocos2d框架。

其實那個東東(cocos2d)某程度上也可以說是引擎了,提供方便的圖像繪製,音效,輸入輸出,物理模擬等等。

其實我覺得要開始做一個遊戲,首先要明確遊戲是「玩什麼」,而不是「用什麼做」。正如有人能用路邊石頭畫出蒙羅麗莎,有人用金銀做的筆直線也畫不出來。

我的經驗是這樣:先要有一個策劃案,去確定你遊戲的目的,比如馬里奧去魔城救公主,那麼現在就有兩個人物,一個場景和一個任務了!(視覺,精神目標)

然後,怎麼才能達成救公主的任務呢?只要馬里奧走到公主面前就可以了。(交互操作)

沒有障礙的話怎麼能叫「救」公主!加個高台,挖個斷層,再來個敵人!(挑戰性,獲取成功感)

敵人不會動?太可怕了。讓它來回巡邏。(人工智慧)

如果多個敵人巡邏怎麼辦?馬里奧其實是官二代,說打就打!(邏輯)

好了,上面是隨便的一個策劃案,做出來的話大概就是簡化版的馬里奧第一關,操作角色向前走,越過障礙,踩扁敵人,最後到了公主面前。

c#也可以完成吧,就是繪圖,鍵盤輸入,判斷碰撞。

至於2d3d,管他那麼多,遊戲的影都沒看見就自己煩死了,多不值得,不如把注意力放到核心上面。


某小妖口頭禪,在文中如果出現TMD、NND、2B、狗屎……之類,請自動屏蔽,僅為口頭禪,與人身攻擊神馬的無關。

遊戲引擎是指一些已編寫好的可編輯電腦遊戲系統或者一些互動式實時圖像應用程序的核心組件。這些系統為遊戲設計者提供各種編寫遊戲所需的各種工具,其目的在於讓遊戲設計者能容易和快速地做出遊戲程式而不用由零開始。大部分都支持多種操作平台,如Linux、Mac OS X、微軟Windows。遊戲引擎包含以下系統:渲染引擎(即「渲染器」,含二維圖像引擎和三維圖像引擎)、物理引擎、碰撞檢測系統、音效、腳本引擎、電腦動畫、人工智慧、網路引擎以及場景管理。

=========分割線================

以上答案來自百度

對於遊戲開發者來說,引擎可以理解為一個封裝好的盒子,它的功能是提供調用介面,好讓一些複雜的事情通過這個盒子之後變的簡單。

舉個例子,我們要在計算機上渲染一個3D的場景,而從實際上來說,顯示在你的電腦屏幕上的只是一張帶有深度感覺的2D圖片。(不能理解的翻相冊,看看自己的照片,您老不論多麼3D的臉龐,印在照片上之後都是一個平面,就在那張紙上。之所以你還是覺得自己看起來是立體的,是因為有了深度感的顏色變化和光影變化。)

對於遊戲場景來說是一樣的。

首先美術創建了許多3D模型,而這些3D模型分解起來就是許多的三角形包圍出來的密封體。然後在這模型基礎上,美術繪製了一層叫做貼圖的東西,這東西很像人的皮膚,於是……一個模型就誕生了。

接著,我們發現,通過畫法幾何,3D幾何等學術內容的一大堆算數結果……(這點是湊字數的,看不懂沒關係,我也不懂)

我們得到一個結論,我們在這個模型的前面擺上一個攝像機,攝像機的視角是扇形範圍內的一小塊,在這一小塊範圍內,我們能看到的內容,我們先稱之為攝像機視角。不難發現,物體的背面,我們是看不到的(除非你丫轉視角),兩個物體之間的前後關係,是通過遮擋關係來實現的,除此之外,這個視角下的內容符合我們一切所熟知的光學原理……漫反射、反射、折射、光吸收、投影……想想你的高中物理知識,你不難得到結論:想要描述一個物體,我只需要描繪關於這個物體的全部光信息就可以了。

那麼…………我們得到了一套可以通用的演算法,我們把這套演算法稱之為繪製物體時所需要的演算法。

轉頭看來代碼層……

如果你每去創建一個物體,都用這種反鎖的方式去寫一套演算法給這玩意兒……你不覺得你很腦殘么……於是,就有了這個封裝盒子。當然,繪製一個3D圖形只是這個封裝盒子其中一部分功能。

我們一般把引擎分為:客戶端引擎和伺服器端引擎。他們分別提供不同的借口,來解決不能的問題。

客戶端引擎是我們接觸的最多的,它關聯的內容包括,骨骼動畫、材質、shader、特效、渲染………………等等等。

but!!!

這個非常重要,我因為我見過很多2B跟我在這兒瞎得得!

引擎並不包含功能,或者是引擎並不包含邏輯。比方說,你TM要寫一套組隊功能,對不起,引擎不管你這事兒。

================================以下是對程序猿同學的建議

程序猿分很多崗位。

對於不同開發需求,會要求程序猿會不同的語言和開發工具。

e.g:

遊戲引擎程序猿一般要求是會C++,但是熟知數學、3D數學、至少你要明白四元數是個什麼玩意兒,如何做矩陣叉乘。

客戶端程序猿是看開發需求,一般要求是C++、C、或者是腳本語言,例如python。

頁遊程序猿,主要是伺服器端程序猿和前端程序猿,前端程序猿的要求一般是as架構。

手遊程序猿……以前是JAVA,現在是了解APP平台和APP開發工具,還有些什麼玩意兒,不是很清楚。

此外,會有公司要求你熟悉引擎,比如說,熟悉BG、GB,UE,CE。還有一些引擎本身支持跨平台。例如UE,他支持家用機平台開發,手游開發,客戶端遊戲開發,等等。

但總體來說萬變不離其宗,看好C++走遍天下都不怕~


遊戲引擎就是個現成的軟體,裡面有很多已經好多寫好的函數,有現成的用可以省不少力氣,而且有二維三維的圖形、動畫、聲音等有專門模塊編輯。3d遊戲引擎的話,BigWorld是挺多遊戲開發用的,不過也可以自己做引擎。

做遊戲還是要從策劃開始,製作過程中肯定是要編程和美工的。(自己用過Stonetrip 的shiva引擎做過小遊戲,這款引擎是lua構建的,可以跨平台發布)


遊戲引擎是什麼?

問題問的還是蠻好的,首先要知道遊戲引擎是啥。

有CC++基礎的話建議學習使用 Ogre http://www.ogre3d.org/,跟著官方的Tutorial寫點代碼,然後自己去寫個完成度比較高的Demo。

2D的話就Cocos2dx吧。

零基礎的話Unity大法咯,隨便拖幾下也能出點東西。

怎樣開始做一個遊戲?

可以參考這個 - How to Make a Game

需要用到哪些技術?

C/C++ : 這個絕對是做遊戲的屠龍寶刀。

OpenGL/DirectX: 圖形的API必須學會一個。

圖形學:這個覺對視做遊戲的葵花寶典。

線性代數:圖形學的基礎。

推薦書

《Ogre3D Beginner"s Guide》

《遊戲引擎架構》

《Real Time Renderring 3rd》

《Game Code Complete 4rd》


最基本的就是一組API或者工具包讓你更容易創造和操控在屏幕上運動和顯示的物體。了解引擎然後開始開發遊戲最快的方式就是使用一個引擎,如果有C#基礎,可以下載FlatRedBall,然後按照Tutorial做一個遊戲,只需要一下午你就能了解引擎和遊戲的工作原理然後開始做遊戲。


不要浮躁地想一個寒假寫出什麼遊戲,請靜下心來,學習。學習數學基礎,演算法,圖形學,以及紮實的C++技術。不,遊戲不只是商業上的搖錢樹,它是藝術,所以你還要不低的藝術修養,不然沒有人真正看得起你的遊戲本身。

業界最多的,不是技術,不是資金,是浮躁之風。

一個寒假能寫出來的,叫Demo,不叫工程。

做自己熱愛的,就要靜下心。你的人生,從你想做的遊戲開始,就不是那樣的容易得到美好結果了。請靜下心,認真思考,學習。想想:同樣會編程,為什麼別人能想出遊戲怎麼寫,而我偏偏要看別人的源碼?為什麼我就沒有這點規劃創意?也許你的方案比別人的差,可執行率低,但等你想好,用你已有的知識,如何解決這個問題,實現你的願望,這時再來看別人的解決方案,那麼,你收穫的就不只是如何製作遊戲了。

等積澱了足夠多的知識,別忘了,最初的夢想。這時,你已經有足夠硬的翅膀。那麼,你的遊戲之旅,可以起歩了!

不要浮躁,年輕人!靜心做事。

好吧,我也只是一個高一的學生,別聽我瞎扯了。。。


從公司開發的角度說:

最粗糙的引擎只是一個純換皮模板。稍微高級點的引擎一般是native語言做的,會有很多介面。更高級一些的,會提供腳本綁定,開發效率很快。

從概念由小到大說:

最初級的引擎只是一個圖像引擎。更高級點的是有邏輯,按鍵觸摸,事件,網路等封裝的引擎,但是工具一般是第三方的,或者自己做的比較粗糙,或者只有一些自動化工具,實現遊戲基本靠寫代碼,而不是工具。最高級的引擎是一定要提供自己的編輯器的,而且編輯器必須強大。

從工程管理的理念說:

最小的引擎只是作坊式的,存在大量的串列操作,只適用於幾個人的小產品,人多肯定亂套。中等規模的已經有一定的工具支持了,但是bug多,流程不優化,查錯困難。最好的引擎應該是一個完整的遊戲開發解決方案,有大量的工具,格式文檔,流程優化,查錯快速,可以做到高效率的並行開發,以及快速的需求響應。


我做了一個遊戲,賣得特好,想做二代,發現大多數一代的代碼都能直接用

二代做完了,另一家公司想做一個差不多的,給我一筆錢,拿我的代碼換皮

他們覺得我的代碼太難讀了,讓我幫他們整理一下文檔和介面,這個很麻煩,但我覺得要是整理出來可以一直賣錢

整個市面上全是同一個類型的遊戲,太無聊了,我終於明白是我毀了整個行業


騷年,用過半條命的MOD編輯器嗎。-,-


如果只有一個寒假的時間的話,我就只推薦1個引擎了。

不要被 @葉小妖 同學說的嚇倒,用這個引擎,你不需要知道3D、Shader、C++、骨骼動畫,你甚至都不需要知道初中以上的數學知識。當然,只用小學數學知識也夠了。

這個引擎就是:L?VE - Free 2D Game Engine

你看,我沒有騙你吧,這是個2D 引擎,所以你不需要了解任何3D 知識。

當然,Shader 之類的還是需要的,只不過那是引擎需要知道的,你不需要知道。

下面是幾個特點:

  1. 支持 Linux、Mac OS X 和 Windows;
  2. 採用 Lua 語言,你如果學過 C# 的話,學習 Lua 大約需要0.5~7天(超過7天的話,就不要學編程了)就能上手了;
  3. 語法簡單,範例眾多;
  4. 部署容易。基本上就是一個可執行文件;
  5. 文檔很乾凈,有中文版:Main Page (簡體中文)
  6. 開源。

Lua 是最快的腳本語言,她足夠小,足夠簡單,足夠專註。

摘一點東西:

下面是一個完整的 L?VE "hello world"源代碼。運行這個代碼,屏幕上會顯示一個 800 x 600 的窗口,然後在黑色背景的窗口中顯示一些白色文本。

function love.draw()

love.graphics.print("Hello World!", 400, 300)

end

繪製一個矩形:

love.graphics.rectangle("fill", 20, 50, 60, 120 )

當然,如果你一定需要Shader 的話,當然也是有的:

Shader - LOVE

另外,如果你學習 Lua 超過7天的話,我還有一個引擎介紹給你。

那就是 Flash。


遊戲引擎實際上是用來開發遊戲的一個介面庫,包含渲染,碰撞,物理,網路,音效,動畫,腳本,等等模塊,當然並不是所有的引擎都包含這些內容,有的只偏重一個方面。

遊戲開發者使用引擎提供的功能完成自己想要的邏輯,如果說引擎是一輛汽車,那麼開發者就是司機,你想往哪兒開,怎麼開都是你來控制。

當然想做好遊戲,主要還是設計思路,遊戲引擎只是輔助,你要懂程序設計思想,也要懂人文理念,玩家心裡,遊戲是一門很大的學問,也是一門藝術。


看大家都洋洋洒洒,整短一點,打個比方吧:比如你要做一張幻燈片, PPT軟體就是引擎; 你要畫一幅畫,畫圖軟體就是引擎; 那麼要做一個遊戲,你需要圖形繪製、控制人物走動、做出各種視覺效果和物理效果,總不能從頭開始搞吧? 那就用引擎,他幫你搞定這些基礎功能,你利用它進行遊戲創作。


學會做軟體先,遊戲就是軟體的一種而已。推薦嘗試下unity3d,好東西


你會c#,那麼就聽說過 開發框架 了。

和那個東西一樣。

如果知道cms那就更好理解了,連前台模版都現成的。

想做什麼網站,就很簡單的事情了。

遊戲引擎也一個道理。

遊戲引擎什麼語言,你就掌握什麼語言總是錯不了的。


那篇曬布那麼長的回答都不像是想幫你的啦。試試cocos2dx。它文檔不好可以參考cocos2d類比。有些東西做比看簡單,不用什麼都往難處想。引擎可以很簡單。一個遊戲每秒跑假設30幀畫面,每33毫秒你場景內的東西就要被驅動一次,執行的內容包括按照要求畫圖像到屏幕啦,播放聲音啦,網路收發包回調啦,之類,推動這些事情發生幫你做這些工作的就算是引擎了。說大了也多概念只會嚇到自己,什麼粒子,腳本,資源管理,什麼的按需要加嘛……我們做產品也改引擎,代碼後面無秘密。有概念就好,其他一做就會啦!


我覺得可以簡單把遊戲引擎理解為簡化遊戲製作和發布的工具。

2D遊戲如果是複雜點的,用引擎會大大減少製作時間和成本。引擎一般都有多平台發布的功能,這點的話簡單的遊戲也可以從中得益,比如說你做的連連看用引擎的話可以輕鬆發到Mac,iOS,android,xbox等各種平台上。

因為unity3d可以用c#,也最建議用c#,所以你可以去學unity3d這個引擎。unity3d對2D和3D遊戲開發都支持得非常好。

3D遊戲的話,我之前寫了兩文章研究了一下一個人製作的大概流程,可以參考一下。

遊戲製作之路:遊戲引擎選擇、Mac下和Windows下UnrealEngine 4體驗對比、文檔及其他

遊戲製作之路:一個對我來說可實現的High-end的Mac/iOS遊戲製作大概計劃

答完然後分享到微薄後才發現這是12年的問題 ╮(╯▽╰)╭ 。


不知道你用什麼編程語言,如果是java,可以考慮OGEngine( http://www.ogengine.com) , 開發遊戲比較高效


我理解遊戲引擎就是一個軟體工具,具有現成組件供方便使用,就像visa,powerpoint等軟體。看一下引擎使用的視頻會一目了然,要做的當然就是熟練使用和學習優秀案例。


少年 試試神奇的RPG Maker MV吧。

學過c#入門Unity也相對輕鬆。

加油吧--


關於遊戲引擎我知道國內有一款中文界面、不需要代碼編程的遊戲引擎。paws3d。不過這個引擎也有一定的局限性、對於戰鬥這一塊引擎是回合制的、連連看好像做不了,但是好上手、比較適合編程小白使用、對於回合制、解密類這個還是挺好用的、估計仙劍遊戲可以用這個引擎還原百分之90左右


推薦閱讀:

網遊的掉寶率真的是隨機的嗎?
如何控制遊戲平衡性?
DotA 新手用哪個英雄容易操作?
格鬥遊戲中「摔技」招式的意義是什麼?
遊戲里有哪些匪夷所思的裝備?

TAG:遊戲 | 遊戲開發 | 遊戲引擎 |