166 lines
5.5 KiB
Markdown
166 lines
5.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
|
|
- 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. |