フリーゲーム:Simutransの開発環境を整える(Standard版)
はじめに
フリーゲームの Simutrans の開発環境を構築してみましたので、今回はその手順を記事にしてみました。
Windows10 での環境構築となります。
- Windows 10
- Visual Studio Community 2022
- vcpkg
- C++
Simutrans について
Simutrans とは、オープンソースで開発・公開がされている経営シュミレーションゲームです。
1 企業となり鉄道・自動車・船舶・航空機をなどを使い、乗客と貨物を目的地へ運び利益を出しながら都市を発展させていく内容となっています。
新機能の追加やバグ修正などは、有志のプログラマーが公式フォーラムを通じて開発を行っています。
今回は、その Simutrans の開発環境を構築していきましょう。
必要ツールを揃える
Microsoft Visual Studio
公式よりVisual Studio
を入手するために、Microsoft の公式よりダウンロードをします。
Simutrans はC++
で作られており、また公式が推奨してる開発環境もVisual Studio
なため。
Community
、Professional
、Enterprise
の 3 つがありますが、後者 2 つは有料版なのでCommunity
をダウンロードします。
インストール時には、C++によるデスクトップ開発のみを選択します。
インストール場所などは、各自の任意の場所へ。
Git
Git を導入するため公式よりダウンロードをします。
公式サイトの Download for Windows より実行ファイルをダウンロードして、インストールを行ってください。
vcpkg(※要 Git)
以前ですと、ライブラリを入手するために別途 DL してビルドしていましたが、最近のは Microsoft が提供してる
クロスプラットフォームパッケージより入手します。
Code の部分より直接ダウンロードをし任意のフォルダに解凍するか、git の clone で入手するかの 2 つの手段があります。
今回は、git の clone を使ってやってみましょう。
まずはコマンドプロンプト
を起動します。
次にパッケージを保存したいフォルダの位置へ、cd
のコマンドを使い階層を移動します。
今回は、simutrans のフォルダ階層内にbuild
という開発ファイルを格納するフォルダを作り、そこへダウンロードを行います。
なので、mkdir
コマンドを使い、フォルダを作成します。
mkdir simutrans
mkdir build
そして、cd コマンドを使い作成した build フォルダへ移動します。
cd build
<USER_DRIVE>:<USER_PATH>/simutrans/build
ドライブより下のパスがこのようになっていたら準備は完了です。
次にgit clone
コマンドでダウンロードを行いますので、github のcode
ウィンドウにある、
https...
から始まる URL をコピーし、以下のコマンドを入力します。
git clone https://github.com/microsoft/vcpkg.git
git のインストールがうまくいっていれば、パッケージのクローニングが始まります。
Simutrans の Pak とソースコード を入手
Simutrans は実行ファイルなどだけではプレイすることができず、モデルやゲーム内容などの数値が設定されているPak
が必要となります。
開発やデバッグにもゲームをプレイするためにPak
が必要なため、Pak
を入手する必要があります。
今回は Wa 氏が作成されている、日本風景感のPak
である、pak.nippon
を導入しましょう。
ダウンロードしたファイルを解凍し、中のpak.nippon
フォルダ毎任意の場所に保存しておきましょう。
後ほど使います。
次に、Simutrans のソースコードを入手します。
Git Fork
Git Clone でソースコードをローカルフォルダにダウンロードをし、そのソースコードに変更をかけコミットをしようとした場合、
元の Simutrans 本体のソースコードを管理しているリポジトリへ編集内容の更新をかけてしまうため、それだとよろしくないため、
フォークをすることにより親元から派生したリポジトリを自環境に作るようにします。
Simutrans Standard のリポジトリより Fork を行います。
リポジトリ画面の右上にある、Fork
と書かれたボタンをクリックすると新しいフォークを作成する画面へ移動します。
そこで、自分のリポジトリへ作成する時のリポジトリ名を決めます。
Copy the master branch only
は、親元のリポジトリにあるmaster
(もしくはmain
)ブランチのみコピーするかどうかの問です。
他の開発中ブランチへ貢献したい場合はここのチェックボックスを外す必要があります。
Create fork
ボタンを押すと自分のアカウントに対してリポジトリが作られますので、これで fork は完了です。
最後に fork して作成したリポジトリの Git clone を行い、ローカル環境にダウンロードをします。
clone 先は、一個前の項目である vcpkg で作成したbuild
内にします。
build フォルダ内に、simutrans
のフォルダが新しく作られ、中にGDI
やSDI
とかsrc
と書かれた拡張子のファイルやフォルダがあるなら成功です。
構築を始める
必要なアプリやライブラリなどを用意できたので、これらを設定していき開発及びデバッグを行えるようにします。
vcpkg から必要ライブラリをインストール
vcpkg から必要なライブラリをインストールするために、bat ファイルからライブラリのインストール処理を行います。
用意したソースコード内のtools
フォルダ内にある、install-building-libs-<PROCESS>.bat
を、vcpkg
のフォルダへコピペします。
コピペが完了したら、次はコマンドプロンプトでまずはvcpkg
同梱の bat ファイルを起動します。
<PATH>/bootstrap-vcpkg.bat
この同梱の bat ファイルの処理が終わったら、次は Simutrans の bat ファイルを起動します。
先に vcpkg のバッチファイルを処理していないと、この後の処理ができないので、必ずやっておきましょう。
<PATH>/install-building-libs-x64.bat
今回は 64 ビット版を導入するので x64 の方を使用します。
すると、長い処理が始まるまで終わるまで待機します。
最後に、続行するには何かキーを押してください . . .
が表示されたら処理が完了です。
これで、必要なライブラリを導入することができました。
Visual Studio でソースコードを確認する
git Clone しておいたソースコードを VisualStudio で展開します。
VisualStudio を起動したらこのようなウィンドウが表示されるはずなので、今回はローカルフォルダーを開くを選択します。
なお、一番上のリポジトリのクローンを選ぶと、git clone と同じ事をやってくれます。
便利ー!
選択するフォルダはSimutrans.sln
のソリューション拡張子のファイルがあるフォルダを選択します。
すると、VisualStudio の画面が画像のようになります。
この状態でも、src
フォルダの中に simutrans 本体のソースコードがあるので、コーディングを行うことができますが、デバッグをするには今のフォルダのパス配下から、Simutrans.sln
パス配下へ移る必要があります。
それには、Simutrans.sln
をダブルクリックすることで移動することができます。
移動すると画像のようなツリーが表示されます。
この状態で、Simutrans-Main
を展開すると、ソースコードの一覧が表示されます。
試しにvehicle.cc
というファイルをクリックし、ソースコードを確認してみましょう。
このファイルが主にゲーム中に乗り物がどのような動作をするかのコードが書かれているファイルになります。
645 行目へジャンプをしてみるとmake_smoke
という関数がありますが、これがゲーム中で車両が出す排煙をどのように描画するかの処理が書かれた関数です。
デバッグしてみよう
次は実際にデバッグで、Simutrans のゲームを確認してみましょう。
Simutrans-GDI を右クリックし、デバッグを選ぶとデバッグモードへ移行しますが、その前にソリューションプラットフォームで構成を設定しておきます。
x64
とx86
の 2 つが設定されていますが、これをvcpkg
のインストールで使用した bat ファイルと同じ構成を設定します。
ここで違うの方の設定を選ぶと、構成が合わずにビルドが成功しませんので注意な点です。
ローカルWindowsデバッガー
をクリックするとデバッグのためのビルドが始まります。
ただし、このデバックはこのような警告画面が表示され失敗になります。
これは設定などが間違えているというよりかは、ゲームを起動させるために必要なファイルが存在しないためエラーが発生するため表示されるものです。
なので、ゲームに必要なファイルなどを用意していきましょう。
Simutrans.sln
が存在するフォルダに、simutrans
フォルダが存在しその中に最新のゲームの基本設定ファイルが存在します。
ai,config,font,music,script,text,themes などを、build
フォルダのGDI
フォルダ内へコピペします。
それらのフォルダをコピペできたら、次はゲームの車両モデルなどが入っているpak
を同じGDI
フォルダへコピペします。
今回は、前にダウンロードしたpak.nippon
の Pak をコピペします。
これでデバッグの用意が完了しました。
ローカルWindowsデバッガー
を再度クリックし、ゲームが起動するか確認しましょう。
テレー
お疲れ様でした!
Discussion