chore: remove obsolete GitHub updater system documentation files
This commit is contained in:
parent
394f425ca4
commit
5ec796b204
2 changed files with 0 additions and 281 deletions
|
|
@ -1,154 +0,0 @@
|
||||||
# GitHub-Powered External Updater System
|
|
||||||
|
|
||||||
## Architecture: GitHub + Automatic Installation
|
|
||||||
|
|
||||||
### Components:
|
|
||||||
|
|
||||||
#### 1. **GitHub Integration** (Existing)
|
|
||||||
- ✅ GitHub Releases API for version detection
|
|
||||||
- ✅ GitHub raw file downloads for script content
|
|
||||||
- ✅ Zero infrastructure - uses existing GitHub + Jenkins
|
|
||||||
- ✅ Professional version management
|
|
||||||
|
|
||||||
#### 2. **Peril_Dice_Updater.lsl** (New - External Box)
|
|
||||||
- Downloads scripts directly from GitHub raw URLs
|
|
||||||
- Uses GitHub API to get latest release info
|
|
||||||
- Installs scripts automatically via llRemoteLoadScriptPin()
|
|
||||||
- Handles the 2048-character LSL limit properly
|
|
||||||
|
|
||||||
#### 3. **Update_Receiver.lsl** (Modified existing Update_Checker)
|
|
||||||
- Scans for nearby updater boxes
|
|
||||||
- Still checks GitHub API for version comparison
|
|
||||||
- Coordinates automatic installation with updater box
|
|
||||||
- Validates successful updates
|
|
||||||
|
|
||||||
## User Experience Flow:
|
|
||||||
|
|
||||||
### Step 1: Get Updater
|
|
||||||
- User receives "Peril Dice GitHub Updater v2.8.7" box
|
|
||||||
- Box description: "Automatic GitHub-powered updater for Peril Dice"
|
|
||||||
|
|
||||||
### Step 2: Check & Install
|
|
||||||
1. User rezzes updater box near their Peril Dice game
|
|
||||||
2. User touches game → Admin Menu → "Check for Updates"
|
|
||||||
3. Game checks GitHub API: "v2.8.7 available!"
|
|
||||||
4. User clicks "Install Update"
|
|
||||||
5. Game connects to nearby updater box
|
|
||||||
6. Updater downloads all needed scripts from GitHub
|
|
||||||
7. Updater installs scripts automatically: "Installing 3 of 17..."
|
|
||||||
8. Game validates: "✅ Update complete! Now running v2.8.7"
|
|
||||||
9. User deletes updater box
|
|
||||||
|
|
||||||
## Technical Implementation:
|
|
||||||
|
|
||||||
### GitHub URLs Used:
|
|
||||||
```
|
|
||||||
Version Check: https://api.github.com/repos/RebeccaNod1/Peril/releases/latest
|
|
||||||
Script Downloads: https://raw.githubusercontent.com/RebeccaNod1/Peril/main/ScriptName.lsl
|
|
||||||
```
|
|
||||||
|
|
||||||
### Script Installation Process:
|
|
||||||
```lsl
|
|
||||||
// In Updater Box:
|
|
||||||
1. llHTTPRequest() to download script from GitHub
|
|
||||||
2. llRemoteLoadScriptPin() to install in target game
|
|
||||||
3. Repeat for all 17 scripts in correct order
|
|
||||||
|
|
||||||
// In Target Game:
|
|
||||||
1. llSetRemoteScriptAccessPin() to allow updater access
|
|
||||||
2. Validate each script installation
|
|
||||||
3. Report progress to user
|
|
||||||
```
|
|
||||||
|
|
||||||
## Benefits of This Approach:
|
|
||||||
|
|
||||||
### ✅ **GitHub Integration Maintained:**
|
|
||||||
- Same zero-infrastructure benefits
|
|
||||||
- Automatic version detection
|
|
||||||
- Professional release management
|
|
||||||
- Leverages existing CI/CD pipeline
|
|
||||||
- No separate update server needed
|
|
||||||
|
|
||||||
### ✅ **User Experience Improved:**
|
|
||||||
- One-click automatic installation
|
|
||||||
- No manual copy/paste required
|
|
||||||
- Progress indicators and feedback
|
|
||||||
- Impossible to make installation errors
|
|
||||||
- Professional software-like experience
|
|
||||||
|
|
||||||
### ✅ **Creator Benefits:**
|
|
||||||
- Same development workflow (commit → push → tag)
|
|
||||||
- GitHub releases automatically available
|
|
||||||
- Single updater box for all users
|
|
||||||
- Easy to distribute via marketplace/group
|
|
||||||
|
|
||||||
## Files to Create:
|
|
||||||
|
|
||||||
### 1. `Peril_Dice_Updater.lsl`
|
|
||||||
```lsl
|
|
||||||
// External updater box script
|
|
||||||
- GitHub API integration (version checking)
|
|
||||||
- GitHub raw file downloads (script content)
|
|
||||||
- Remote script installation
|
|
||||||
- Progress reporting
|
|
||||||
- Error handling for network issues
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. `Update_Receiver.lsl`
|
|
||||||
```lsl
|
|
||||||
// Replace Update_Checker.lsl in main game
|
|
||||||
- Scan for nearby GitHub updater boxes
|
|
||||||
- GitHub version checking (same as before)
|
|
||||||
- Coordinate automatic installation
|
|
||||||
- Validate successful updates
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. `github-manifest.json` (in repository)
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"version": "2.8.7",
|
|
||||||
"scripts": [
|
|
||||||
{
|
|
||||||
"name": "Main_Controller_Linkset.lsl",
|
|
||||||
"link": 1,
|
|
||||||
"url": "https://raw.githubusercontent.com/RebeccaNod1/Peril/main/Main_Controller_Linkset.lsl",
|
|
||||||
"required": true
|
|
||||||
},
|
|
||||||
// ... all 17 scripts with GitHub URLs
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## Advantages Over Current System:
|
|
||||||
|
|
||||||
| **Current (Manual)** | **New (GitHub + Auto)** |
|
|
||||||
|---------------------|-------------------------|
|
|
||||||
| ❌ User copies/pastes each script | ✅ One-click automatic installation |
|
|
||||||
| ❌ Easy to make mistakes | ✅ Impossible to mess up |
|
|
||||||
| ❌ Must update all scripts manually | ✅ Updates only changed scripts |
|
|
||||||
| ❌ No progress indication | ✅ Clear progress and status |
|
|
||||||
| ✅ Uses GitHub (good!) | ✅ Still uses GitHub (great!) |
|
|
||||||
|
|
||||||
## Implementation Steps:
|
|
||||||
|
|
||||||
### Phase 1: Build Core System
|
|
||||||
1. Create `Peril_Dice_Updater.lsl` with GitHub integration
|
|
||||||
2. Convert `Update_Checker.lsl` → `Update_Receiver.lsl`
|
|
||||||
3. Create `github-manifest.json` listing all scripts
|
|
||||||
4. Test basic single-script updates
|
|
||||||
|
|
||||||
### Phase 2: Full Integration
|
|
||||||
1. Test complete 17-script updates
|
|
||||||
2. Add progress indicators and error handling
|
|
||||||
3. Test with multiple game instances
|
|
||||||
4. Validate version tracking
|
|
||||||
|
|
||||||
### Phase 3: Distribution
|
|
||||||
1. Create professional updater box object
|
|
||||||
2. Write user instructions
|
|
||||||
3. Set up distribution (marketplace/group/etc.)
|
|
||||||
4. Create demo videos
|
|
||||||
|
|
||||||
This gives you **all the benefits of GitHub** (zero infrastructure, automatic detection, professional workflow) **plus** the automatic installation that users expect from professional Second Life products!
|
|
||||||
|
|
||||||
Should I start building the GitHub-powered external updater system?
|
|
||||||
|
|
@ -1,127 +0,0 @@
|
||||||
# Peril Dice External Updater System
|
|
||||||
|
|
||||||
## Architecture Overview
|
|
||||||
|
|
||||||
### Components Needed:
|
|
||||||
|
|
||||||
#### 1. **Updater Box** (`Peril_Dice_Updater.lsl`)
|
|
||||||
- Standalone object that users rez temporarily
|
|
||||||
- Downloads scripts from GitHub when activated
|
|
||||||
- Installs scripts into target Peril Dice game via remote loading
|
|
||||||
- Self-contained - includes all update logic
|
|
||||||
|
|
||||||
#### 2. **Update Receiver** (in main game)
|
|
||||||
- Modified `Update_Checker.lsl` → `Update_Receiver.lsl`
|
|
||||||
- Scans for nearby updater boxes
|
|
||||||
- Requests updates when available
|
|
||||||
- Manages the script replacement process
|
|
||||||
|
|
||||||
#### 3. **Script Manifest** (GitHub hosted)
|
|
||||||
- JSON file listing all scripts and their GitHub URLs
|
|
||||||
- Version tracking for incremental updates
|
|
||||||
- Deployment instructions for updater
|
|
||||||
|
|
||||||
## Technical Implementation
|
|
||||||
|
|
||||||
### Update Process Flow:
|
|
||||||
|
|
||||||
```
|
|
||||||
1. User rezzes "Peril Dice Updater v2.8.7" box
|
|
||||||
2. User touches their Peril Dice game → "Check for Updates"
|
|
||||||
3. Game scans for nearby updater boxes (llSensor)
|
|
||||||
4. Game requests update from updater box
|
|
||||||
5. Updater downloads scripts from GitHub
|
|
||||||
6. Game sets script access pin (llSetRemoteScriptAccessPin)
|
|
||||||
7. Updater installs scripts via llRemoteLoadScriptPin()
|
|
||||||
8. Game validates installation and reports success
|
|
||||||
9. User deletes updater box
|
|
||||||
```
|
|
||||||
|
|
||||||
### Key LSL Functions:
|
|
||||||
- `llSensor()` - Find nearby updater boxes
|
|
||||||
- `llSetRemoteScriptAccessPin()` - Allow updater access
|
|
||||||
- `llRemoteLoadScriptPin()` - Install new scripts
|
|
||||||
- `llHTTPRequest()` - Download scripts from GitHub
|
|
||||||
- `llGetInventoryName()` - Validate installed scripts
|
|
||||||
|
|
||||||
## User Experience
|
|
||||||
|
|
||||||
### For Players:
|
|
||||||
1. Receive "Peril Dice Updater v2.8.7" from creator
|
|
||||||
2. Rez updater near their game
|
|
||||||
3. Touch game → Admin Menu → "Check for Updates"
|
|
||||||
4. See "Update Available: v2.8.6 → v2.8.7"
|
|
||||||
5. Click "Install Update"
|
|
||||||
6. Watch progress: "Installing script 3 of 17..."
|
|
||||||
7. See "✅ Update Complete! Game is now v2.8.7"
|
|
||||||
8. Delete updater box
|
|
||||||
|
|
||||||
### For Creator (You):
|
|
||||||
1. Build new scripts and test them
|
|
||||||
2. Commit to GitHub with version bump
|
|
||||||
3. Create updater box with new version number
|
|
||||||
4. Distribute updater to users via marketplace/group notices
|
|
||||||
5. Users get automatic professional updates
|
|
||||||
|
|
||||||
## Advantages Over Manual Updates
|
|
||||||
|
|
||||||
### ✅ Professional Experience:
|
|
||||||
- One-click updates like commercial software
|
|
||||||
- Progress indicators and status messages
|
|
||||||
- Automatic validation of successful installation
|
|
||||||
- No copy/paste errors or missed scripts
|
|
||||||
|
|
||||||
### ✅ Version Control:
|
|
||||||
- Updater knows exactly which scripts need updating
|
|
||||||
- Can do incremental updates (only changed files)
|
|
||||||
- Prevents version mismatches between scripts
|
|
||||||
- Tracks what was updated when
|
|
||||||
|
|
||||||
### ✅ User Friendly:
|
|
||||||
- No technical knowledge required
|
|
||||||
- Clear instructions and feedback
|
|
||||||
- Impossible to mess up the installation
|
|
||||||
- Works the same way every time
|
|
||||||
|
|
||||||
## Files to Create
|
|
||||||
|
|
||||||
### 1. `Peril_Dice_Updater.lsl`
|
|
||||||
- Main updater script for the external box
|
|
||||||
- GitHub API integration for script downloads
|
|
||||||
- Remote script installation logic
|
|
||||||
- Progress reporting and error handling
|
|
||||||
|
|
||||||
### 2. `Update_Receiver.lsl`
|
|
||||||
- Replace existing Update_Checker.lsl
|
|
||||||
- Scan for nearby updater boxes
|
|
||||||
- Coordinate with updater for script replacement
|
|
||||||
- Validate successful updates
|
|
||||||
|
|
||||||
### 3. `updater-manifest.json` (GitHub)
|
|
||||||
- List of all scripts with GitHub URLs
|
|
||||||
- Version requirements and dependencies
|
|
||||||
- Installation order and link assignments
|
|
||||||
|
|
||||||
### 4. Instructions for packaging updater boxes
|
|
||||||
- How to create updater objects for distribution
|
|
||||||
- Testing procedures for new versions
|
|
||||||
- Distribution methods (marketplace, group, etc.)
|
|
||||||
|
|
||||||
## Implementation Priority
|
|
||||||
|
|
||||||
### Phase 1: Core Updater System
|
|
||||||
1. Create basic updater box with GitHub integration
|
|
||||||
2. Modify existing Update_Checker to work with updater
|
|
||||||
3. Test with simple single-script updates
|
|
||||||
|
|
||||||
### Phase 2: Full Integration
|
|
||||||
1. Complete manifest system for all 17 scripts
|
|
||||||
2. Add progress indicators and error handling
|
|
||||||
3. Test complete game updates
|
|
||||||
|
|
||||||
### Phase 3: Polish & Distribution
|
|
||||||
1. Create professional updater box object
|
|
||||||
2. Write user documentation
|
|
||||||
3. Set up distribution system
|
|
||||||
|
|
||||||
This system would provide a truly professional update experience matching commercial Second Life products!
|
|
||||||
Loading…
Reference in a new issue