# 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 (med anpassade save-namn) - Exit to Main Menu - Exit to Desktop - **Save/Load System** som sparar speltid och anpassade namn - **Load Game Menu** som visar alla sparade spel med anpassade namn, speltid och 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** **Viktigt**: Språkfiler (`resources/languages/*.json`) inkluderas automatiskt i exporten! #### Steg 5: Testa EXE-filen - Den skapade `.exe` filen kan köras direkt på Windows - Språkväxling fungerar direkt i den exporterade versionen - `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 ├── default_bus_layout.tres # Audio bus konfiguration ├── scenes/ # Godot scener │ ├── MainMenu.tscn # Huvudmeny │ ├── Game.tscn # Spelscen │ ├── LoadGameMenu.tscn # Ladda spel meny │ └── SettingsMenu.tscn # Inställningar 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 │ ├── SaveDialog.cs # Save dialog │ ├── GameState.cs # Spelstatus hantering │ ├── GameSettings.cs # Inställningar hantering │ ├── LocalizationManager.cs # Språkhantering │ └── SettingsMenu.cs # Inställningar meny logik ├── resources/ # Resurser som inkluderas vid export │ └── languages/ # Språkfiler │ ├── eng.json # Engelska översättningar │ └── sve.json # Svenska översättningar ├── 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) - **Enter** - Bekräfta save-namn i save dialog ## Save/Load System ### Spara Spel 1. Pausa spelet (ESC eller pausknapp) 2. Klicka "Save Game" 3. Ange ett anpassat namn för ditt save (eller använd standard-namnet) 4. Tryck Enter eller klicka OK ### Ladda Spel 1. Från huvudmenyn, klicka "Load Game" 2. Välj det save du vill ladda från listan 3. Spelet kommer att fortsätta från den sparade tiden Save-filer innehåller: - **Anpassat namn** (som du angav) - **Speltid** (timer-status) - **Datum och tid** när spelet sparades ## 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 5. **Språk växlar inte** - Kontrollera att språkfilen finns i `resources/languages/` - Kolla Godot's output för felmeddelanden - Engelska används som fallback om språkfil saknas ## 🌍 Lägg Till Nya Språk ### Skapa Ny Språkfil: 1. Skapa ny `.json` fil i `resources/languages/` 2. Exempel: `ger.json` för tyska, `fra.json` för franska 3. Kopiera struktur från `eng.json` 4. Översätt alla textsträngar 5. Språket dyker automatiskt upp i settings! ### Rekommenderade Språkkoder: - `eng` - English - `sve` - Svenska - `ger` - Deutsch (German) - `fra` - Français (French) - `spa` - Español (Spanish) - `ita` - Italiano (Italian) - `jpn` - 日本語 (Japanese) **✅ Viktigt**: Språkfiler i `resources/languages/` inkluderas automatiskt vid export! ## 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.