Files
spacetris/DEPLOYMENT.md
2025-08-16 08:24:26 +02:00

159 lines
4.1 KiB
Markdown

# Tetris SDL3 - Production Deployment Guide
## 🚀 Build Scripts Available
### 1. Quick Package (Recommended)
```powershell
.\package-quick.ps1
```
- Uses existing Debug/Release build from build-msvc
- Creates distribution package with all dependencies
- **Size: ~939 MB** (includes all assets and music)
- **Output:** `dist/TetrisGame/` + ZIP file
### 2. Full Production Build
```powershell
.\build-production.ps1 -Clean
```
- Builds from source with Release optimizations
- Complete clean build process
- More comprehensive but requires proper CMake setup
### 3. Simple Batch Build
```batch
build-production.bat
```
- Windows batch file alternative
- Simpler but less features
## 📦 Package Contents
The distribution package includes:
### Essential Files
-`tetris.exe` - Main game executable
-`Launch-Tetris.bat` - Safe launcher with error handling
-`README.txt` - User instructions
### Dependencies
-`SDL3.dll` - Main SDL library
-`SDL3_ttf.dll` - Font rendering support
### Game Assets
-`assets/fonts/` - PressStart2P-Regular.ttf (retro font)
-`assets/images/` - Logo, background, block textures (BMP format)
-`assets/music/` - Background music tracks (11 tracks)
-`assets/favicon/` - Icon files
-`FreeSans.ttf` - Main UI font
## 🎯 Distribution Options
### Option 1: ZIP Archive (Recommended)
- **File:** `TetrisGame-YYYY.MM.DD.zip`
- **Size:** ~939 MB
- **Usage:** Users extract and run `Launch-Tetris.bat`
### Option 2: Installer (Future)
- Use CMake CPack to create NSIS installer
- ```bash
cmake --build build-release --target package
```
### Option 3: Portable Folder
- Direct distribution of `dist/TetrisGame/` folder
- Users copy folder and run executable
## 🔧 Build Requirements
### Development Environment
- **CMake** 3.20+
- **Visual Studio 2022** (or compatible C++ compiler)
- **vcpkg** package manager
- **SDL3** libraries (installed via vcpkg)
### vcpkg Dependencies
```bash
vcpkg install sdl3 sdl3-ttf --triplet=x64-windows
```
## ✅ Pre-Distribution Checklist
### Testing
- [ ] Game launches without errors
- [ ] All controls work (arrows, Z/X, space, etc.)
- [ ] Music plays correctly
- [ ] Fullscreen toggle (F11) works
- [ ] Logo and images display properly
- [ ] Font rendering works (both FreeSans and PressStart2P)
- [ ] Game saves high scores
### Package Validation
- [ ] All DLL files present
- [ ] Assets folder complete
- [ ] Launch-Tetris.bat works
- [ ] README.txt is informative
- [ ] Package size reasonable (~939 MB)
### Distribution
- [ ] ZIP file created successfully
- [ ] Test extraction on clean system
- [ ] Verify game runs on target machines
- [ ] No missing dependencies
## 📋 User System Requirements
### Minimum Requirements
- **OS:** Windows 10/11 (64-bit)
- **RAM:** 512 MB
- **Storage:** 1 GB free space
- **Graphics:** DirectX compatible
- **Audio:** Any Windows-compatible audio device
### Recommended
- **OS:** Windows 11
- **RAM:** 2 GB
- **Storage:** 2 GB free space
- **Graphics:** Dedicated graphics card
- **Audio:** Stereo speakers/headphones
## 🐛 Common Issues & Solutions
### "tetris.exe is not recognized"
- **Solution:** Ensure all DLL files are in same folder as executable
### "Failed to initialize SDL"
- **Solution:** Update graphics drivers, run as administrator
### "No audio"
- **Solution:** Check audio device, update audio drivers
### Game won't start
- **Solution:** Use `Launch-Tetris.bat` for better error reporting
## 📈 Performance Notes
### Asset Loading
- **BMP images:** Fast loading, reliable across systems
- **Music loading:** ~11 tracks loaded asynchronously during startup
- **Font caching:** Fonts loaded once at startup
### Memory Usage
- **Runtime:** ~50-100 MB
- **Peak:** ~200 MB during asset loading
### Optimizations
- Release build uses `/O2` optimization
- Link-time optimization enabled
- Assets optimized for size/performance balance
## 🔄 Update Process
1. **Code changes:** Update source code
2. **Rebuild:** Run `.\package-quick.ps1`
3. **Test:** Verify functionality
4. **Distribute:** Upload new ZIP file
---
**Ready for distribution!** 🎮✨