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)
-
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
-
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
If you want to package GameFlowConnect into a standalone Windows executable and generate a professional installation wizard (setup.exe) for distributing the software, follow these steps:
Before generating the setup installer, compile the Python application using the automated build script. With your virtual environment (venv) active, run:
# On Windows PowerShell
.\venv\Scripts\python.exe build_exe.pyThis will clean up any previous build outputs and bundle all required libraries (including CustomTkinter themes and assets) under the directory dist/GameFlowConnect/.
It also automatically generates a compressed portable ZIP package at:
👉 dist/GameFlowConnect_v<version>_Portable.zip
You can verify the portable version by running the executable directly:
👉 dist/GameFlowConnect/GameFlowConnect.exe
To bundle the compiled files into a modern Windows installation wizard:
- Download and install Inno Setup.
- Open the Inno Setup Compiler.
- Open the
GameFlowConnect.issscript (located in the project root directory). - Click Build > Compile from the top menu or press
F9. - The compiler will package the executable directory and output the installer program at:
👉 Output/GameFlowConnect_Setup.exe
This GameFlowConnect_Setup.exe is the final wizard ready to install the application with Desktop and Start Menu shortcuts.
Note
This project is open-source and non-commercial. The Windows installer generated via Inno Setup is intended for non-commercial distribution and testing purposes.
Tip
Troubleshooting Installer Error 4551: If running GameFlowConnect_Setup.exe fails with "Unable to execute file in the temporary directory. Error 4551: an access control policy blocked this file", a Windows policy (e.g., Smart App Control or AppLocker) is blocking execution in the user Temp folder.
- Easiest Solution: Simply use the portable version
dist/GameFlowConnect_v<version>_Portable.zip. Extract the ZIP and runGameFlowConnect.exedirectly. Since it runs out-of-the-box and does not extract helper stubs to the Temp directory, it bypasses the policy block entirely. - Bypass via CMD: Alternatively, you can override the temp environment variables before launching the installer:
mkdir C:\Temp set TEMP=C:\Temp set TMP=C:\Temp GameFlowConnect_Setup.exe
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.