最終確認日
Godotのプロジェクト「OpenRTS」の中身をのぞいてみよう
Godot v4 で作られたリアルタイムストラテジーゲームのオープンソース。
情報
- Godot v4.3
ディレクトリ構造
tree -L 3 の結果。
.
├── CHANGELOG.md
├── LICENSE
├── LOGO_LICENSES.md
├── README.md
├── assets
│   ├── logos
│   │   ├── LOGO_LICENSES.md
│   │   ├── godot_logo_vertical_monochrome_dark_312x357.png
│   │   ├── godot_logo_vertical_monochrome_dark_312x357.png.import
│   │   ├── lampe_games_white.svg
│   │   └── lampe_games_white.svg.import
│   ├── models
│   │   ├── kenney-spacekit
│   │   └── primitives
│   ├── translations
│   │   ├── main_menu.csv
│   │   ├── main_menu.csv.import
│   │   ├── match.csv
│   │   └── match.csv.import
│   ├── ui
│   │   ├── background.png
│   │   ├── background.png.import
│   │   ├── icons
│   │   └── kenney-crosshairs
│   └── voice
│       └── english
├── build
├── export_presets.cfg
├── icon.svg
├── icon.svg.import
├── makefile
├── media
│   ├── banner_1400x650.png
│   ├── logo.kra
│   ├── logo_650x150.png
│   └── screenshots
│       ├── screenshot_1400x650.png
│       ├── screenshot_2_1920x1080.png
│       ├── screenshot_3_1920x1080.png
│       └── screenshot_4_1920x1080.png
├── project.godot
├── source
│   ├── Constants.gd
│   ├── FeatureFlags.gd
│   ├── FeatureFlags.tscn
│   ├── Globals.gd
│   ├── Logos.gd
│   ├── Logos.tscn
│   ├── Main.gd
│   ├── Main.tscn
│   ├── Signals.gd
│   ├── Utils.gd
│   ├── data-model
│   │   ├── MatchSettings.gd
│   │   ├── Options.gd
│   │   └── PlayerSettings.gd
│   ├── generic-scenes-and-nodes
│   │   ├── 2d
│   │   ├── 3d
│   │   └── control
│   ├── main-menu
│   │   ├── Background.tscn
│   │   ├── Credits.gd
│   │   ├── Credits.tscn
│   │   ├── Loading.gd
│   │   ├── Loading.tscn
│   │   ├── Main.gd
│   │   ├── Main.tscn
│   │   ├── Options.gd
│   │   ├── Options.tscn
│   │   ├── Play.gd
│   │   └── Play.tscn
│   ├── match
│   │   ├── AirNavigation.gd
│   │   ├── FogOfWar.gd
│   │   ├── IsometricCamera3D.gd
│   │   ├── Map.gd
│   │   ├── Map.tscn
│   │   ├── Match.gd
│   │   ├── Match.tscn
│   │   ├── MatchConstants.gd
│   │   ├── MatchSignals.gd
│   │   ├── MatchUtils.gd
│   │   ├── Menu.gd
│   │   ├── Menu.tscn
│   │   ├── Navigation.gd
│   │   ├── Terrain.gd
│   │   ├── TerrainNavigation.gd
│   │   ├── debug
│   │   ├── decorations
│   │   ├── handlers
│   │   ├── hud
│   │   ├── maps
│   │   ├── players
│   │   ├── resources
│   │   ├── units
│   │   └── utils
│   ├── resources
│   │   └── main_menu.theme
│   ├── shaders
│   │   ├── 2d
│   │   └── 3d
│   └── utils
│       ├── IconOverview.tscn
│       ├── IconRenderBooth.gd
│       ├── IconRenderBooth.tscn
│       └── Set.gd
└── tests
    └── manual
        ├── Match.gd
        ├── TestAllUnits.tscn
        ├── TestNonQuadraticMap.tscn
        ├── TestOneUnit.tscn
        ├── TestPlayerVsAI.tscn
        ├── TestUnitsFightingEachOther.tscn
        └── maps
動かしてみる
v4.4 で動かしてみる。
Main.tscn ではロゴを表示してメニュー画面に移動している。
@onready var _logos = find_child("Logos")
func _ready():
    _logos.tree_exited.connect(
        get_tree().change_scene_to_file.bind("res://source/main-menu/Main.tscn")
    )ロゴを表示した後にメニュー画面が開く
どうやって遷移した?
-> get_tree().change_scene_to_file.bind("res://source/main-menu/Main.tscn") でちがう Main.tscn を開いているのか。
Logos.gd を見てみる。
extends Control
@onready var _animation_player = find_child("AnimationPlayer")
func _ready():
    if not FeatureFlags.show_logos_on_startup:
        queue_free()
        return
    _animation_player.animation_finished.connect(func(_animation_name): queue_free())
    _animation_player.play("animate_logos")気になったこと
- プロジェクトのGodotバージョンはどこ見ればわかる?- project.godotの冒頭のコメントに書いてあることが多い- が、これには書いていない。
 
- project.godot内の- config/features=PackedStringArray("4.4", "Forward Plus")が 4.4 で保存されたことを示唆している
 
- このプロジェクトは全画面で起動する- res://source/data-model/Options.gdに書いてある
 
- 画面ごとに Main.tscnがそれぞれ生えている。- Options.gdも。
 
- Godotでの画面遷移の仕方を調査する
Options.gd
      func _apply_screen():
    DisplayServer.window_set_mode(
        (
            DisplayServer.WINDOW_MODE_FULLSCREEN
            if screen == Screen.FULL
            else DisplayServer.WINDOW_MODE_WINDOWED
        )
    )
公開日
更新日
