ゲームを作りましょう. C++で. Unity? 棚に戻してきなさい.
(実際, 他人が作ったよくわからない仕様と闘うか, 自分や自然科学と闘うかの違いでしかなく, 後者の方が精神衛生にいいのでC++で作ることを推奨します. 冗談ではなく, 本気でそう思っています.)
今回はまずC++の開発環境を構築します.
前提
- Windows 11 (x64)
- Visual Studio Code
手順
-
Visual Studio Build Tools(VSBT)
Visual Studioのエディターはこの世で最も醜いものの一つなので使わず, 中にあるBuild Toolsのみを使います. Visual Studioを入れずにこれだけをインストールできます.- 公式サイト(https://visualstudio.microsoft.com/downloads/)の下の方からダウンロード(Tools for Visual Studio → Build Tools for Visual Studio 2022).
- C++によるデスクトップ開発にチェックを入れる.
-
vcpkg
パッケージマネージャ. VSBTの中にもvcpkgがありますが, 偽物なので使いません. vcpkgはユーザーディレクトリなどに入れるのが一般的らしいです. (OSの直下にフォルダを作って開発用のツールをまとめる人もいるらしい)- インストールしたい場所で以下を順に実行する.
# インストール git clone https://github.com/microsoft/vcpkg.git # bootstrap .\bootstrap-vcpkg.bat # Visual Studioと統合 .\vcpkg integrate install
- システム環境変数のPATHに追加
vcpkg.exeを持っているフォルダのパスをコピーしてPATHに追加します. 最も外側のvcpkgだと思います.
- インストールしたい場所で以下を順に実行する.
-
CMake
メタビルドシステム. 公式サイト(https://cmake.org/)からインストールします.
(「コンパイル」というのはソースコードを機械語に翻訳することであり, これはファイルごとに行われるので, 複数のソースコードからなるゲームを作るにはそれらを結合する「リンク」という作業が必要になります. これらをまとめて「ビルド」といい, ビルドを自動で行うツールを「ビルドツール」といいます. ビルドツールには複数あり, それらの仕様ごとに異なる形式のキャッシュを生成するのですが, これでは共同開発などで不便なことが多かったため, 選択的にビルドツールを生成してビルドを行う「メタビルドシステム」というものが誕生しました.) -
母国語を取り戻す
現状ではC++のコード内で日本語(UTF-8)を書くとコンパイルに失敗します. そこでWindowsの設定を見直す必要があります.- 設定 → 時刻と言語 → 言語と地域 → 管理用の言語の設定 → システム ロケールの変更 → 「ベータ: ワールドワイド言語サポートでUnicode UTF-8を仕様」にチェックを入れる.
- PCを再起動する.
-
VS Code拡張機能
- C/C++
- CMake Tools
あたりがあれば十分だと思います. あとはお好みで.
サンプルコード
プロジェクトフォルダの直下にCMakeLists.txtを作り, 以下のように書きます. (このファイル名にするとVSCode上でアイコンがMになると思います.)
# 00_HelloCpp/CMakeLists.txt
# CMakeの最低バージョンを指定
cmake_minimum_required(VERSION 3.15)
# プロジェクトを定義(HelloCppという名前のCppで書かれたプロジェクト)
# このプロジェクト名はフォルダ名と同じである必要はない
project(HelloCpp LANGUAGES CXX)
# ビルドを実行(main.cppをコンパイルしてhello.exeを作る)
add_executable(hello main.cpp)
main.cppを適当に書きます.
// 00_HelloCpp/main.cpp
#include <iostream>
#include <vector>
#include <string>
int main() {
std::cout << "Hello, C++!" << std::endl;
std::vector<std::string> Zoo = {"dog", "cat", "bird"};
for (const auto& animal : Zoo){
std::cout << animal << ' ';
}
std::cout << "" << std::endl;
std::cout << "はろーわーるど!" << std::endl;
return 0;
}
ビルドと実行
プロジェクトフォルダの直下で以下を順に実行します.
# buildフォルダを作成・移動
mkdir build && cd build
# キャッシュファイル作成
cmake ..
# Debugフォルダの中に実行ファイルを生成
# 以降, コードを変更したらここからやり直す
cmake --build . --config Debug
# 実行
./Debug/hello.exe