開始我的第一個遊戲引擎製作
阿新 • • 發佈:2019-02-07
從零開始的引擎開發。當然不會很高階。想要入門的同學可以看看。
首先平臺我選擇PC平臺。語言選用初中就瞎幾把亂學的c++。想做一個2d遊戲。網上找幾個庫就開始做了。之後當然,就碰到了瓶頸。所以為了不走彎路。一開始就要學習很多基本知識。那麼首先:
遊戲基本原理是什麼?
我自己理解就是,當然簡單的來講,清空畫面→遍歷元素佇列(更新資料)→渲染(遍歷圖片佇列重新描畫),這樣一個過程,每秒迴圈60次。也就是60fps遊戲。這就是一個簡單的遊戲。
打個比方。用虛擬碼演示一下就是:
當然更新資料和繪圖可以分開來演算,比較好。vector<object*> objects;//弄一個vector陣列 objects.push_back(new object);//新增元素 objects.push_back(new object); objects.push_back(new object); while(1) { clear();//清空畫面 for(unsigned int i = 0; i < objects.size(); i++) { objects[i]->render();//更新資料並繪圖 } }
那麼一個簡單的引擎需要什麼?
- 建立視窗
- 基本的繪圖功能
- 重新整理和圖片佇列
- 鍵盤滑鼠和引擎的互動
- 文字顯示
- 聲音播放
可以看到一個簡單的引擎是不包括object和object的資料更新的。因為一個簡單的引擎基本功能就是能顯示圖片。至於這個圖片的大小,位置等等,是由object來提供。這樣才能展現出一個生動的遊戲畫面。
比如一個蘋果,他在(0,0)的位置,那麼每次更新資料,就將一個蘋果的貼圖貼在這個位置。當蘋果往下掉的時候,比如掉到了(0,-1),也就是位置更新了,那貼圖的位置也發生了改變,以此類推。我們就能看到一個蘋果往下掉落的過程。也就是說,遊戲世界分裡世界和表世界。裡世界全部由資料構成。而讓我們能看到這個世界,就需要圖片組成的表世界。當然沒有圖片,這個世界也是存在的,這個蘋果依然是往下掉的。只是我們看不到而已。當然這後面就要扯到物理引擎的知識了,這裡先不說。
我自己寫引擎碰到瓶頸了以後,就去找教程。但網上的教程很零散,完整的很少,就算有也是收費的。
和我一樣使用c++和opengl開發。以後會不定期更新。
完。