Skip to content

Conversation

@ryusuzaku
Copy link

No description provided.

This commit transforms the project from "Fish Folk: Jumpy" to "Fishy"
and includes a complete modernization roadmap for mobile/web and web3 integration.

## Rebranding Changes

- **Package**: Renamed from "jumpy" to "fishy" in Cargo.toml (v1.0.0)
- **Authors**: Updated to "8bit Games"
- **Description**: "Dive into 8-bit Chaos - A tactical 2D shooter"
- **Branding**: Updated title and subtitle in localization files
- **Build**: Updated web build scripts and WASM references
- **Desktop**: Added new fishy.desktop file for Linux
- **Arcade**: Updated Arcadefile with new branding

## New Documentation

Added MODERNIZATION_PLAN.md with comprehensive strategy:

### Mobile/Web Modernization
- Native iOS/Android support with touch controls
- Progressive Web App (PWA) enhancements
- Cross-platform WebRTC networking
- Responsive design system
- Performance optimizations for mobile

### Web3 Integration
- NFT cosmetics system (ERC-1155)
- $FISHY token economy (ERC-20)
- Decentralized tournaments and prize pools
- Wallet integration (MetaMask, WalletConnect)
- Polygon blockchain deployment

### Commercial Readiness
- Free-to-play monetization model
- Battle pass system
- In-game cosmetic store
- Multi-platform distribution (Steam, Epic, App Stores)
- Backend infrastructure planning
- Live operations strategy

### Timeline & Budget
- 6-8 month implementation plan
- Phased rollout approach
- Team and resource requirements
- Revenue projections: $200K-$1.2M Year 1

## Attribution

Original project credits preserved in CREDITS.md with proper
attribution to Fish Folk: Jumpy developers and community.

## Technical Notes

All core functionality remains intact. This is primarily a
rebranding and planning commit. Implementation of mobile/web3
features will follow in subsequent phases.

Breaking Changes:
- Binary name changed from "jumpy" to "fishy"
- Package name changed (affects build scripts)
- WASM output now generates fishy.js instead of jumpy.js
This commit implements Progressive Web App (PWA) functionality and designs
the mobile touch control system as part of Phase 1 modernization.

## PWA Features Implemented

### Web App Manifest (manifest.json)
- Full PWA manifest with app metadata
- Icon definitions (16px to 512px)
- Fullscreen landscape orientation
- App categories and screenshots
- iOS-specific configuration
- Share target support

### Service Worker (service-worker.js)
- Offline support with intelligent caching strategies
- Network-first for HTML (always fresh)
- Cache-first for WASM and assets (performance)
- Runtime caching for lazy-loaded resources
- Cache versioning and cleanup
- Background sync support (future features)
- Update notification system

### Install Prompt (install-prompt.js)
- Custom "Add to Home Screen" prompts
- Platform-specific installation instructions
- iOS and Android detection
- Manual installation guidance
- Update notifications
- Service worker registration
- Analytics tracking hooks

### PWA Styles (pwa-styles.css)
- Styled install button
- Install instruction modals
- Update notification banners
- Responsive mobile layouts
- Animations and transitions
- Safe area support for notched devices

### Updated index.html
- PWA meta tags (viewport, theme-color, etc.)
- iOS-specific meta tags
- Manifest link
- Apple touch icons
- Favicon references
- PWA stylesheet inclusion

### Updated Build System (build-web.sh)
- Copy all PWA resources to dist
- Icon directory handling
- Screenshot directory handling
- Manifest and service worker deployment
- Build validation

## Documentation

### PHASE1_IMPLEMENTATION.md
Comprehensive Phase 1 implementation plan covering:
- PWA enhancements (manifest, service worker, install prompts)
- Mobile touch controls (joystick, buttons, gestures)
- Responsive UI system
- Performance optimization
- Testing strategy
- 8-week implementation timeline
- Success criteria

### mobile-touch-controls.md
Detailed technical design for touch controls:
- Architecture and module structure
- Data structures (TouchControls, VirtualJoystick, ActionButtons)
- Default layouts (landscape/portrait)
- Input translation (touch to game input)
- Rendering with egui
- WASM touch event handling
- Mobile device detection
- Integration points
- Testing plan
- Future enhancements

### Icon and Screenshot Directories
- Created wasm_resources/icons/ with README
- Created wasm_resources/screenshots/ with README
- Documented icon requirements and generation
- Provided placeholder guidelines

## What's Ready to Use

✅ PWA can be installed on mobile devices
✅ Game works offline after first load
✅ Service worker caches assets intelligently
✅ Install prompts appear on mobile
✅ Update notifications when new version available

## What's Next

Phase 1 continues with:
- Rust implementation of touch controls
- Virtual joystick component (egui)
- Action button system
- Touch event integration
- Mobile device detection in Rust
- Responsive UI scaling
- Performance optimization

## Testing Notes

To test PWA features:
1. Build: `just build-web`
2. Serve: `just run-web`
3. Open on mobile browser (Chrome/Safari)
4. Check for install prompt
5. Install and test offline mode
6. Verify service worker in DevTools

## Technical Details

- Service worker uses versioned caches (v1.0.0)
- Manifest supports shortcuts and share targets
- Install prompt handles iOS and Android differently
- Build script validates PWA resources
- All PWA features are optional/progressive

Breaking Changes: None (additive only)

Dependencies: None (pure web standards)
@ryusuzaku ryusuzaku closed this Nov 10, 2025
@ryusuzaku ryusuzaku deleted the claude/fishy-modernization-planning-011CUx6Lx9euNZWNXBv3Na9i branch November 10, 2025 05:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants