1. 程式人生 > >開始我的第一個遊戲引擎製作

開始我的第一個遊戲引擎製作

從零開始的引擎開發。當然不會很高階。想要入門的同學可以看看。

首先平臺我選擇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();//更新資料並繪圖
	}
}
當然更新資料和繪圖可以分開來演算,比較好。

那麼一個簡單的引擎需要什麼?

  1. 建立視窗
  2. 基本的繪圖功能
  3. 重新整理和圖片佇列
  4. 鍵盤滑鼠和引擎的互動
  5. 文字顯示
  6. 聲音播放

可以看到一個簡單的引擎是不包括object和object的資料更新的。因為一個簡單的引擎基本功能就是能顯示圖片。至於這個圖片的大小,位置等等,是由object來提供。這樣才能展現出一個生動的遊戲畫面。

比如一個蘋果,他在(0,0)的位置,那麼每次更新資料,就將一個蘋果的貼圖貼在這個位置。當蘋果往下掉的時候,比如掉到了(0,-1),也就是位置更新了,那貼圖的位置也發生了改變,以此類推。我們就能看到一個蘋果往下掉落的過程。也就是說,遊戲世界分裡世界和表世界。裡世界全部由資料構成。而讓我們能看到這個世界,就需要圖片組成的表世界。當然沒有圖片,這個世界也是存在的,這個蘋果依然是往下掉的。只是我們看不到而已。當然這後面就要扯到物理引擎的知識了,這裡先不說。

我自己寫引擎碰到瓶頸了以後,就去找教程。但網上的教程很零散,完整的很少,就算有也是收費的。

和我一樣使用c++和opengl開發。以後會不定期更新。

完。