# TheGame Ett 2D spel byggt i Godot med C# som innehåller en startmeny, timer och save/load funktionalitet. ## Funktioner - **Startmeny** med knappar för Start Game, Load Game och Exit - **Timer** som räknar speltid i övre högra hörnet - **Pausmeny** med knapp i övre vänstra hörnet som innehåller: - Pause/Resume funktionalitet - Save Game - Exit to Main Menu - Exit to Desktop - **Save/Load System** som sparar speltid i `saves/` mappen - **Load Game Menu** som visar alla sparade spel med datum - Load Game knappen är automatiskt utgråad om inga sparade spel finns ## Krav och Dependencies ### Systemkrav - **Godot 4.2** eller senare med C# support - **.NET 6.0** SDK eller senare - **Windows** (testat på Windows, men bör fungera på andra plattformar) ### Dependencies Projektet använder följande .NET dependencies: - `Godot.NET.Sdk` - Godot's .NET SDK - `System.Text.Json` - För JSON serialisering av sparfiler ## Installation och Setup ### 1. Installera Godot med C# Support 1. Ladda ner Godot 4.2+ **Mono version** från [godotengine.org](https://godotengine.org/download) 2. Installera .NET 6.0 SDK från [Microsoft](https://dotnet.microsoft.com/download) ### 2. Öppna Projektet 1. Starta Godot 2. Klicka på "Import" 3. Navigera till projektmappen och välj `project.godot` 4. Klicka "Import & Edit" ### 3. Första Kompilering 1. I Godot editorn, gå till **Project → Tools → C# → Create C# solution** 2. Vänta tills kompileringen är klar 3. Om fel uppstår, kontrollera att .NET SDK är korrekt installerat ## Kompilering och Körning ### Utvecklingsläge (Godot Editor) 1. Öppna projektet i Godot 2. Tryck **F5** eller klicka på "Play"-knappen 3. Första gången kommer du behöva välja `scenes/MainMenu.tscn` som main scene ### Skapa EXE-fil (Windows) #### Steg 1: Förbered Export Templates 1. Öppna projektet i Godot 4.5 2. Gå till **Editor → Manage Export Templates** 3. Klicka **Download and Install** för att ladda ner templates för Godot 4.5 #### Steg 2: Konfigurera Windows Export 1. I Godot editorn, gå till **Project → Export...** 2. Klicka **Add...** och välj **Windows Desktop** 3. Konfigurera följande inställningar: - **Export Path**: `TheGame.exe` (eller valfritt namn) - **Runnable**: ✅ (aktiverad) - **Dedicated Server**: ❌ (inaktiverad) #### Steg 3: C# Specifika Inställningar Under **Dotnet** sektionen: - **Include Scripts Compilation**: ✅ (aktiverad) - **Include Debug Symbols**: ❌ (inaktiverad för release) #### Steg 4: Exportera EXE 1. Klicka **Export Project** 2. Välj destination och filnamn (t.ex. `TheGame.exe`) 3. Klicka **Save** #### Steg 5: Testa EXE-filen - Den skapade `.exe` filen kan köras direkt på Windows - `saves/` mappen kommer att skapas bredvid exe-filen automatiskt ### Felsökning Export Problem **Problem: "Export templates not found"** - Lösning: Installera export templates via Editor → Manage Export Templates **Problem: "Failed to export project"** - Kontrollera att alla scripts kompilerar utan fel först - Kör `dotnet build` i projektmappen för att verifiera **Problem: "C# assemblies missing in export"** - Se till att "Include Scripts Compilation" är aktiverad - Kontrollera att .NET 8.0 runtime finns installerad på målmaskinen ### Alternativ Kompilering via Terminal ```powershell # Navigera till projektmappen cd c:\Repo\TheGame # Bygg C# projektet dotnet build --configuration Release # Exportera via kommandoraden (kräver Godot i PATH) godot --headless --export-release "Windows Desktop" TheGame.exe ``` ## Projektstruktur ``` TheGame/ ├── project.godot # Godot projektfil ├── TheGame.csproj # C# projektfil ├── scenes/ # Godot scener │ ├── MainMenu.tscn # Huvudmeny │ ├── Game.tscn # Spelscen │ └── LoadGameMenu.tscn # Ladda spel meny ├── scripts/ # C# scripts │ ├── MainMenu.cs # Huvudmeny logik │ ├── Game.cs # Spel logik och timer │ ├── PauseMenu.cs # Pausmeny logik │ ├── SaveManager.cs # Save/Load hantering │ ├── LoadGameMenu.cs # Ladda spel meny │ └── GameState.cs # Spelstatus hantering ├── saves/ # Sparade spel (skapas automatiskt) └── README.md # Denna fil ``` ## Kontroller - **ESC** - Pausa/återuppta spelet - **Musklick** - Navigera menyer och knappar - **Pausknapp** (☰) - Pausa spelet (övre vänstra hörnet) ## Felsökning ### Vanliga Problem 1. **"C# script compilation failed"** - Kontrollera att .NET 6.0 SDK är installerat - Kör `dotnet --version` i terminal för att verifiera 2. **"Cannot find Godot.NET.Sdk"** - Se till att du använder Godot Mono version - Återskapa C# solution via Project → Tools → C# → Create C# solution 3. **Save-filer sparas inte** - Kontrollera att spelet har skrivrättigheter till projektmappen - Saves sparas i `saves/` mappen bredvid den körbara filen 4. **Load Game knapp fungerar inte** - Detta är förväntat beteende om inga sparfiler finns - Knappen blir automatiskt klickbar när du har sparat minst ett spel ## Utveckling För att utveckla projektet vidare: 1. Öppna projektet i Godot 2. C# scripts kan redigeras i valfri IDE (Visual Studio, VS Code, Rider) 3. Godot kommer automatiskt att kompilera om scripten när de ändras 4. Använd Godot's debugger för att felsöka runtime-problem ## Licens Se `LICENSE` filen för licensinformation.