init
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
# Tekton Launcher
|
||||
|
||||
A custom game launcher for **tekton-local** with auto-update functionality via itch.io.
|
||||
|
||||
## Features
|
||||
|
||||
- **Version Checking** - Automatically checks for game updates on launch
|
||||
- **Progress Tracking** - Visual download progress with percentage
|
||||
- **Checksum Verification** - MD5/SHA256 validation for downloaded files
|
||||
- **Backup System** - Automatic backup before updates with rollback support
|
||||
- **News Feed** - Displays devlog and announcements from itch.io
|
||||
- **Changelog Display** - Shows what's new in each version
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
launcher/
|
||||
├── project.godot # Godot 4.4 project file
|
||||
├── icon.svg # Launcher icon
|
||||
├── scenes/
|
||||
│ └── launcher.tscn # Main launcher scene
|
||||
├── scripts/
|
||||
│ ├── config.gd # Global configuration (URLs, colors)
|
||||
│ ├── launcher_main.gd # Main orchestration script
|
||||
│ ├── version_checker.gd # Version comparison and manifest fetching
|
||||
│ ├── download_manager.gd # HTTP downloads with progress
|
||||
│ ├── update_applier.gd # Backup, install, and rollback
|
||||
│ └── news_fetcher.gd # News/devlog fetching
|
||||
└── server/
|
||||
└── version.json # Example version manifest
|
||||
```
|
||||
|
||||
## Setup
|
||||
|
||||
### 1. Configure itch.io URLs
|
||||
|
||||
Edit `scripts/config.gd` and update:
|
||||
|
||||
```gdscript
|
||||
const ITCH_GAME_URL := "https://your-username.itch.io/tekton-local"
|
||||
const VERSION_MANIFEST_URL := "https://your-username.itch.io/tekton-local/data/version.json"
|
||||
```
|
||||
|
||||
### 2. Host version.json on itch.io
|
||||
|
||||
Upload the `server/version.json` file to itch.io alongside your game files. Update it whenever you release a new version.
|
||||
|
||||
### 3. Export the Launcher
|
||||
|
||||
1. Open `launcher/project.godot` in Godot 4.4
|
||||
2. Go to **Project > Export...**
|
||||
3. Add a Windows Desktop preset
|
||||
4. Export as `TektonLauncher.exe`
|
||||
|
||||
### 4. Creating Game Patches
|
||||
|
||||
Use the PowerShell script in the main project:
|
||||
|
||||
```powershell
|
||||
.\tools\create_patch.ps1 -Version "1.0.0"
|
||||
```
|
||||
|
||||
This will:
|
||||
- Update `version.txt` in your game
|
||||
- Generate checksums for the PCK file
|
||||
- Create a JSON snippet to add to `version.json`
|
||||
|
||||
## Workflow for Releasing Updates
|
||||
|
||||
1. Make changes to the main game
|
||||
2. Update `version.txt` with the new version number
|
||||
3. Export the game as PCK only from Godot
|
||||
4. Run `create_patch.ps1` to generate checksums
|
||||
5. Upload the new PCK to itch.io
|
||||
6. Update `version.json` with the new release entry
|
||||
7. Upload updated `version.json` to itch.io
|
||||
|
||||
Players will see the update next time they launch the game!
|
||||
|
||||
## UI Theme
|
||||
|
||||
The launcher features a cyberpunk-inspired dark theme:
|
||||
- Primary: Cyan (#00d4ff)
|
||||
- Secondary: Magenta (#ff00aa)
|
||||
- Background: Dark blue-black (#0a0a1a)
|
||||
|
||||
Customize colors in `scripts/config.gd`.
|
||||
|
||||
## Cross-Platform Support
|
||||
|
||||
The launcher automatically detects the operating system and:
|
||||
|
||||
| Platform | Executable | PCK File | Launch Method |
|
||||
|----------|------------|----------|---------------|
|
||||
| Windows | `tekton-local.exe` | `tekton-local-windows.pck` | Direct process |
|
||||
| Linux | `tekton-local.x86_64` | `tekton-local-linux.pck` | chmod +x, then launch |
|
||||
| macOS | `tekton-local.app` | `tekton-local-macos.pck` | `open -a` command |
|
||||
|
||||
### Multi-Platform Releases
|
||||
|
||||
When releasing for multiple platforms, use platform-specific keys in `version.json`:
|
||||
|
||||
```json
|
||||
{
|
||||
"version": "1.0.0",
|
||||
"pck_windows": {
|
||||
"url": "https://..../tekton-local-1.0.0-windows.pck",
|
||||
"size": 52428800,
|
||||
"checksum_md5": "..."
|
||||
},
|
||||
"pck_linux": {
|
||||
"url": "https://..../tekton-local-1.0.0-linux.pck",
|
||||
"size": 52428800,
|
||||
"checksum_md5": "..."
|
||||
},
|
||||
"pck_macos": {
|
||||
"url": "https://..../tekton-local-1.0.0-macos.pck",
|
||||
"size": 52428800,
|
||||
"checksum_md5": "..."
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
The launcher will automatically download the correct PCK for the current platform.
|
||||
Reference in New Issue
Block a user