このディレクトリは、Simutrans プロジェクトの技術ドキュメント(日本語)をまとめたトップページです。詳細な一覧は全ページ索引に集約しました。カテゴリ別の入口のみを簡潔に掲載します。
対象読者:
docs/ALL_PAGES.mddocs/guides/README.mddocs/architecture/README.mddocs/systems/README.mdREADME はカテゴリの入口のみを提供し、詳細は ALL_PAGES.md に集約しました。新しいドキュメントを追加した際は、カテゴリ側 README と索引の両方にリンクを追加してください。
→ guides/DEVELOPMENT_SETUP.md または guides/DOCKER_BUILD.md
→ architecture/FEATURES.md で該当システムを確認
→ architecture/TECHNICAL_ARCHITECTURE.md でコンポーネント構造を理解
→ systems/NETTOOL.md でサーバー制御を学習
→ systems/MAKEOBJ.md で makeobj ツールを学習
→ systems/SCENARIO.md でシナリオシステムを理解
→ systems/STEAM_WORKSHOP.md で Workshop 統合を学習
docker-compose run --rm simutrans-build docker-build.sh make
# ドキュメントを読む
cd docs
# guides/PROJECT_OVERVIEW.md → guides/DEVELOPMENT_SETUP.md → architecture/TECHNICAL_ARCHITECTURE.md
# 環境を構築
# Windows: Visual Studio を使うか MSYS2 を使う
# Linux/Mac: 通常の make/CMake を使う
# Docker: docker-compose を使う(推奨)
# コードを読む
cd ../src/simutrans
# デバッガでステップ実行しながら理解を深める
基礎理解(1〜2 週間)
コア機能の理解(2〜4 週間)
simworld.cc)display.cc)simobj.cc)特定システムの深掘り(1〜2 ヶ月)
実践貢献(継続的)
デバッガを活用する Visual Studio、VS Code、GDB などでブレークポイントを設定し、ステップ実行しながら理解を深めましょう。
ディレクトリごとに分割して理解する
一度に全てを理解しようとせず、興味のあるディレクトリ(例:vehicle/)から始めましょう。
データ構造を可視化する
simworld.h、simobj.h、vehicle.h などの主要ヘッダーファイルでクラス構造を確認しましょう。
ゲームをプレイしながらコードを読む 実際のゲーム内動作と対応するコードを関連付けると理解が深まります。
フォーラムで質問する わからないことがあれば、Simutrans Forum で質問しましょう。
simutrans/
├── src/ # ソースコード(C++)
│ ├── simutrans/ # メインシミュレーションコード
│ ├── makeobj/ # Pak 作成ツール
│ ├── nettool/ # ネットワークツール
│ └── squirrel/ # スクリプトエンジン(Squirrel)
├── simutrans/ # ゲームデータ(テキスト、スクリプト)
├── cmake/ # CMake ビルド設定
├── docs/ # 日本語ドキュメント(このディレクトリ)
└── documentation/ # 英語ドキュメント
詳細は PROJECT_OVERVIEW.md を参照してください。
documentation/coding_styles.txt)# ビルド
make clean && make
# テスト実行
./build/default/simutrans/simutrans
# パッチファイルを作成
git diff > my_changes.patch
A: PROJECT_OVERVIEW.mdを読んで全体像を把握し、DEVELOPMENT_SETUP.mdで環境を構築してください。
A: TECHNICAL_ARCHITECTURE.mdでアーキテクチャを理解し、興味のあるコンポーネント(例:vehicle/、gui/)から始めてください。
A: DEPENDENCIES.mdのトラブルシューティングセクションを確認するか、フォーラムで質問してください。
A: Simutrans プロジェクトは Pull Request を使用していません。パッチファイル(.patch)を作成して、フォーラムに投稿してください。
A: GitHub で Issue を作成するか、フォーラムで報告してください。
Happy Coding! 🚂