There are several game launchers for Linux already (like Lutris or GR-lida), but none of them is focused on compatibility with old Linux games or other ancient native applications. At the same time it is getting more and more difficult to get those old applications to run on modern Linux distributions.

This is a learning project for me, so the goal is not to extend any existing GUI frontend, but get familiar with various techniques and see how far I can get without any previous knowledge.

Project goals:

Day 1: Implement a GUI for adding, showing, modifying and deleting applications including a cover art (similar to GR-lida); proposed tech: QT Quick for GUI, individual XML or JSON files for storage

Day 2: Connect to MobyGames API to download game information. Allow user to choose "correct" cover art; proposed tech: web services, C++

Day 3: Implement isolated environment to run the game in (which is required both for the compatibilty aspect, but also for security, e.g. if the applications requires old libraries or glibc, has calling home functionality or if the applications cannot be trusted); proposed tech: Docker, Firejail or similar

Day 4: Find a way to generate the necessary configuration to start the isolated environment; maybe use templates for common problems?

Day 5: Cleanup

Bonus points: Get all of those 1000 games to compile and run add-emoji


Comments

  • fos
    7 months ago by fos | Reply

    Hackweek summary: Fought a lot with QT Quick. The interface generation is not as easy as expected and imho not faster than writing C++ directly. JavaScript integration is nice, but unfortunately every remotely complex task (like writing a file to disk) requires a C++ backend again.

    MobyGames API was surprisingly easy to work with and was used to list game information and covers.

    For the backend side Docker obviously wasn't the right match, so Firejail was used instead. However use home isolation and using an overlay at the same time wasn't possible, so I created a bug report.

    Due to this blocker I spent day 4 & 5 with learning some Ruby instead add-emoji

    A real frontend would require a lot more work, so with the new knowledge extending an existing frontend will very likely be a better alternative. As everything is in a very preliminary state and was primarily intended to learn new things I did not publish the result.

Similar Projects

This project is one of its kind!