稍微講了一些遊戲引擎的架構,雖然還未完全介紹完,我們對於其有了一定的了解。接下來筆者想先換點風格。因此,我們接下來就先來做開發的事前的準備吧!也就是今天所要介紹的主題 - 專案建立及管理。
遊戲的遊戲迴圈(Game Loop)有嚴格的效率要求,在固定刷新率的迴圈中,你必須完成各種狀態、物理、渲染等等的更新,因此開發的語言在遊戲引擎中尤為重要。市面上絕大多數的引擎都會使用 C++ 作為引擎底層架構的開發,而 C++ 是一個編譯式語言,你需要編譯器(compiler)、鏈接器(linker)將原始碼轉換成可執行的程式。雖然有市面上有許多專業功能的編輯器、整合開發環境等等,而這裡筆者將使用微軟的Visual Studio 2022來做之後的介紹。
Visual Studio 是一個功能強大的整合開發環境,他能夠輕鬆的配置及管理你的專案。在這裡就不帶安裝Visual Studio了,我們可以在檔案這裡新增一個專案(Project)。
我們先選擇一個空白專案。
輸入名稱、位置後就可以建立專案了,解決方案則與項目同名即可。
完成後可以看見在解決方案的資料夾下生成了一些文件。我們先將這裡放置,等等再來進行講解。
test
├─ .vs
│ └─ test
│ ├─ FileContentIndex
│ └─ v17
├─ test /* 這裡是項目的資料夾 */
│ ├─ test.vcxproj
│ ├─ test.vcxproj.filters
│ └─ test.vcxproj.user
└─ test.sln /* 這裡是解決方案 */
接下來我們可以先找到專案test。
點右鍵並加入、新增一個項目
選擇C++檔案並新增
接著我們就能在專案test中看到我們新增的C++檔了。
雙擊Source.cpp後我們就能開啟並編輯。
那就讓我們先打上不可少的"Hello World!"吧。
我們點擊本機Windows偵錯工具,偵錯並啟動項目。
我們就能看到我們的"Hello World!"了。
可以發現我們解決方案的資料夾下變成了這樣。
test
├─ .vs
│ └─ test
│ ├─ FileContentIndex
│ └─ v17
├─ test /* 這裡是專案的資料夾 */
│ ├─ Source.cpp
│ ├─ test.vcxproj
│ ├─ test.vcxproj.filters
│ ├─ test.vcxproj.user
│ └─ x64
│ └─ Debug
├─ test.sln /* 這裡是解決方案 */
└─ x64 /* 這裡是執行解決方案後生成的位置 */
└─ Debug
├─ test.exe
└─ test.pdb
Visual Studio使用解決方案文件(副檔名為.sln的文件)來管理項目。解決方案是由專案所組成,而專案與專案間有一定的依賴性。編譯專案後則會產生應用程式 (.exe)、動態連接函式庫 (.dll) 或靜態函式庫 (.lib)。在專案資料夾中所看到附檔名為.vcxproj是XML格式的,而大部分時間將會在專案的屬性頁面去更改設定,少部分時候會直接以編輯器修改.vcxproj。
你可以對專案點右鍵選擇屬性。
可以看見一般 > 組態類型。
前面有提到編譯專案時可以選擇生成的文件類型,這裡來解釋一下。
而在一般屬性頁還有其他能夠設定的屬性,常見的有。
除了一般屬性頁外,還有C/C++屬性頁尤為常用。這裡也列出一些常見的屬性。
鏈接器(Linker) 控制如何將.obj文件鏈接成執行檔或DLL。在其屬性頁中也有幾個常見的設定。
今天先講了開發環境的部分,創建好一個項目需要設定這麼多的設定,大部分都是為了將來開發時需要發布、引用第三方函式庫等等所需要做的準備,但這實在是令人頭痛對吧,明天我們就來講解一個自動化搭建工程的工具 - CMake,與為了將來方便管理第三方函式庫的開源庫管理器 - vcpkg,讓我們拭目以待吧。