171 lines
4.5 KiB
Markdown
171 lines
4.5 KiB
Markdown
# FF-TCG Digital
|
|
|
|
A digital implementation of the Final Fantasy Trading Card Game (FF-TCG) for Linux, featuring an isometric 3D two-player tabletop view.
|
|
|
|
## Overview
|
|
|
|
This project aims to create a faithful digital recreation of the FF-TCG, allowing two players to play on the same machine with a visually appealing isometric 3D presentation.
|
|
|
|
## Features (Planned)
|
|
|
|
### MVP Features
|
|
- Local two-player gameplay on the same machine
|
|
- Isometric 3D game board with fixed camera angle
|
|
- Core game mechanics:
|
|
- Turn phases (Active, Draw, Main 1, Attack, Main 2, End)
|
|
- CP (Crystal Points) generation system
|
|
- Character deployment (Forwards and Backups)
|
|
- Summon casting
|
|
- Combat system (attack, block, damage resolution)
|
|
- Win condition tracking (7 damage)
|
|
|
|
### Future Features
|
|
- Keyword abilities (Haste, Brave, First Strike, Freeze, Back Attack)
|
|
- EX Burst system
|
|
- Limit Break / LB Deck mechanics
|
|
- Priming mechanic
|
|
- AI opponent
|
|
- Network multiplayer
|
|
- Deck builder
|
|
- Card collection management
|
|
|
|
## Requirements
|
|
|
|
- **Operating System**: Linux (Ubuntu 22.04+ recommended)
|
|
- **Engine**: Godot 4.2+
|
|
- **Display**: 1920x1080 minimum resolution recommended
|
|
|
|
## Installation
|
|
|
|
### Installing Godot 4.x
|
|
|
|
#### Option 1: Download from Official Website
|
|
1. Visit https://godotengine.org/download/linux/
|
|
2. Download the Godot 4.x standard version
|
|
3. Extract and run
|
|
|
|
#### Option 2: Using Flatpak
|
|
```bash
|
|
flatpak install flathub org.godotengine.Godot
|
|
```
|
|
|
|
#### Option 3: Using Snap
|
|
```bash
|
|
sudo snap install godot-4
|
|
```
|
|
|
|
### Running the Game
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone https://git.lazypugs.com/ckoch/FFCardGame.git
|
|
cd FFCardGame
|
|
```
|
|
|
|
2. Open in Godot Editor:
|
|
```bash
|
|
godot4 --editor project.godot
|
|
```
|
|
|
|
3. Run the game:
|
|
- Press F5 in the Godot editor, or
|
|
- Run from command line:
|
|
```bash
|
|
godot4 --path . scenes/main/Main.tscn
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
FFCardGame/
|
|
├── assets/
|
|
│ ├── cards/ # Card image textures
|
|
│ ├── ui/ # UI elements and icons
|
|
│ └── table/ # Table/playmat textures
|
|
├── data/
|
|
│ └── cards.json # Card database
|
|
├── docs/
|
|
│ ├── DESIGN.md # Architecture documentation
|
|
│ ├── CARD_FORMAT.md # Card data specification
|
|
│ └── RULES.md # Implemented game rules
|
|
├── scenes/
|
|
│ ├── main/ # Main game scene
|
|
│ ├── table/ # 3D table setup
|
|
│ ├── card/ # Card visual prefab
|
|
│ └── ui/ # UI scenes
|
|
├── scripts/
|
|
│ ├── autoload/ # Singleton scripts
|
|
│ ├── game/ # Core game logic
|
|
│ ├── visual/ # Visual/rendering scripts
|
|
│ └── ui/ # UI controller scripts
|
|
├── project.godot # Godot project file
|
|
└── README.md # This file
|
|
```
|
|
|
|
## Game Rules Reference
|
|
|
|
This implementation follows the official FF-TCG Comprehensive Rules v3.2.1. Key mechanics:
|
|
|
|
### Elements
|
|
- Fire, Ice, Wind, Lightning, Water, Earth, Light, Dark
|
|
- Light and Dark cards cannot be discarded for CP
|
|
- Maximum 1 Light OR Dark card on field at a time
|
|
|
|
### Card Types
|
|
- **Forward**: Attack and block, have Power values
|
|
- **Backup**: Generate CP when dulled, max 5 on field
|
|
- **Summon**: One-time effects, go to Break Zone after use
|
|
|
|
### Turn Structure
|
|
1. **Active Phase**: Activate all your dull characters
|
|
2. **Draw Phase**: Draw 2 cards (1 on first turn)
|
|
3. **Main Phase 1**: Play cards and use abilities
|
|
4. **Attack Phase**: Declare attacks and resolve combat
|
|
5. **Main Phase 2**: Play cards and use abilities
|
|
6. **End Phase**: Discard to hand limit (5), cleanup
|
|
|
|
### Win Condition
|
|
- Deal 7 points of damage to your opponent
|
|
- Each unblocked attack deals 1 damage
|
|
|
|
## Controls
|
|
|
|
| Action | Input |
|
|
|--------|-------|
|
|
| Select card/target | Left Click |
|
|
| Cancel/Details | Right Click / Escape |
|
|
| Pass priority | Spacebar |
|
|
|
|
## Development
|
|
|
|
### Building for Distribution
|
|
|
|
```bash
|
|
# Export for Linux
|
|
godot4 --headless --export-release "Linux/X11" build/fftcg-linux.x86_64
|
|
```
|
|
|
|
### Running Tests
|
|
|
|
```bash
|
|
# Run from project directory
|
|
godot4 --headless --script tests/run_tests.gd
|
|
```
|
|
|
|
## Contributing
|
|
|
|
1. Fork the repository
|
|
2. Create a feature branch
|
|
3. Make your changes
|
|
4. Submit a pull request
|
|
|
|
## License
|
|
|
|
This is a fan project for educational purposes. Final Fantasy and related content are trademarks of Square Enix.
|
|
|
|
## Acknowledgments
|
|
|
|
- Square Enix for the original Final Fantasy Trading Card Game
|
|
- The Godot Engine community
|
|
- FF-TCG community for rule clarifications
|