DEV Community

tecomoavocados
tecomoavocados

Posted on • Edited on

🚀 Avocado Game Launcher – From Idea to Release 1.0.1

Game launchers are everywhere: Steam, Epic, GOG, Ubisoft… but most of them feel heavy, fragmented, and locked to a specific ecosystem. As a developer, I wanted to challenge myself: can I build a lightweight, open, and extensible game launcher that gives me control over my own library?

That’s how Avocado Game Launcher started.


🎯 Motivation

The main drivers behind the project:

  • Learning opportunity – I wanted to put into practice packaging desktop apps with PyQt6 + PyInstaller.
  • Control over my library – I have games spread across different stores; I wanted one simple interface.
  • Experimentation – how far can I push Python in the desktop space?

The name? I like avocados 🥑, and it stuck.


🛠️ Technical Overview

  • Python + PyQt6 – Modern cross-platform GUI, fast prototyping.
  • PyInstaller – Bundling into a standalone .exe without external dependencies.
  • dotenv – Managing API keys and configuration safely.
  • RAWG API – Fetching metadata (covers, info) to enrich the library.
  • JSON storage – Simplicity over complexity; no need for a DB (yet).
  • Custom i18n module – Allowing easy translations of UI elements.

🔑 Current Features

  • Import local executables into the launcher.
  • Automatically fetch covers and info from the RAWG API.
  • Support for importing Steam installed games.
  • Persistent user settings and library via JSON.
  • Clean multi-language support.

🚀 Version 1.0.1 – What’s New

  • Improved UI and icons for a cleaner look.
  • Added Steam integration to detect installed games.
  • Displaying more game metadata inside the launcher.

📚 Lessons Learned

  1. Packaging is tricky – Handling relative paths with PyInstaller required a proper resource_path() utility.
  2. Circular imports are real – Splitting responsibilities across core/ modules helped me untangle dependencies.
  3. APIs enrich UX – Just showing an .exe name isn’t enough; fetching metadata makes the library feel alive.
  4. Keep it simple – JSON storage is more than enough at this stage; no need for databases.

🛣️ What’s Next?

  • Support for other platforms (Steam, local, etc.)
  • Customization (themes, layouts, user settings)
  • Cloud sync to keep libraries portable
  • Packaging for Linux/macOS

đź’ˇ Final Thoughts

Building Avocado Game Launcher has been both fun and frustrating — PyInstaller path issues, environment variables not loading, and chasing circular imports. But every challenge taught me something about desktop development in Python, and it’s rewarding to see it work as a real application.

The project is open-source, and I’d love feedback from fellow developers:

👉 GitHub – Avocado Game Launcher

👉 Itch.io Release Page

Thanks for reading, and if you’ve ever wanted to roll your own launcher, maybe this inspires you to start. 🥑

Top comments (0)