不使用遊戲引擎,如何開發遊戲?
比如unity出來前,人們怎麼開發,拿oc或java直接寫嗎
首先澄清引擎這個概念。 @kubisoft提到引擎只會帶來更出色的畫面、更細膩的動畫,是不全面的。這麼說的話只是說到了「渲染引擎」而已。一個遊戲,還有物理引擎、AI引擎等很重要的幾個引擎。而所謂的引擎,很大的程度上,是一個」專註於某個功能的模塊「。軟體中有很多的模塊,為什麼只有渲染、物理等才被成為引擎,跟汽車的引擎一樣,因為這個模塊可能比較核心,在所有的組件中功能更有決定性,所以才被叫做引擎。有人可能會說,現在的遊戲,決定性的是遊戲的內容、邏輯,那為什麼沒有邏輯引擎這個說法。這個的關鍵之處在於,邏輯不能成為一個很通用的模塊。所以,才沒有邏輯引擎這個說法。
另外,嚴格的說來,引擎和解決方案是兩個概念,對unity3d來說,即使官方也用engine的字眼,但是,如果硬要用引擎(engine)和解決方案(solution)來區分,那麼其實unity3d更是一個solution,而不是engine。因為它本身包含了很多的engine(渲染、物理、AI、audio等),在這些engine的周圍,又集成了一個團度協作需要的各種工具(動畫、材質、物理、場景編輯器,以及打包發布工具等等)。相對而言,ogre更偏重是一個純粹的engine:它只負責渲染。另外一個很好的案例是現在的cocos2d-x,原先它只是一個engine,後來它開始出編輯器了,那麼慢慢就演變成一個完整的解決方案(現在顯然還沒有到這個級別)。
然後回到題目,回答是:直接寫。甚至現在還有很多的公司還是直接寫。基於OpenGL或者Direct3D,自己寫場景的解析器,自己寫渲染器。為了跟美術和策劃合作,至少還得寫一個場景編輯器,後來發現老是手工改材質配置非常繁瑣或者是容易出錯,就需要再寫個材質編輯器。後來又發現缺個啥,再寫個什麼。如果完完整整都寫下來,那麼寫出來的這些個工具,就成了一套完整的3d引擎了。現實中,有的遊戲很小,根本不需要那麼多的工具。有些公司很小,沒有那麼多的協作,或者各個力量都很牛,打開個文本編輯點東西不是什麼問題,那麼也就沒有那麼多的工具。因為最終目的是出遊戲內容,而不是周邊工具。
而遊戲引擎,只是有人發現了這是個市場,所以專門針對內容開發團隊做了相應的產品:保證他們可以協同,保證他們可以用不是很技術的方式產生高質量的內容,保證他們,如廣告中所說」讓開發團隊只需要專註於內容的開發「。但是因為3d遊戲引擎最好的賣點就是渲染,所以會比較注重渲染這一塊的技術。
引擎就是在「一幫人直接用語言碼遊戲,發現很多模塊可以重用、很多工作可以cv」中誕生的
雙行顯示計算器,有一個rnd鍵,會生成一個0.001~0.999的隨機數。
雙行顯示計算器,還支持ABCDEFXY這8個變數以及一個M可擴展變數。
雙行顯示計算器,擁有幾乎所有的運算函數。
雙行顯示計算器,可以寫127個字元。
引擎是一個能夠幫助你加速開發的好東西,如果沒有引擎,你需要從零開始構建一切, 從數據管理,渲染,UI,交互等等。而且現在機器能做的事情越來越多,在像FC時代那樣,幾個人就能從零開始搞定一個小遊戲的時代已經過了。
其實來說,引擎只是工具,你的思路,遊戲玩法才是核心,讓你把更多的重心放在遊戲的玩法設計上,內容上,這比花大量時間去做一些底層的東西更有意義了不是,好鋼要用在刀刃上。引擎和編輯器還是需要分開的,引擎我的理解無非就是一堆通用的代碼而已,這些代碼為開發遊戲提供一些通用功能,比如讀寫數據,渲染圖像之類的,隨著遊戲的複雜性越來越高,遊戲的共性越來越對,引擎抽象出來的東西也越來越複雜越來越龐大。unity不僅僅是個引擎,是一個套件,他通過ui界面將一些原本通過代碼的操作進行了可視化和簡單化,從而來簡化和加速遊戲開發過程。沒有「所謂引擎」之前,最早的也就只能用編程語言來一點一點的寫了,不然也沒有其他辦法。
有圖形API的時候 在圖形API的基礎上做。
沒有圖形API的時候,從一個畫單個像素的函數,開始做。
項目複雜了,總會有需要抽象出引擎,或者為了跨平台
簡單的遊戲根本不需要引擎,比如minecraft,所謂引擎就是把遊戲開發常用的功能系統化工具化,可以只挑自己需要的部分自己實現,不過要想做大型遊戲根本不可能,看看steam上那些各種獨立遊戲就知道了,普遍優化差表現效果差,唯一好處就是可以體現自己的玩法獨到
在沒有鍵盤滑鼠之前人們就會通過在紙帶上打孔和機器交流了,沒有unity能難倒聰明的人們嗎?
這不是用不用引擎的問題。問得出這種問題說明題主大概還沒明白什麼是引擎。
遊戲引擎說白了只是一套演算法集合而已。僅此而已,無論是物理引擎(剛體碰撞、摩擦、重力模擬演算法),還是AI引擎(定址演算法等……),都不過是一套套演算法集。
你當然可以不用別人的演算法集,自己搞自己的,重新造一遍輪子而已。但你自己寫的其實也叫引擎,也不過是演算法集。
所以,其實這個問題,和「不用大米能不能做大米飯?」是一個意思。遊戲的引擎只是一個模板而已,就像你做ppt,給你個模板你能做得很漂亮,不給你模板,只要你有本事,也能做的很漂亮。。。基本上等於從零開始或者有一定基礎的區別而已。。。跟題主說的東西沒有關係。。。
對的,直接寫。
遊戲的核心玩法部分一般都不需要引擎。引擎只是會帶來更出色的畫面效果、更細膩的動畫而已。
-----------
C#當然可以用unity啊。
有很多遊戲是基於格子的,背後實現就是一個二維數組,然後不斷根據數組中的元素來刷屏,畫出對應的圖片。俄羅斯方塊,各種棋類,三消類,都是這個樣子的。
有的基於人物和場景的,也不過就是不同的圖片而已。剛開始的時候你直接弄一些色塊也能代替,弄現成的按鈕什麼的也能代替,只要能改坐標實現移動就行。
------------------------------------
至於物理引擎,大多情況下你的遊戲世界有你自己獨特的物理。比如俄羅斯方塊,也有碰撞啊,但卻是那種基於格子的碰撞。
-----------
如果只會c#,又要寫android或者iOS遊戲,那麼只有學啊!要不就學cocos2d-javascript, 要不就學
native應用開發,要不就學flash air,要不就學unity......你總不能什麼都不可能學卻希望自己就能會,還能做出遊戲來吧...
不知道有沒有聽說過一個經典的遊戲叫Zork: The Great Underground Empire
附上youtube鏈接
https://www.youtube.com/watch?v=TNN4VPlRBJ8
實在不能翻牆,也可以看優酷
一款讓FC遊戲淚流滿面的遊戲:Zork
就像人們用unity做遊戲一樣的思想,unity也是用mono用physx做引擎,而mono又是用.net做的......如果非要從頭開始的話,從彙編開始吧
直接寫唄
- 首先,你要有個做循環的基本循環函數,這就是你的遊戲時間控制。
- 然後,想辦法把圖像做出渲染,考慮好動畫效果的一些實現方式。
- 如果不涉及物理的,基本上再湊一湊邏輯代碼就可以搞定一些遊戲了。
- 有涉及碰撞和物理的話,定義向量這種東西,然後自己寫一套簡單力學工具。
- 再定義一套碰撞檢測方法,這樣就可以搞定簡單的動作遊戲等。
- 至於AI嘛,呵呵水太深啊
我做了一個遊戲,賣得特好,想做二代,發現大多數一代的代碼都能直接用
二代做完了,另一家公司想做一個差不多的,給我一筆錢,拿我的代碼換皮
他們覺得我的代碼太難讀了,讓我幫他們整理一下文檔和介面,這個很麻煩,但我覺得要是整理出來可以一直賣錢
整個市面上全是同一個類型的遊戲,太無聊了,我終於明白是我毀了整個行業while(true){
if(lost){
exit();
else{
switch(menu){
case "newgame": showUI();
...
}
}
}
showUI(){
switch(key){
case "up": ..
..
}
最初開發英雄聯盟就沒有使用遊戲引擎。
但是為了實現比如剛體碰撞的功能 Riot就自己寫了類似其它物理引擎的演算法來實現。
如此一來 在s2的時候Riot把他們自己寫的這些個演算法打了個包 就叫做他自己的遊戲引擎了。
所以你想不使用遊戲引擎做遊戲,就得先自己寫一個遊戲引擎。
引擎沒有好壞,只有適合不適合。不管什麼引擎,嚴肅做遊戲的公司總要自己寫點代碼。如果是合適的引擎可以節省你的時間。如果是不合適的引擎那就自己寫。好引擎和壞引擎都是代碼。卡馬克是非常擅長寫代碼的。unreal非常擅長賣引擎。商業引擎也是商品,是商品就有好壞。好的遊戲要有個好的程序員。越是適合的商業引擎越方便。unreal和cry engeging和U3D提供了不同的引擎來適合不同的遊戲。他們各有側重點。對於側重點沒有好壞,只有適合不適合。
這個從什麼是遊戲引擎開始說起.
任何一個遊戲,從簡單的貪吃蛇到複雜的3A遊戲.把它的代碼分一下.都可以粗略的分成2個部分.
1.與遊戲內容,主題關聯的部分.
2.通常被1調用,負責圖形顯示.接受輸入,載入資源等等的部分.
2的部分就被稱為遊戲引擎.
如果你不準備使用現成引擎的話.那麼就要自己寫一個.當然你自己寫的相對現成的引擎可能會很簡陋.根據你的遊戲內容高度特化.但任然是個引擎,
推薦閱讀:
※影響手游生命周期的因素有哪些?
※節奏大師的遊戲體驗要超越 DJMAX,有哪些障礙或者說困難?
※有關手游初創團隊(公司)有哪些容易被忽略的預估成本?
※為什麼月流水高達 500 萬的手游製作者也可能賺不到多少錢?
TAG:遊戲設計 | 手機遊戲 | 遊戲引擎 | Unity(遊戲引擎) | 遊戲編程 |