TIC-80 は、無料でオープンソースな架空のレトロゲーム機です。Windows,Mac,Linux,Android,ラズパイなどで動作します。詳細は まとめページ から。
自分でビルドしてみたい!
せっかくのオープンソースですから、自分でも少し改造してみたいですよね。またダウンロードできる最新版は少し古いようなので、最新のバージョンを試せたら嬉しいですよね。
※ README によると、自分でビルドすればフリーでもプロ機能が使えるよ!だそうです
ということで、TIC-80 リポジトリの build-instructions の (簡単すぎる) 指示を参考に、Visual Studio 2015 (VS2015) でビルドを試してみました。
Windows 10 64bit 日本語環境で実行しています。
ソースファイルのダウンロード
github TIC-80 にアクセスし、右上の
からダウンロードした TIC-80-master.zip ファイルを作業用のフォルダに解凍します。
VS2015 のインストール
MS の ダウンロードページ (かなり下の「以前のバージョン」リンク) から、VS2015 Community 版をダウンロードします。Visual Studio Dev Essentials (無料) に参加する必要がありました。
オプションは特に変えずそのままでインストールしました。
Windows 10 環境だからでしょうか?既に VS2017 をインストール済みだからでしょうか?謎のエラーが発生しておりますが…
とりあえずインストールはでき、いまのところ特に利用上の問題は起きていません。
プロジェクトを開く
「ファイル」メニューの「開く」から「プロジェクト/ソリューション」を選択します。
ファイル選択画面になりますので、README に従って、build/windows/tic/tic.sln ファイルを指定します。
足りない機能があるようで、自動で追加してくれます。
VS2015 をいったん終了して、インストール完了を待ちましょう。
インストール完了後、VS2015 を起動して、もう一度プロジェクトを開きます。
SDL2関連でエラーが発生していますね。それ以外はうまく読み込めたようです。
不足しているファイルを追加する
まずは SDL2 で発生しているエラーに対応しましょう。
SDL2 の設定ファイルは 3rd-party/SDL2-2.0.7/VisualC/SDL/SDL.vcxproj と表示されていますが、実際のフォルダをみると…
驚いたことに 3rd-party フォルダが空っぽです。これでは困るので、独立してるっぽい 3rd-party リポジトリから、同様に ZIP ファイルをダウンロードして 3rd-party フォルダに解凍します。
プロジェクトの再読み込みを実施すると、エラーが消えました。
ビルドしてみる
さあ、いよいよビルドを実施します。
と、以下のようなエラーになりました。警告はともかく、ソースファイルが不足しているのは問題ですね。
で、さきほどの 3rd-party フォルダを確認すると、原因がわかります。エラーの対象となっているのは "zlib-1.2.8" フォルダなのですが、実際にあるのは "zlib-1.2.11" なんです。バージョン違いですね。
ここは手抜きをして、"zlib-1.2.11" フォルダを "zlib-1.2.8" にリネームして先に進むことにします。マイナー番号違いなので機能削除はないことを期待しましょう。
ビルドしてみる (2回目)
さて、ビルドを実施すると… まだエラーが発生しています。
fennel って何でしょうね?ソースコードのほうを見ると、ビルド時にオプション指定されていますが…
あ!思い出した!Lua の代わりに使用できる、JavaScript などと同じ言語だ!うーん、私は使わないので外したい気も… まあ、でもできるだけ頑張ってみましょう。
ファイルを探すと、3rd-party フォルダにありました。これがインクルードパスに含まれていないのが問題かな?
tic80 のプロパティを見ると、確かに抜けている気がします。
他のフォルダと同様に追加してあげます。
さあ、これでどうでしょうか?
ビルドしてみる (3回目)
さて、3度目の正直です、ビルドしてみましょう。
キター!ビルド (実際にはリビルド) が無事に成功しました!
実行してみる
さて、出力先のフォルダを見ると… あります!
tic.exe かと思ったら tic80.exe ってファイル名ですが。
さっそく実行してみましょう!
おおお、バージョン表記が違う!新しい!ちゃんとこれ、開発版をビルドできていますね。
よかったよかった。
ソースコードを読んだり、ちょっと改造したりするのはまた別の機会に!
ではでは。
追記 (2018/08/05)
生成された exe ファイルが tic80.exe
だったのは、メインの tic プロジェクトのリンカー設定で出力ファイル名のルールとして明示されていたから、でした。
TIC-80 に興味をもったら
無料でオープンソースな架空のレトロゲーム機「TIC-80」に関するまとめ ページを参考にしてみてください。
ではでは。