chore: commit untracked UE/scaffold files (repo cleanup triage 20260707)

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Dubai Metaverse Team
2026-07-07 03:43:19 -07:00
parent b9c4978802
commit 9629838469
147 changed files with 26523 additions and 0 deletions

View File

@@ -0,0 +1,308 @@
#!/bin/bash
#
# Script Name: configure_project_settings.sh
# Description: Configure all Unreal Engine project settings (Nanite, Lumen, World Partition, Plugins)
# Usage: ./configure_project_settings.sh
# Author: Dubai Metaverse Team
# Date: 2025-11-21
# Version: 1.0
set -euo pipefail
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
# Configuration
PROJECT_DIR="${PROJECT_DIR:-$(pwd)}"
PROJECT_FILE="$PROJECT_DIR/DubaiMetaverse.uproject"
ENGINE_INI="$PROJECT_DIR/Config/DefaultEngine.ini"
GAME_INI="$PROJECT_DIR/Config/DefaultGame.ini"
LOG_FILE="$PROJECT_DIR/logs/configure_project_settings.log"
# Create log directory
mkdir -p "$(dirname "$LOG_FILE")"
log() {
local level="${1:-INFO}"
shift
local message="$*"
local timestamp=$(date +'%Y-%m-%d %H:%M:%S')
echo "[$timestamp] [$level] $message" | tee -a "$LOG_FILE"
echo -e "${message}"
}
echo "=========================================="
echo "Dubai Metaverse Project Settings Configuration"
echo "=========================================="
echo ""
cd "$PROJECT_DIR"
# Check project file exists
if [ ! -f "$PROJECT_FILE" ]; then
echo -e "${RED}${NC} Project file not found: $PROJECT_FILE"
echo " Run: ./scripts/setup/create_ue5_project.sh first"
exit 1
fi
echo -e "${GREEN}${NC} Project file found: $PROJECT_FILE"
# Backup existing config files
if [ -f "$ENGINE_INI" ]; then
cp "$ENGINE_INI" "$ENGINE_INI.backup.$(date +%Y%m%d_%H%M%S)"
echo -e "${BLUE}${NC} Backed up DefaultEngine.ini"
fi
if [ -f "$GAME_INI" ]; then
cp "$GAME_INI" "$GAME_INI.backup.$(date +%Y%m%d_%H%M%S)"
echo -e "${BLUE}${NC} Backed up DefaultGame.ini"
fi
# Create Config directory if it doesn't exist
mkdir -p "$PROJECT_DIR/Config"
echo ""
echo "=========================================="
echo "Configuring DefaultEngine.ini"
echo "=========================================="
echo ""
# Create comprehensive DefaultEngine.ini
cat > "$ENGINE_INI" << 'EOF'
; Dubai Metaverse - DefaultEngine.ini
; Configured automatically by configure_project_settings.sh
; Last Updated: 2025-11-21
[/Script/Engine.RendererSettings]
; ============================================
; NANITE SETTINGS
; ============================================
r.Nanite.ProjectEnabled=True
; ============================================
; LUMEN SETTINGS
; ============================================
r.DefaultFeature.LumenSupport=1
r.Lumen.ProjectEnabled=True
r.Lumen.DiffuseIndirect.Allow=1
r.Lumen.Reflections.Allow=1
r.Lumen.ScreenProbeGather.ScreenSpaceBentNormal=1
r.Lumen.ScreenProbeGather.TraceMeshSDFs=1
r.Lumen.ScreenProbeGather.ScreenTraces=1
; ============================================
; VIRTUAL SHADOW MAPS
; ============================================
r.Shadow.Virtual.Enable=1
r.Shadow.Virtual.OnePassProjection=1
; ============================================
; ANTI-ALIASING
; ============================================
r.DefaultFeature.AntiAliasing=2
r.TemporalAA.Quality=4
r.TemporalAA.Upsampling=1
; ============================================
; POST-PROCESS EFFECTS
; ============================================
r.DefaultFeature.AutoExposure=False
r.DefaultFeature.Bloom=True
r.DefaultFeature.MotionBlur=True
r.MotionBlurQuality=4
r.BloomQuality=4
; ============================================
; RENDERING PERFORMANCE
; ============================================
r.VirtualTextures=True
r.VirtualTextures.EnableAutoImport=True
r.VirtualTextures.Enable=1
[/Script/Engine.WorldSettings]
; ============================================
; WORLD PARTITION
; ============================================
bEnableWorldPartition=True
[/Script/Engine.Engine]
; ============================================
; PROJECT SETTINGS
; ============================================
+ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/DubaiMetaverse")
+ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/DubaiMetaverse")
+ActiveClassRedirects=(OldClassName="TP_BlankGameModeBase",NewClassName="DubaiMetaverseGameModeBase")
[/Script/EngineSettings.GameMapsSettings]
; ============================================
; DEFAULT MAPS
; ============================================
GameDefaultMap=/Game/Maps/MainLevel
EditorStartupMap=/Game/Maps/MainLevel
[/Script/WindowsTargetPlatform.WindowsTargetSettings]
; ============================================
; WINDOWS PLATFORM SETTINGS
; ============================================
DefaultGraphicsRHI=Default
+TargetedRHIs=PCD3D_SM6
+TargetedRHIs=PCD3D_SM5
[/Script/LinuxTargetPlatform.LinuxTargetSettings]
; ============================================
; LINUX PLATFORM SETTINGS
; ============================================
DefaultGraphicsRHI=Default
EOF
echo -e "${GREEN}${NC} DefaultEngine.ini configured with:"
echo " - Nanite enabled"
echo " - Lumen enabled (GI + Reflections)"
echo " - Virtual Shadow Maps enabled"
echo " - World Partition enabled"
echo " - Post-process effects configured"
echo ""
echo "=========================================="
echo "Configuring DefaultGame.ini"
echo "=========================================="
echo ""
# Create DefaultGame.ini
cat > "$GAME_INI" << 'EOF'
; Dubai Metaverse - DefaultGame.ini
; Configured automatically by configure_project_settings.sh
; Last Updated: 2025-11-21
[/Script/EngineSettings.GameMapsSettings]
; ============================================
; DEFAULT MAPS
; ============================================
GameDefaultMap=/Game/Maps/Main/MainLevel
EditorStartupMap=/Game/Maps/Main/MainLevel
GlobalDefaultGameMode=/Script/Engine.GameModeBase
[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")
[/Script/OnlineSubsystem.IpNetDriver]
NetDriverClassName="OnlineSubsystemUtils.IpNetDriver"
EOF
echo -e "${GREEN}${NC} DefaultGame.ini configured"
echo ""
echo "=========================================="
echo "Verifying Plugins in Project File"
echo "=========================================="
echo ""
# Check and configure plugins in project file
REQUIRED_PLUGINS=(
"ProceduralContentGeneration"
"VirtualProduction"
"MovieRenderQueue"
"ModelingTools"
"GeometryScript"
)
PLUGINS_MISSING=0
for plugin in "${REQUIRED_PLUGINS[@]}"; do
if grep -q "\"Name\": \"$plugin\"" "$PROJECT_FILE"; then
if grep -A1 "\"Name\": \"$plugin\"" "$PROJECT_FILE" | grep -q "\"Enabled\": true"; then
echo -e "${GREEN}${NC} Plugin enabled: $plugin"
else
echo -e "${YELLOW}${NC} Plugin found but not enabled: $plugin"
PLUGINS_MISSING=1
fi
else
echo -e "${RED}${NC} Plugin missing: $plugin"
PLUGINS_MISSING=1
fi
done
if [ $PLUGINS_MISSING -eq 1 ]; then
echo ""
echo -e "${YELLOW}${NC} Some plugins need to be enabled manually:"
echo " 1. Launch Unreal Editor"
echo " 2. Go to Edit > Plugins"
echo " 3. Enable the missing plugins listed above"
echo " 4. Restart editor"
else
echo ""
echo -e "${GREEN}${NC} All required plugins are enabled"
fi
echo ""
echo "=========================================="
echo "Configuration Summary"
echo "=========================================="
echo ""
# Verify settings
echo "Verifying configuration..."
NANITE_OK=0
LUMEN_OK=0
WORLDPARTITION_OK=0
if grep -q "r.Nanite.ProjectEnabled=True" "$ENGINE_INI"; then
echo -e "${GREEN}${NC} Nanite: Enabled"
NANITE_OK=1
else
echo -e "${RED}${NC} Nanite: Not configured"
fi
if grep -q "r.Lumen.ProjectEnabled=True" "$ENGINE_INI"; then
echo -e "${GREEN}${NC} Lumen: Enabled"
LUMEN_OK=1
else
echo -e "${RED}${NC} Lumen: Not configured"
fi
if grep -q "bEnableWorldPartition=True" "$ENGINE_INI"; then
echo -e "${GREEN}${NC} World Partition: Enabled"
WORLDPARTITION_OK=1
else
echo -e "${RED}${NC} World Partition: Not configured"
fi
echo ""
echo "=========================================="
echo "Next Steps"
echo "=========================================="
echo ""
if [ $NANITE_OK -eq 1 ] && [ $LUMEN_OK -eq 1 ] && [ $WORLDPARTITION_OK -eq 1 ]; then
echo -e "${GREEN}✅ All project settings configured successfully!${NC}"
echo ""
echo "Next steps:"
echo "1. Launch Unreal Editor:"
echo " ~/UnrealEngine/Engine/Binaries/Linux/UnrealEditor \\"
echo " ~/projects/metaverseDubai/DubaiMetaverse.uproject"
echo ""
echo "2. Verify settings in editor:"
echo " - Edit > Project Settings > Engine > Rendering"
echo " - Verify Nanite is enabled"
echo " - Verify Lumen (Global Illumination and Reflections) is enabled"
echo " - World Settings > Enable World Partition"
echo ""
echo "3. Verify plugins:"
echo " - Edit > Plugins"
echo " - Verify all required plugins are enabled"
echo ""
log "INFO" "Configuration complete - All settings verified"
exit 0
else
echo -e "${RED}${NC} Some settings may not be configured correctly"
echo " Please review the configuration files manually"
log "WARNING" "Configuration incomplete - Some settings missing"
exit 1
fi

View File

@@ -0,0 +1,295 @@
#!/bin/bash
#
# Script Name: create_ue5_project.sh
# Description: Create Dubai Metaverse Unreal Engine project
# Usage: ./create_ue5_project.sh [project_name]
# Author: Dubai Metaverse Team
# Date: 2024
# Version: 1.0
#
# Exit codes:
# 0: Success
# 1: General error
# 2: Invalid arguments
# 3: Missing dependencies
set -euo pipefail
# Configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
LOG_FILE="${LOG_FILE:-$PROJECT_ROOT/logs/create_project.log}"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# Logging
log() {
local level="${1:-INFO}"
shift
local message="$*"
local timestamp=$(date +'%Y-%m-%d %H:%M:%S')
echo "[$timestamp] [$level] $message" | tee -a "$LOG_FILE"
}
error_exit() {
log "ERROR" "$*"
exit 1
}
warning() {
log "WARNING" "$*"
}
success() {
log "SUCCESS" "$*"
}
# Parse arguments
PROJECT_NAME="${1:-DubaiMetaverse}"
UE_ROOT="${UE_ROOT:-$HOME/UnrealEngine}"
usage() {
cat << EOF
Usage: $0 [PROJECT_NAME]
Create Dubai Metaverse Unreal Engine project.
Arguments:
PROJECT_NAME Project name (default: DubaiMetaverse)
Environment Variables:
UE_ROOT Unreal Engine root directory (default: ~/UnrealEngine)
Examples:
$0
$0 DubaiMetaverse
UE_ROOT=/opt/UnrealEngine $0
EOF
}
# Validate prerequisites
validate_prerequisites() {
log "INFO" "Validating prerequisites..."
# Check for Unreal Engine
if [ ! -d "$UE_ROOT" ]; then
error_exit "Unreal Engine not found at: $UE_ROOT"
fi
local editor_path="$UE_ROOT/Engine/Binaries/Linux/UnrealEditor"
if [ ! -f "$editor_path" ]; then
error_exit "UnrealEditor not found at: $editor_path"
fi
log "INFO" "Using Unreal Engine: $UE_ROOT"
log "INFO" "UnrealEditor found: $editor_path"
}
# Create project file
create_project_file() {
log "INFO" "Creating project file: ${PROJECT_NAME}.uproject"
local project_file="$PROJECT_ROOT/${PROJECT_NAME}.uproject"
cat > "$project_file" << EOF
{
"FileVersion": 3,
"EngineAssociation": "5.4",
"Category": "",
"Description": "High-End Interactive Demo District of Dubai",
"Modules": [
{
"Name": "${PROJECT_NAME}",
"Type": "Runtime",
"LoadingPhase": "Default"
}
],
"Plugins": [
{
"Name": "ProceduralContentGeneration",
"Enabled": true
},
{
"Name": "VirtualProduction",
"Enabled": true
},
{
"Name": "MovieRenderQueue",
"Enabled": true
},
{
"Name": "ModelingTools",
"Enabled": true
},
{
"Name": "GeometryScript",
"Enabled": true
}
],
"TargetPlatforms": [
"Linux",
"Windows"
]
}
EOF
success "Project file created: $project_file"
}
# Create Source directory structure
create_source_structure() {
log "INFO" "Creating Source directory structure..."
mkdir -p "$PROJECT_ROOT/Source/${PROJECT_NAME}"
mkdir -p "$PROJECT_ROOT/Source/${PROJECT_NAME}/Public"
mkdir -p "$PROJECT_ROOT/Source/${PROJECT_NAME}/Private"
# Create basic module files
cat > "$PROJECT_ROOT/Source/${PROJECT_NAME}/${PROJECT_NAME}.Build.cs" << EOF
using UnrealBuildTool;
public class ${PROJECT_NAME} : ModuleRules
{
public ${PROJECT_NAME}(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
PublicDependencyModuleNames.AddRange(new string[] {
"Core",
"CoreUObject",
"Engine",
"InputCore"
});
PrivateDependencyModuleNames.AddRange(new string[] { });
}
}
EOF
cat > "$PROJECT_ROOT/Source/${PROJECT_NAME}/${PROJECT_NAME}.cpp" << EOF
#include "${PROJECT_NAME}.h"
#include "Modules/ModuleManager.h"
IMPLEMENT_PRIMARY_GAME_MODULE( FDefaultGameModuleImpl, ${PROJECT_NAME}, "${PROJECT_NAME}" );
EOF
cat > "$PROJECT_ROOT/Source/${PROJECT_NAME}/${PROJECT_NAME}.h" << EOF
#pragma once
#include "CoreMinimal.h"
EOF
success "Source directory structure created"
}
# Copy configuration files
copy_config_files() {
log "INFO" "Copying configuration files..."
mkdir -p "$PROJECT_ROOT/Config"
if [ -f "$PROJECT_ROOT/Config/DefaultEngine.ini" ]; then
cp "$PROJECT_ROOT/Config/DefaultEngine.ini" "$PROJECT_ROOT/Config/DefaultEngine.ini.backup"
log "INFO" "Backed up existing DefaultEngine.ini"
fi
if [ -f "$PROJECT_ROOT/Config/DefaultEngine.ini.template" ]; then
cp "$PROJECT_ROOT/Config/DefaultEngine.ini.template" "$PROJECT_ROOT/Config/DefaultEngine.ini"
success "Copied DefaultEngine.ini from template"
else
warning "DefaultEngine.ini.template not found, using existing or creating default"
fi
if [ -f "$PROJECT_ROOT/Config/DefaultGame.ini.template" ]; then
cp "$PROJECT_ROOT/Config/DefaultGame.ini.template" "$PROJECT_ROOT/Config/DefaultGame.ini"
success "Copied DefaultGame.ini from template"
fi
}
# Generate project files
generate_project_files() {
log "INFO" "Generating project files..."
local project_file="$PROJECT_ROOT/${PROJECT_NAME}.uproject"
if [ ! -f "$project_file" ]; then
error_exit "Project file not found: $project_file"
fi
# Use UnrealBuildTool to generate project files
local ubt_path="$UE_ROOT/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll"
if [ -f "$ubt_path" ]; then
log "INFO" "Generating project files with UnrealBuildTool..."
dotnet "$ubt_path" -projectfiles -project="$project_file" -game -rocket -progress
success "Project files generated"
else
warning "UnrealBuildTool not found, project files will be generated on first launch"
fi
}
# Create Content directory structure
create_content_structure() {
log "INFO" "Ensuring Content directory structure exists..."
# Content structure should already exist, but verify
if [ ! -d "$PROJECT_ROOT/Content" ]; then
log "INFO" "Content directory not found, creating..."
mkdir -p "$PROJECT_ROOT/Content/{Maps,Assets,Blueprints,Materials,Textures,Audio}"
fi
success "Content directory structure verified"
}
# Main function
main() {
log "INFO" "Starting create_ue5_project.sh"
# Create log directory
mkdir -p "$(dirname "$LOG_FILE")"
# Parse arguments
if [ "${1:-}" = "-h" ] || [ "${1:-}" = "--help" ]; then
usage
exit 0
fi
# Validate prerequisites
validate_prerequisites
# Create project file
create_project_file
# Create Source structure (optional, for C++ projects)
create_source_structure
# Copy configuration files
copy_config_files
# Create Content structure
create_content_structure
# Generate project files
generate_project_files
success "Project creation complete!"
log "INFO" "Project: ${PROJECT_NAME}.uproject"
log "INFO" "Location: $PROJECT_ROOT"
log "INFO" ""
log "INFO" "Next steps:"
log "INFO" "1. Launch Unreal Editor: $UE_ROOT/Engine/Binaries/Linux/UnrealEditor $PROJECT_ROOT/${PROJECT_NAME}.uproject"
log "INFO" "2. Configure project settings (Nanite, Lumen, World Partition)"
log "INFO" "3. Import geospatial data"
log "INFO" "4. Create blockout level"
}
# Run main if executed directly
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
main "$@"
fi

117
scripts/setup/master_setup.sh Executable file
View File

@@ -0,0 +1,117 @@
#!/bin/bash
# Dubai Metaverse - Master Setup Script
# Runs all setup and validation steps in sequence
set -e
echo "=========================================="
echo "Dubai Metaverse - Master Setup"
echo "=========================================="
echo ""
# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color
# Function to print status
print_status() {
if [ $1 -eq 0 ]; then
echo -e "${GREEN}${NC} $2"
else
echo -e "${RED}${NC} $2"
fi
}
# Step 1: Project Setup
echo "Step 1: Running project setup..."
./scripts/setup_project.sh
print_status $? "Project setup"
# Step 2: Script Enhancement Check
echo ""
echo "Step 2: Validating scripts..."
./scripts/enhance_scripts.sh
print_status $? "Script validation"
# Step 3: Documentation Check
echo ""
echo "Step 3: Validating documentation..."
./scripts/generate_docs.sh
print_status $? "Documentation check"
# Step 4: Full Project Validation
echo ""
echo "Step 4: Running full project validation..."
./scripts/validate_project.sh
print_status $? "Project validation"
# Step 5: Python Dependencies Check
echo ""
echo "Step 5: Checking Python dependencies..."
if python3 -c "import overpy, geojson, rasterio, numpy" 2>/dev/null; then
print_status 0 "Python dependencies"
else
print_status 1 "Python dependencies (install with: pip install -r requirements.txt)"
fi
# Step 6: Git Status
echo ""
echo "Step 6: Checking Git status..."
if [ -d ".git" ]; then
echo " Repository: Initialized"
echo " Branch: $(git branch --show-current 2>/dev/null || echo 'N/A')"
echo " Commits: $(git log --oneline | wc -l)"
print_status 0 "Git repository"
else
print_status 1 "Git repository (not initialized)"
fi
# Step 7: Git LFS Check
echo ""
echo "Step 7: Checking Git LFS..."
if command -v git-lfs &> /dev/null; then
if git lfs version &> /dev/null; then
print_status 0 "Git LFS installed"
else
print_status 1 "Git LFS installed but not working"
fi
else
print_status 1 "Git LFS not installed (install manually)"
fi
# Step 8: Directory Structure Check
echo ""
echo "Step 8: Checking directory structure..."
MISSING_DIRS=0
REQUIRED_DIRS=("docs" "TASKS" "PROGRESS_REPORTS" "scripts" "houdini" "data" "TEMPLATES" "Config" "Content")
for dir in "${REQUIRED_DIRS[@]}"; do
if [ ! -d "$dir" ]; then
echo " ⚠ Missing: $dir/"
((MISSING_DIRS++))
fi
done
if [ $MISSING_DIRS -eq 0 ]; then
print_status 0 "Directory structure"
else
print_status 1 "Directory structure ($MISSING_DIRS missing)"
fi
# Summary
echo ""
echo "=========================================="
echo "Master Setup Complete"
echo "=========================================="
echo ""
echo "Next Steps:"
echo "1. Install Git LFS (if not installed): sudo apt install git-lfs && git lfs install"
echo "2. Install Unreal Engine 5.4 (follow UE5_SETUP.md)"
echo "3. Create UE5 project: DubaiMetaverse"
echo "4. Copy config templates to Config/ directory"
echo "5. Begin Phase 1, Week 2: Geospatial acquisition"
echo ""
echo "For detailed next steps, see: docs/setup/NEXT_STEPS.md"
echo ""

40
scripts/setup/run_next_steps.sh Executable file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
# Master script to run all next steps after UE5 build completes
cd ~/projects/metaverseDubai
echo "=========================================="
echo "Dubai Metaverse - Next Steps Automation"
echo "=========================================="
echo ""
# Step 1: Verify Installation
echo "Step 1: Verifying UE5 Installation..."
./scripts/setup/verify_ue5_installation.sh
if [ $? -ne 0 ]; then
echo "⚠ Installation verification failed. Build may still be in progress."
echo "Check build status: ./scripts/monitoring/ue5_build_monitor.sh"
exit 1
fi
echo ""
echo "Step 2: Creating UE5 Project..."
read -p "Create project now? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
./scripts/setup/create_ue5_project.sh
else
echo "Skipped. Run manually: ./scripts/setup/create_ue5_project.sh"
fi
echo ""
echo "=========================================="
echo "Next Steps Complete!"
echo "=========================================="
echo ""
echo "Manual steps remaining:"
echo "1. Launch Unreal Editor and configure project settings"
echo "2. Import geospatial data"
echo "3. Create blockout level"
echo ""
echo "See NEXT_STEPS_AFTER_BUILD.md for detailed instructions"

97
scripts/setup/setup_blockout.sh Executable file
View File

@@ -0,0 +1,97 @@
#!/bin/bash
#
# Script Name: setup_blockout.sh
# Description: Prepare blockout level setup instructions
# Usage: ./setup_blockout.sh
# Author: Dubai Metaverse Team
# Date: 2024
# Version: 1.0
set -euo pipefail
# Configuration
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"
echo "=========================================="
echo "Blockout Level Setup Guide"
echo "=========================================="
echo ""
cat << 'EOF'
## Blockout Setup Steps
### 1. Create Main Level
- Open Unreal Editor
- File > New Level > Empty Level
- Save as: Content/Maps/MainLevel
- Enable World Partition
### 2. Import OSM Data
- Run: python3 scripts/data/import_osm_data.py --output data/processed/dubai_marina_buildings.geojson
- Import GeoJSON to Unreal (may require plugin or conversion)
- Create building footprint meshes from OSM data
### 3. Generate Terrain
- Run: python3 scripts/data/gis_to_unreal.py data/elevation/dem.tif --output data/processed/terrain_heightmap.raw
- Import heightmap to Landscape tool
- Create landscape from heightmap
- Set scale to 1:1 (100 units = 1 meter)
### 4. Create Building Footprints
- Use OSM building data
- Create simple box meshes for each building
- Place at correct locations
- Set correct heights (from reference or estimation)
- Use gray materials for blockout
### 5. Create Road Network
- Use OSM road data
- Create splines for roads
- Use Road Tool or spline meshes
- Set road width from reference
### 6. Add Basic Navigation
- Add NavMeshBoundsVolume
- Build navigation mesh
- Test player navigation
### 7. Validate Scale
- Verify 1:1 scale (100 units = 1 meter)
- Check building heights
- Verify distances match real-world
### 8. Test Navigation Flow
- Place player start
- Test walking through district
- Verify navigation works
- Check for clipping issues
## Blockout Checklist
- [ ] Main level created
- [ ] World Partition enabled
- [ ] OSM data imported
- [ ] Terrain generated from elevation data
- [ ] Building footprints placed
- [ ] Road network created
- [ ] Navigation mesh built
- [ ] Scale validated (1:1)
- [ ] Navigation flow tested
- [ ] Blockout reviewed
## Next Steps After Blockout
1. Identify exact buildings needed
2. Create Tier 1 asset list (Hero: Cayan Tower)
3. Create Tier 2 asset list (Primary buildings)
4. Begin asset production (Phase 2)
EOF
echo ""
echo "For detailed instructions, see:"
echo " - docs/planning/BLOCKOUT_REVIEW.md"
echo " - TASKS/phase1_tasks.md (Week 2)"
echo ""

87
scripts/setup/setup_project.sh Executable file
View File

@@ -0,0 +1,87 @@
#!/bin/bash
# Dubai Metaverse - Project Setup Script
# This script sets up the initial project structure and configuration
set -e # Exit on error
echo "=========================================="
echo "Dubai Metaverse - Project Setup"
echo "=========================================="
echo ""
# Check if Git is installed
if ! command -v git &> /dev/null; then
echo "Error: Git is not installed. Please install Git first."
exit 1
fi
# Check if Git LFS is installed
if ! command -v git-lfs &> /dev/null; then
echo "Warning: Git LFS is not installed. Large file tracking will not work."
echo "Please install Git LFS: https://git-lfs.github.com"
read -p "Continue anyway? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
else
echo "✓ Git LFS is installed"
# Initialize Git LFS
git lfs install
echo "✓ Git LFS initialized"
fi
# Initialize Git repository if not already initialized
if [ ! -d ".git" ]; then
echo "Initializing Git repository..."
git init
echo "✓ Git repository initialized"
else
echo "✓ Git repository already initialized"
fi
# Create directory structure
echo ""
echo "Creating directory structure..."
mkdir -p TASKS
mkdir -p docs
mkdir -p scripts
mkdir -p PROGRESS_REPORTS
mkdir -p houdini
mkdir -p data/{osm,elevation,references,processed}
echo "✓ Directory structure created"
# Set script permissions
echo ""
echo "Setting script permissions..."
chmod +x scripts/*.sh 2>/dev/null || true
echo "✓ Script permissions set"
# Check Python installation (for Python scripts)
if command -v python3 &> /dev/null; then
echo "✓ Python 3 is installed"
PYTHON_VERSION=$(python3 --version)
echo " Version: $PYTHON_VERSION"
else
echo "Warning: Python 3 is not installed. Some scripts may not work."
fi
# Summary
echo ""
echo "=========================================="
echo "Setup Complete!"
echo "=========================================="
echo ""
echo "Next steps:"
echo "1. Review documentation in root directory"
echo "2. Follow UE5_SETUP.md to install Unreal Engine 5.4"
echo "3. Create Unreal Engine project"
echo "4. Follow PROJECT_SETTINGS.md to configure engine"
echo "5. Install plugins (see PLUGINS.md)"
echo "6. Begin Phase 1, Week 2: Geospatial acquisition"
echo ""
echo "For more information, see README.md"
echo ""

View File

@@ -0,0 +1,94 @@
#!/bin/bash
# Dubai Metaverse - UE5 Project Setup Script
# This script provides instructions and validation for UE5 project setup
set -e # Exit on error
echo "=========================================="
echo "Dubai Metaverse - UE5 Project Setup"
echo "=========================================="
echo ""
# Check if UE5 project file exists
if [ -f "DubaiMetaverse.uproject" ]; then
echo "✓ UE5 project file found: DubaiMetaverse.uproject"
else
echo "⚠ UE5 project file not found"
echo ""
echo "Please create the UE5 project manually:"
echo "1. Open Epic Games Launcher"
echo "2. Launch Unreal Engine 5.4"
echo "3. Create new project: 'DubaiMetaverse'"
echo "4. Template: Blank (or Third Person)"
echo "5. Blueprint (C++ can be added later)"
echo "6. Target Platform: Desktop"
echo "7. Quality Preset: Maximum"
echo "8. Starter Content: No"
echo "9. Save project in this directory"
echo ""
read -p "Press Enter when project is created..."
fi
# Check for Content directory
if [ -d "Content" ]; then
echo "✓ Content directory found"
# Check for expected folder structure
echo ""
echo "Checking folder structure..."
DIRS=("Content/Maps" "Content/Assets" "Content/Blueprints" "Content/PCG" "Content/Cinematics" "Content/Audio")
MISSING_DIRS=()
for dir in "${DIRS[@]}"; do
if [ ! -d "$dir" ]; then
MISSING_DIRS+=("$dir")
fi
done
if [ ${#MISSING_DIRS[@]} -eq 0 ]; then
echo "✓ All expected directories exist"
else
echo "⚠ Missing directories:"
for dir in "${MISSING_DIRS[@]}"; do
echo " - $dir"
done
echo ""
read -p "Create missing directories? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
for dir in "${MISSING_DIRS[@]}"; do
mkdir -p "$dir"
echo "✓ Created: $dir"
done
fi
fi
else
echo "⚠ Content directory not found"
echo "This script should be run from the UE5 project root directory"
exit 1
fi
# Check for Config directory
if [ -d "Config" ]; then
echo "✓ Config directory found"
else
echo "⚠ Config directory not found"
echo "This may be normal for a new project"
fi
# Summary
echo ""
echo "=========================================="
echo "UE5 Project Setup Check Complete"
echo "=========================================="
echo ""
echo "Next steps:"
echo "1. Open project in Unreal Editor"
echo "2. Configure project settings (see PROJECT_SETTINGS.md)"
echo "3. Install required plugins (see PLUGINS.md)"
echo "4. Set up World Partition"
echo "5. Begin asset import"
echo ""

View File

@@ -0,0 +1,157 @@
#!/bin/bash
# Verify project setup is complete
# Colors
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
echo "=========================================="
echo "Dubai Metaverse Project Setup Verification"
echo "=========================================="
echo ""
ERRORS=0
WARNINGS=0
# Check project file
if [ -f "DubaiMetaverse.uproject" ]; then
echo -e "${GREEN}${NC} DubaiMetaverse.uproject exists"
else
echo -e "${RED}${NC} DubaiMetaverse.uproject missing"
((ERRORS++))
fi
# Check config files
if [ -f "Config/DefaultEngine.ini" ]; then
echo -e "${GREEN}${NC} DefaultEngine.ini exists"
# Check Nanite
if grep -q "r.Nanite.ProjectEnabled=True" Config/DefaultEngine.ini; then
echo -e " ${GREEN}${NC} Nanite enabled"
else
echo -e " ${RED}${NC} Nanite not configured"
((ERRORS++))
fi
# Check Lumen
if grep -q "r.Lumen.ProjectEnabled=True" Config/DefaultEngine.ini; then
echo -e " ${GREEN}${NC} Lumen enabled"
else
echo -e " ${RED}${NC} Lumen not configured"
((ERRORS++))
fi
# Check Lumen GI
if grep -q "r.Lumen.DiffuseIndirect.Allow=1" Config/DefaultEngine.ini; then
echo -e " ${GREEN}${NC} Lumen Global Illumination enabled"
else
echo -e " ${YELLOW}${NC} Lumen GI not explicitly configured"
((WARNINGS++))
fi
# Check Lumen Reflections
if grep -q "r.Lumen.Reflections.Allow=1" Config/DefaultEngine.ini; then
echo -e " ${GREEN}${NC} Lumen Reflections enabled"
else
echo -e " ${YELLOW}${NC} Lumen Reflections not explicitly configured"
((WARNINGS++))
fi
# Check Virtual Shadow Maps
if grep -q "r.Shadow.Virtual.Enable=1" Config/DefaultEngine.ini; then
echo -e " ${GREEN}${NC} Virtual Shadow Maps enabled"
else
echo -e " ${YELLOW}${NC} Virtual Shadow Maps not configured"
((WARNINGS++))
fi
# Check World Partition
if grep -q "bEnableWorldPartition=True" Config/DefaultEngine.ini; then
echo -e " ${GREEN}${NC} World Partition enabled"
else
echo -e " ${RED}${NC} World Partition not configured"
((ERRORS++))
fi
else
echo -e "${RED}${NC} DefaultEngine.ini missing"
((ERRORS++))
fi
# Check DefaultGame.ini
if [ -f "Config/DefaultGame.ini" ]; then
echo -e "${GREEN}${NC} DefaultGame.ini exists"
else
echo -e "${YELLOW}${NC} DefaultGame.ini missing (optional)"
((WARNINGS++))
fi
# Check Source structure
if [ -d "Source/DubaiMetaverse" ]; then
echo -e "${GREEN}${NC} Source structure exists"
else
echo -e "${BLUE}${NC} Source structure not found (optional for Blueprint-only project)"
fi
# Check Content structure
if [ -d "Content" ]; then
echo -e "${GREEN}${NC} Content directory exists"
else
echo -e "${RED}${NC} Content directory missing"
((ERRORS++))
fi
# Check required plugins
echo ""
echo "Checking required plugins..."
REQUIRED_PLUGINS=(
"ProceduralContentGeneration"
"VirtualProduction"
"MovieRenderQueue"
"ModelingTools"
"GeometryScript"
)
PLUGINS_OK=0
for plugin in "${REQUIRED_PLUGINS[@]}"; do
if grep -q "\"Name\": \"$plugin\"" DubaiMetaverse.uproject 2>/dev/null; then
if grep -A1 "\"Name\": \"$plugin\"" DubaiMetaverse.uproject | grep -q "\"Enabled\": true"; then
echo -e " ${GREEN}${NC} $plugin enabled"
((PLUGINS_OK++))
else
echo -e " ${YELLOW}${NC} $plugin found but not enabled"
((WARNINGS++))
fi
else
echo -e " ${RED}${NC} $plugin missing"
((ERRORS++))
fi
done
echo ""
echo "=========================================="
echo "Verification Summary"
echo "=========================================="
echo ""
if [ $ERRORS -eq 0 ] && [ $PLUGINS_OK -eq ${#REQUIRED_PLUGINS[@]} ]; then
echo -e "${GREEN}✅ Project setup verification: PASSED${NC}"
if [ $WARNINGS -gt 0 ]; then
echo -e "${YELLOW}${NC} $WARNINGS warning(s) found (non-critical)"
fi
echo ""
echo "All required settings and plugins are configured!"
exit 0
else
echo -e "${RED}⚠ Project setup verification: FAILED${NC}"
echo -e " ${RED}Errors:${NC} $ERRORS"
echo -e " ${YELLOW}Warnings:${NC} $WARNINGS"
echo ""
if [ $ERRORS -gt 0 ]; then
echo "Run configuration script:"
echo " ./scripts/setup/configure_project_settings.sh"
fi
exit 1
fi

View File

@@ -0,0 +1,108 @@
#!/bin/bash
#
# Script Name: verify_ue5_installation.sh
# Description: Verify Unreal Engine 5.4 installation
# Usage: ./verify_ue5_installation.sh
# Author: Dubai Metaverse Team
# Date: 2024
# Version: 1.0
set -euo pipefail
# Configuration
UE_ROOT="${UE_ROOT:-$HOME/UnrealEngine}"
LOG_FILE="${LOG_FILE:-$HOME/projects/metaverseDubai/logs/verify_ue5.log}"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# Logging
log() {
local level="${1:-INFO}"
shift
local message="$*"
local timestamp=$(date +'%Y-%m-%d %H:%M:%S')
echo "[$timestamp] [$level] $message" | tee -a "$LOG_FILE"
}
# Create log directory
mkdir -p "$(dirname "$LOG_FILE")"
echo "=========================================="
echo "UE5.4 Installation Verification"
echo "=========================================="
echo ""
# Check UnrealEngine directory
if [ ! -d "$UE_ROOT" ]; then
echo -e "${RED}${NC} UnrealEngine directory not found: $UE_ROOT"
exit 1
fi
echo -e "${GREEN}${NC} UnrealEngine directory found: $UE_ROOT"
# Check UnrealEditor binary
EDITOR_PATH="$UE_ROOT/Engine/Binaries/Linux/UnrealEditor"
if [ ! -f "$EDITOR_PATH" ]; then
echo -e "${YELLOW}${NC} UnrealEditor binary not found: $EDITOR_PATH"
echo " Build may still be in progress"
echo " Check build status: ~/projects/metaverseDubai/UE5_BUILD_MONITOR.sh"
exit 1
fi
echo -e "${GREEN}${NC} UnrealEditor binary found: $EDITOR_PATH"
# Check binary size (should be substantial)
BINARY_SIZE=$(du -h "$EDITOR_PATH" | cut -f1)
echo -e "${GREEN}${NC} UnrealEditor size: $BINARY_SIZE"
# Check version
echo ""
echo "Checking Unreal Engine version..."
if "$EDITOR_PATH" -version 2>&1 | grep -q "5.4"; then
VERSION=$("$EDITOR_PATH" -version 2>&1 | head -1)
echo -e "${GREEN}${NC} Version: $VERSION"
else
echo -e "${YELLOW}${NC} Could not verify version (may require GUI)"
echo " Version check requires running editor"
fi
# Check required plugins
echo ""
echo "Checking required plugins..."
PLUGINS_DIR="$UE_ROOT/Engine/Plugins"
REQUIRED_PLUGINS=(
"ProceduralContentGeneration"
"VirtualProduction"
"MovieRenderQueue"
)
for plugin in "${REQUIRED_PLUGINS[@]}"; do
if [ -d "$PLUGINS_DIR/$plugin" ]; then
echo -e "${GREEN}${NC} Plugin found: $plugin"
else
echo -e "${YELLOW}${NC} Plugin not found: $plugin"
fi
done
# Check disk space
echo ""
echo "Checking installation size..."
INSTALL_SIZE=$(du -sh "$UE_ROOT" 2>/dev/null | cut -f1)
echo -e "${GREEN}${NC} Installation size: $INSTALL_SIZE"
# Summary
echo ""
echo "=========================================="
echo "Verification Summary"
echo "=========================================="
echo -e "${GREEN}${NC} Unreal Engine 5.4 installation verified"
echo ""
echo "Next steps:"
echo "1. Create project: ./scripts/setup/create_ue5_project.sh"
echo "2. Launch editor: $EDITOR_PATH ~/projects/metaverseDubai/DubaiMetaverse.uproject"
echo ""
log "INFO" "Verification complete - Installation OK"