無料でオープンソースな架空のレトロゲーム機「TIC-80」に関するまとめ

# TIC-80 とは？

TIC-80 は、[無料でオープンソースな架空のレトロゲーム機](http://tkitao.hatenablog.com/entry/2017/11/19/135714) です。Windows,Mac,Linux,Android,ラズパイなどで動作します。ダウンロードは [こちら](https://tic.computer/create) から。

最初は [TIC-80で簡単なプログラムを作ってみる](http://ttripper.blogspot.com/2017/11/tic-80.html) のページを参照するのがお勧めです。重要なことはほぼここにまとまっています。

興味がある方は以下のリンクも参照してみてください。

* [TIC-80 API一覧](http://tkitao.hatenablog.com/entry/2017/12/18/220749)
* [公式ページ (英語)](https://tic.computer/)
* [公式 wiki (英語)](https://github.com/nesbox/TIC-80/wiki)

今後、何かお勧めのコンテンツを見つけたらこの投稿に追記していきますね。興味がありましたらブックマークいただけると嬉しいです。

# TIC-80 の概要

[GitHub リポジトリ](https://github.com/nesbox/TIC-80) にある README の最初の部分だけ訳しておきます。

## About

TIC-80 は、小さなゲームを作ったり、プレイしたり、共有したりするための無料のオープンソースのファンタジーコンピュータです。

TIC-80 には、コード、スプライト、マップ、サウンドエディタ、コマンドラインなど、ミニレトロゲームを作成するのに十分な開発ツールが組み込まれています。

ゲームは簡単に配布できるカートリッジ・ファイルにまとめられています。TIC-80 は一般的なプラットフォームで動作します。つまり、カートリッジはどのデバイスでも再生できます。

レトロなスタイルのゲームを作成する際、いくつかの技術的な制限の下で、作成から実行までの全プロセスが実施されます: 240x136 ピクセル表示、16色パレット、256 8x8 カラースプライト、4チャンネルサウンド など

![TIC-80 demo](https://user-images.githubusercontent.com/1101448/29687467-3ddc432e-8925-11e7-8156-5cec3700cc04.gif)

## Features

* 複数のプログラミング言語: Lua、Moonscript、Javascript、Wren、Fennel
* ゲームはマウスとキーボードで操作できます
* ゲームは最大4つのコントローラをサポートできます
* 内蔵エディタ: コード、スプライト、ワールドマップ、効果音、音楽
* 追加メモリバンク: ゲームの実行中にカートリッジと異なるアセットを読み込む

## Pro Version

TIC-80 の開発をサポートするため、我々は [PRO バージョン](https://nesbox.itch.io/tic) を用意しています。このバージョンにはいくつかの追加機能があり、[Itch.io ページ](https://nesbox.itch.io/tic) でのみダウンロードできます。

### Pro features

* カートリッジをテキスト形式でセーブ/ロードし、任意のエディタでゲームを作成できます。バージョン管理システムにも便利です。
* さらに多くのメモリバンク: 1つしかないメモリバンクが8に増えます。
* 編集者なしでゲームを書き出して、アプリストアに公開できます。(開発中)

# まず覚えること

## 基本的なキー操作

最も大事なのは **ESC キー** で、これで最初のコンソール画面に戻ってこられます。

ゲームなどで操作する際、ゲームパッドなどが繋がっていればそれで操作できます。キーボードで操作する場合は、矢印キーで上下左右を操作し、Aボタンは **z キー** 、Bボタンは **x キー** が該当します。

実際に試したい場合は [btn関数の説明ページ](https://github.com/nesbox/TIC-80/wiki/btn) にあるサンプルを実行してみるのも良いでしょう。

![btn関数 デモ](https://camo.githubusercontent.com/8bd1b761f72914841226260641f82068ef99a411/68747470733a2f2f696d6775722e636f6d2f6a4b65503168342e676966)

## カートリッジの保存場所

[作ってみる](http://ttripper.blogspot.com/2017/11/tic-80.html) にも説明がありますが、TIC-80 がデータ(カートリッジ)を保存する場所を知っておくのが重要です。

Windows の場合、ユーザー領域内の `AppData/Roaming/com.nesbox.tic/TIC-80` フォルダにデータが格納されます。例えば私の場合はログオン名が `z` なので以下になります。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/ff69d725-0920-ed78-64d0-5e3ac40c6448.png)

[Playサイト](https://tic.computer/play) などからダウンロードしたカートリッジは、このフォルダに保存しましょう。

なおファイル名ですが、後で紹介する surf コマンドを使えば、いちいち入力する必要がありません。自分でわかりやすい名前をつけておくことをお勧めします。

## demo と surf コマンド

起動したばかりのコンソール画面で、まず demo コマンドを実行しましょう。すると上記のカートリッジ保存場所に、幾つかのデモ用カートリッジがコピーされます。

次に surf と入力することで、カートリッジの一覧が表示され、Aボタン(zキー)で簡単にカートリッジを実行できます。それぞれのデモを試してみましょう。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/193519/8e074377-bfd2-4191-d458-bb5c7c4e9fcc.png)

## セーブを忘れない

何かサンプルコードを入力したり、ゲームを改造したり、もし自分で何か作業をしたのなら、それを残しておきたいですよね。TIC-80 を終了すると消えてしまうので、save コマンドで、自分の作業内容を適当な名前で保存しておきましょう。

```
save test001
```

のような感じで。次回、TIC-80 を起動したら

```
load test001
```

で save した時の状態に戻せます。

# まずは親しもう

というわけで、以下の流れで楽しんでみましょう。

1. [Playサイト](https://tic.computer/play) で気になるカートリッジがあったら、それを上記の保存場所にダウンロードする
2. TIC-80 を起動し、surf コマンドを入力
3. カートリッジの内容を楽しむ
4. ESCキーでコンソールに戻る、もしくはTIC-80を終了する

このカートリッジはどんな仕組みで動いているのかな？と思ったら、F2～F5 で起動する各種エディタを使って中身をみていきましょう。

誰かの作ったゲームで遊び、気に入ったらちょっとそれを改造してみる。難しいゲームでは、残機を増やしてみたりして。それがトラディショナルな、そしてちょっと昭和の香りのする、コンピューター学習の理想的な第一歩だったりします。

# 関連コンテンツ

他にも TIC-80 に関するネタを投稿していますので、興味があればどーぞ！

* [TIC-80 初心者講座: config コマンドで設定を変更してみよう](https://qiita.com/yamachan360/items/e300177d06a5beddd927)
* [TIC-80 初心者講座: マップ・スプライト画像を画像ソフトで描いて取り込もう](https://qiita.com/yamachan360/items/a3bdb1fd7ff41291a272)
* [TIC-80 ver 0.70.0 を Windows10 + VS2015 環境でビルドしてみた](https://qiita.com/yamachan360/items/fa78708ab8d9c9aba370)