A Collaboration Tool for Game Artists, Programmers, and Designers
GameFlowConnect is a tool designed to facilitate effective collaboration between game artists, programmers, and designers by providing a centralized platform for the exchange and submission of assets within a project. The system is built with Python, leveraging Clean Architecture, SOLID principles, and CustomTkinter for a user-friendly and intuitive experience.
GameFlowConnect has evolved to a production-ready Clean Architecture structure:
- Domain Layer (
src/domain/): Pure business entities (Asset,ProjectContext) and enums (AssetType,SyncStatus), completely decoupled from UI or external APIs. - Use Cases Layer (
src/use_cases/): Application orchestrations (SyncAssetUseCase,ListAssetsUseCase) depending exclusively on repository abstractions (IAssetStorageRepository,ILocalStorageRepository) enforcing Dependency Inversion (DIP) and Interface Segregation (ISP). - Adapters Layer (
src/adapters/): Concrete implementations for Google Drive API (GoogleDriveAdapter), Local File System (LocalFileAdapter), and Mock Service (MockDriveAdapter) adhering to Liskov Substitution (LSP). - UI / Presentation (
src/components/): Atomic Design UI structure (atoms,molecules,organisms,pages,templates) with CustomTkinter. - Asset Synchronization Engine (Phase 1: Images): Enables seamless image asset sync (
.png,.jpg,.jpeg,.tga,.webp) from Google Drive directly into local Game Engine asset directories (/Assets/Images/). - Automated Unit Tests (
tests/): Fully covered unit and integration tests usingunittestandunittest.mock.
- Problem: In game development, mixing large binary assets (3D models, textures, audio) with source code in Git leads to repository bloat and merge conflicts.
- Solution: GameFlowConnect establishes a hybrid bridge: Google Drive for heavy binary assets and GitHub for code and scripts.
- Google Drive Integration (Cloud Asset Storage) Enables easy and secure storage, preview, and 1-click sync of game assets directly to local engine folders.
- GitHub Repository Integration Provides repository tracking, commit histories, and code management directly within the application.
- Local Game Engine Sync (Unity / Unreal / Godot)
Automatically creates and organizes local asset subdirectories (
Assets/Images,Assets/Docs,Assets/Models). - Clean Architecture & SOLID Design System Modular, testable, and maintainable codebase built with CustomTkinter.
- Demo Mode (1-Click Test) Allows offline exploration of all UI features using simulated mock data.
- Python 3.9 or higher
- Google Drive account
- GitHub account & GitHub Personal Access Token (PAT)
credentials.json(Google OAuth 2.0 Client ID credentials from Google Cloud Console)
To connect GameFlowConnect with real Google Drive API storage, follow these setup steps:
- Go to the Google Cloud Console.
- Click on the project dropdown at the top and select New Project.
- Name your project (e.g.,
GameFlowConnect-Dev) and click Create.
- In the Google Cloud Console, navigate to APIs & Services > Library.
- Search for Google Drive API.
- Click on Google Drive API and click Enable.
- Navigate to APIs & Services > OAuth consent screen.
- Select External (or Internal if using Google Workspace) and click Create.
- Fill in required fields:
- App name:
GameFlowConnect - User support email: Your email address
- Developer contact information: Your email address
- App name:
- Click Save and Continue.
- Under Scopes, click Add or Remove Scopes and select:
.../auth/drive(See, edit, create, and delete all of your Google Drive files)
- Under Test users (if in Testing mode), add the Google email addresses of your team members who will test the application.
- Navigate to APIs & Services > Credentials.
- Click + Create Credentials at the top and select OAuth client ID.
- Choose Application type: Desktop App.
- Set the Name to
GameFlowConnect Client. - Click Create.
- A dialog will appear with your Client ID. Click Download JSON.
- Rename the downloaded file to
credentials.jsonand place it in the root directory ofpython-gameflowconnecton each developer/artist machine.
-
Clone the repository:
git clone https://github.com/Germano123/python-gameflowconnect.git cd python-gameflowconnect -
Create and activate a virtual environment:
- Windows (PowerShell/CMD):
python -m venv venv .\venv\Scripts\activate - Linux / macOS:
python3 -m venv venv source venv/bin/activate
- Windows (PowerShell/CMD):
-
Install dependencies:
pip install -r requirements.txt
-
Add Google OAuth Credentials: Place your
credentials.jsonfile in the root directory of the project. -
Run the Application:
- Windows:
run.bat
- Linux / macOS:
chmod +x run.sh ./run.sh
- Direct Python:
python src/main.py
- Windows:
-
Run Unit Tests:
python -m unittest discover -s tests
The project's color scheme consists of:
Primary: #1e3743
Secondary: #1e3760
Accent: #00aa00
Contributions are welcome! Please refer to CONTRIBUTING.md for details on how to contribute to the project.