Files
TheGame/README.md
Björn Blomberg 74062a37d6 Add localization support and refactor menus
- Implemented LocalizationManager for handling multiple languages.
- Updated LoadGameMenu, MainMenu, PauseMenu, and SettingsMenu to support localization.
- Added InstanceSelectionMenu for selecting game instances.
- Refactored SaveManager to handle new SaveInstance structure.
- Created SaveDialog for saving games with user-defined names.
- Enhanced SaveData to manage multiple save instances.
- Added error handling and logging for save/load operations.
- Updated UI elements to reflect localized text.
2025-10-17 14:22:21 +02:00

223 lines
7.5 KiB
Markdown

# 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.