You are an expert mobile game developer and build engineer. Your task: produce a COMPLETE, runnable, **Godot 4 (v4.2.x)** 3D mobile project (MVP) implementing a regional airport-tycoon simulation called "Airfield Architect" (placeholder name). The output must be a single ZIP archive encoded in BASE64 and nothing else (see final OUTPUT FORMAT section). Build a working prototype — not just a design doc. Prioritize working systems and optimization for mobile.
Browse files---- COPYRIGHT & ORIGINALITY RULES (MANDATORY) ----
1. Do NOT copy or reference any copyrighted art, UI, text, names, screenshots or unique mechanics from Airport Master or any other existing commercial game.
2. All assets (models, textures, icons) must be ORIGINAL placeholders. Valid placeholders include single-color PNGs, procedurally generated meshes, or simple low-poly glTF files created by the model. Filenames must NOT contain names from other games or publishers.
3. Any visual or mechanical inspiration is allowed, but rename everything (e.g., “plane_regional_v1.glb”, “terminal_modular.glb”, events must have original names).
4. The project must be safe to publish (no infringing content).
---- HIGH-LEVEL REQUIREMENT ----
Produce a Godot 4 project folder implementing:
- A playable 3D MVP (Plan + Execute sessions, flight scheduling, airport buildings, 4 plane classes, 8+ random events, resource & progression system).
- Stylized **3D shader** (Godot shader) that gives a flat/cel + rim look and optional outline; mobile-optimized.
- Placeholder 3D models (glTF .glb) for all required objects (valid small files).
- Ads stub & integration instructions for AdMob.
- Full README with export steps for Android and how to replace placeholders with real assets.
---- DELIVERABLES (FILES & STRUCTURE) ----
The ZIP must contain this exact folder structure and files (all present and valid):
/project.godot
/icon.png # 256x256 valid PNG placeholder
/export_presets.cfg # Android export preset placeholder with keystore placeholders
/README_RUN_AND_EXPORT.md
/src/main.tscn
/src/main.gd
/src/scenes/airfield.tscn
/src/scenes/airfield.gd
/src/scenes/hangar.tscn
/src/scenes/hangar.gd
/src/scenes/terminal.tscn
/src/scenes/terminal.gd
/src/scenes/runway_segment.tscn
/src/scenes/runway_segment.gd
/src/scenes/plane_regional.tscn
/src/scenes/plane_regional.gd
/src/scenes/plane_light.tscn
/src/scenes/plane_light.gd
/src/scenes/vehicle_tug.tscn
/src/scenes/vehicle_tug.gd
/src/ui/main_ui.tscn
/src/ui/main_ui.gd
/src/ui/session_end_popup.tscn
/src/ui/session_end_popup.gd
/src/ui/schedule_panel.tscn
/src/ui/schedule_panel.gd
/src/systems/economy.gd
/src/systems/scheduling.gd
/src/systems/flight_manager.gd
/src/systems/event_system.gd
/src/systems/progression.gd
/src/systems/save_system.gd
/src/systems/ads_stub.gd
/src/shaders/stylized_toony.shader # Godot shader file
/assets/models/*.glb # valid minimal glTFs (see list below)
/assets/textures/*.png
/assets/ui/*.png
/assets/sfx/click.wav
/assets/sfx/plane_takeoff.wav
/assets/music/loop.ogg
/android/AndroidManifest_additions.txt
/android/build_gradle_notes.txt
/tests/basic_playflow_test.txt
---- CORE GAME SYSTEMS (FUNCTIONAL REQUIREMENTS) ----
Implement the following working systems in typed GDScript (Godot 4 style). Each script must be commented and use clear function names.
1) Session Loop
- Two phases per play session:
- PLAN phase (1–3 minutes): player can place/upgrade buildings, assign planes to schedule slots, purchase fuel, assign staff.
- EXECUTE phase (2–5 minutes): the scheduled flights run; each flight takes simulated time based on plane class and runway availability; outcomes produce income, reputation change and fuel consumption.
- Session timer visible and configurable (session length 4–8 minutes default).
2) Resources
- Money (int)
- Fuel (int)
- Reputation (float or int)
- CrewEnergy (int) - actions cost energy; energy refills slowly over time and via rewarded ad.
3) Buildings (at least these 6 with 3 upgrade levels each)
- Terminal (affects passenger throughput)
- Hangar (reduces maintenance time)
- FuelDepot (reduces fuel cost/time)
- ControlTower (reduces flight delays)
- CargoShed (unlocks cargo flights)
- RunwayExtension (allows larger planes)
Implement build cost, upgrade cost, and per-level numeric effects. Buildings placed on a simple grid (6x4 clickable cells). Provide simple placement validation.
4) Planes / Fleet
- 4 plane classes with different stats:
- Light (small): low capacity, low fuel, fast turnaround
- Regional: medium capacity/fuel
- Medium: larger capacity, higher fuel/time
- Cargo: cargo-only flights with different income metrics
- Planes should be represented as separate Scene files (plane_*.tscn) with simple animations (move along path) and a script to simulate takeoff/landing timing.
5) Scheduling UI
- A schedule panel allowing the player to add flights into N available slots per session (e.g., up to 6). Each flight uses a selected plane, runway slot, and target route (simulated).
- During EXECUTE, show active flights with status (taxi, takeoff, in-air, landing, completed). Flights affect resources.
6) Event System
- At least 8 random events (unique names; examples allowed but rename): WeatherStorm, MaintenanceDelay, VIPVisit, FuelShortage, CrewStrike, DivertedFlight, CargoRush, RunwayInspection.
- Each event pauses EXECUTE, opens a UI popup with 2–3 choices. Choices have deterministic outcomes that update resources. Events should have probability weighting and escalate with session count or reputation.
7) Progression & Save
- XP or session_count based unlocks for buildings/plane types.
- Save/load using Godot `File` API to user://airfield_save.json in JSON format. Save player resources, buildings, plane inventory, session progress.
8) UI
- Top bar showing Money, Fuel, Reputation, CrewEnergy, Session Timer.
- Build button opens build palette.
- Schedule button opens schedule_panel.
- Session end popup shows income, reputation change and a "Watch to DOUBLE" button that uses ads_stub.gd.
9) Ads Stub & Integration
- ads_stub.gd must contain `func play_rewarded_ad(reward_type:String, callback:Callable) -> void` which simulates a 5-second ad and then calls `callback.call(true)`.
- Provide `/android/AndroidManifest_additions.txt` and `/android/build_gradle_notes.txt` describing exact steps for AdMob plugin integration and required manifest entries (example snippets, not copyrighted).
- The README must explain how to replace the stub with the real AdMob plugin and where to hook callbacks.
10) Stylized 3D Shader
- Provide stylized_toony.shader implementing:
- flat / cel shading with 2 light steps (hard threshold)
- rim light (Fresnel-based) with adjustable color & intensity
- optional simple outline (in-shader if possible), or provide instructions to enable an inverted-hull mesh or post-process outline
- Shader must expose parameters (light_threshold, rim_strength, rim_color, base_albedo_texture) editable in inspector.
- Provide instructions on applying shader to materials and preferred settings for mobile.
11) Camera & Lighting
- Top-down isometric perspective (slightly overhead) camera with these baseline values:
- Position: (0, 28, -34)
- Look-at center (0,0,0)
- FOV: 45
- Directional light with soft ambient + low-intensity shadows. Include a small fake projected shadow (blob) script for characters/planes for extra readability.
12) Optimization & Mobile Settings
- Use low-poly assets, small texture sizes (512/1024), and Godot LOD or simple mesh simplifications.
- Limit real-time lights (1 directional); avoid costly per-pixel lighting or large shadowmaps.
- Provide an export_presets.cfg with Android export placeholders and note to install export templates.
---- ART & ASSET RULES (PLACEHOLDERS YOU MUST CREATE) ----
All assets may be minimal but valid. The model must include small functioning files.
Minimal asset list (place in /assets/models and referenced from scenes):
- plane_regional_v1.glb (valid tiny glTF)
- plane_light_v1.glb
- plane_medium_v1.glb
- plane_cargo_v1.glb
- terminal_modular_01.glb
- hangar_01.glb
- runway_segment.glb
- tug_vehicle.glb
- passenger_stick_01.glb (4 variations passenger_stick_01..04.glb)
- staff_stick_01.glb (2 variations)
Textures:
- ui_icon_money.png (64x64)
- ui_icon_fuel.png
- ui_icon_rep.png
- placeholder ground tile PNG (512x512)
Audio:
- sfx_click.wav (short)
- sfx_plane_takeoff.wav (short)
- loop_music.ogg (very small loop)
NOTE: these may be single-color simple models to pass validation — but must be valid and referenced by scenes.
---- ART GENERATION PROMPTS (for external artist/3D-AI) ----
Include 8 concise copy-paste prompts (one per key model) to hand to an artist or 3D-AI generator to produce original low-poly glTF models. Each prompt must forbid logos, trademarked shapes, and instruct file format glTF 2.0 (.glb), polycount, texture sizes, and naming. (Model must include those prompts inside the README.)
Example single model prompt (the project should include full list in README):
"Create a low-poly stylized regional airplane glTF (.glb). Triangles: ~4000 ±1000. Textures: Albedo 1024x1024 only (no logos). Separate meshes for fuselage, wings, landing gear. Export as plane_regional_v1.glb. Provide thumbnail renders."
---- EXPORT & BUILD README (README_RUN_AND_EXPORT.md must include) ----
- Step-by-step: how to open project in Godot 4.2.x, run main scene, create keystore (keytool command), install Android export templates, set export preset fields, export APK.
- How to create Google Play keystore and sign APK/AAB.
- AdMob plugin replacement instructions: exact manifest entries, gradle dependency notes (example dependency lines), and where to attach the real rewarded-ad callbacks instead of ads_stub.
- How to replace placeholder assets and reassign materials/shaders.
- A troubleshooting section for common Godot 4 mobile issues.
---- TESTS (basic_playflow_test.txt) ----
Provide a text file that lists manual test steps to verify:
1. Start PLAN phase, place a building, purchase upgrade, then start EXECUTE phase.
2. Schedule at least one flight and verify it runs through status states.
3. Trigg