|
1 | | -## Siv3D Template |
| 1 | +## Siv3D テンプレート |
2 | 2 |
|
3 | | -This repository is a Linux-first Siv3D template built around a reusable base image. |
| 3 | +このリポジトリは、再利用可能な base image を中心にした Linux 向け Siv3D テンプレートです。 |
4 | 4 |
|
5 | | -### What it gives you |
| 5 | +### できること |
6 | 6 |
|
7 | | -- A root-level CMake project for your game code |
8 | | -- A published Siv3D base image at `ghcr.io/n4mlz/siv3d-docker-base` |
9 | | -- A devcontainer that reuses that image instead of rebuilding Siv3D on open |
10 | | -- A `docker compose` path for Linux GUI development with host display forwarding |
| 7 | +- ルート直下の CMake プロジェクトでゲームコードを置ける |
| 8 | +- `ghcr.io/n4mlz/siv3d-docker-base` に公開される Siv3D base image を使える |
| 9 | +- devcontainer で Siv3D の再ビルドなしにすぐ開発を始められる |
| 10 | +- `docker compose` でホストの GUI に接続して Linux 上で実行できる |
| 11 | +- `ccache` と build 用 volume で再ビルドを高速化できる |
| 12 | +- GitHub Actions から base image を自動公開できる |
11 | 13 |
|
12 | | -### Local development |
| 14 | +### 使い方 |
13 | 15 |
|
14 | | -Open the repository in devcontainer or start the compose service: |
| 16 | +#### 1. devcontainer で開く |
| 17 | + |
| 18 | +VS Code などで devcontainer を開くと、公開済みの base image をそのまま利用します。 |
| 19 | + |
| 20 | +#### 2. compose で起動する |
15 | 21 |
|
16 | 22 | ```bash |
17 | 23 | docker compose up -d |
18 | 24 | docker compose exec siv3d-app bash |
19 | 25 | ``` |
20 | 26 |
|
21 | | -Build the template game from the repository root: |
| 27 | +#### 3. プロジェクトをビルドする |
| 28 | + |
| 29 | +コンテナ内またはローカルの Linux 環境で、リポジトリのルートからビルドします。 |
22 | 30 |
|
23 | 31 | ```bash |
24 | 32 | cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=Debug |
25 | 33 | cmake --build build |
26 | 34 | ``` |
27 | 35 |
|
28 | | -Run the smoke test binary: |
| 36 | +#### 4. 実行する |
29 | 37 |
|
30 | 38 | ```bash |
31 | 39 | ./build/Siv3DTemplate |
32 | 40 | ``` |
33 | 41 |
|
| 42 | +### 主な feature |
| 43 | + |
| 44 | +- **Siv3D base image の分離**: 重い Siv3D ビルドを `docker/base/Dockerfile` に集約 |
| 45 | +- **高速な再ビルド**: `ccache` と named volume でゲーム側の再ビルドを短縮 |
| 46 | +- **Linux GUI 対応**: X11 をホストにバイパスして描画可能 |
| 47 | +- **devcontainer 対応**: そのまま開いて開発を始められる |
| 48 | +- **GitHub Actions 対応**: `main` への push などで GHCR に公開 |
| 49 | +- **テンプレート向け構成**: `src/Main.cpp` だけを触ればゲームの起点になる |
| 50 | + |
34 | 51 | ### GitHub Actions |
35 | 52 |
|
36 | | -The base image is built from `docker/base/Dockerfile` and published to GHCR by `.github/workflows/publish-base-image.yml`. |
| 53 | +`docker/base/Dockerfile` から base image をビルドし、`.github/workflows/publish-base-image.yml` から GHCR に公開します。 |
37 | 54 |
|
38 | | -The workflow publishes `latest` and commit/tag-based image tags so the devcontainer and compose setup can stay fast and reproducible. |
| 55 | +`latest` と commit/tag ベースのタグを付けるので、devcontainer と compose の両方で安定して利用できます。 |
39 | 56 |
|
40 | | -### Project layout |
| 57 | +### ファイル構成 |
41 | 58 |
|
42 | | -- `CMakeLists.txt`: root template project |
43 | | -- `src/Main.cpp`: graphical smoke test |
44 | | -- `docker/base/Dockerfile`: Siv3D base image build |
45 | | -- `.devcontainer/devcontainer.json`: containerized editor setup |
46 | | -- `compose.yml`: local runtime entrypoint |
| 59 | +- `CMakeLists.txt`: ルートの CMake 定義 |
| 60 | +- `src/Main.cpp`: グラフィカルな最小サンプル |
| 61 | +- `docker/base/Dockerfile`: Siv3D base image のビルド定義 |
| 62 | +- `.devcontainer/devcontainer.json`: devcontainer 設定 |
| 63 | +- `compose.yml`: ローカル実行用の compose 定義 |
| 64 | +- `.github/workflows/publish-base-image.yml`: GHCR への公開 workflow |
0 commit comments