Du bist hier    Neuigkeiten nl sv ru pl es fr en

PlayOnLinux 5: Current state

Thursday 10 September 2015 at 18:51

Hi everybody,

I'm writing this post to give some news about PlayOnLinux v5.

First of all, the developement is rather going well. It takes quite a lot of time because we have to maintain PlayOnLinux 4 and the servers at the same time, and a lot of work remains to be done. This is why it is not possible to give an ETA for the release. However, I can show you what is done so far.

User interface

I guess that this is one of the topic that will concern you the most. A good news is that the application is designed to be totally decoupled from PlayOnLinux core. Basically, it means that we can end up with several interface implementtion without changing the core (containing most features)

JavaFX interface

This is the main reference interface. This interface is supported on Linux and on OSX. We are trying to spend time to make it as user friendly as possible to avoid any confusion.

Here are some screenshot of the current version:

Installed applications


Available applications. (We want to replace POL logos by something unique for each program)



Available applications: Description of an installer




This is a script installing a version of wine (1.7.39)




Future configuration window



QT Interface

We are also aware that some of you do not really like the idea of having a non native interface. This is why some effort are put in the implementation of a QT interface. (This developement is mostly done by seijikun, a big thank to him).

This interface aims to be as close as possible to PlayOnLinux 4 current interface.

The QT interface is not fully implemented at all for the moment, I'm personally putting some effort in implementing the core features, so I do not have a lot of time to help seijkun. But still, here is a screenshot so that you can have an idea.

CLI interface

The CLI interface is not implemented yet at all. We want, on the long run to be able to run PlayOnLinux from the command line.

Integration test mock interface

This interface allows us to run automated test. I'll talk about this in a short paragraph.





Introducing templates

The scripts (or installers) are written in Python. Basically, it will give to the scriptors as much liberty as they have in PlayOnLinux 4. However, we are also going to support a new concept: Installers templates.

Installers templates are reusable scripts. For example, we will write one script for all Source games.

A more complex example would look like this: 

(Yes some games are natively available on Linux, but it is just for the example ;-))


With this example, the Diablo III script would be "complex", like current scripts, but Half-Life script would look like this:

class HalfLife(WineSteamInstaller):
    title = "Half-Life"
    prefix = "Prefix"
    wineversion = "1.7.34"
    steamId = 130
    packages = ["package1", "package2"]

The choice of the base template is made by the scriptor.

New tools

We have integrated a Python console inside the application so that scriptors can test PlayOnLinux framework (Sorry for the quality):



Memory consumption

In terms of memory, PlayOnLinux 5 seems to use a little more memory than PlayOnLinux 4.

It is expected because contrary to PlayOnLinux 4, everything us running in a single multi-threaded process. PlayOnLinux 4 is creating a lot of processes, making memory measurement very hard, and wasting a lot of resources.


Interface performances

We've run some benchmark to compare interface performances. PlayOnLinux 5 is running way faster. In fact, it was impossible to script a smooth progressbar with PlayOnLinux 4 because the wizard was responding too slow. To measure the responsiveness of the interface, we compare the time required to show 1000 messages in a wizard.

Here are the results (lower is better):

And a video highlighting the difference:

https://www.youtube.com/watch?v=b57JIFCQg54 (PlayOnLinux is the window on the right)




Automated testing is part of the code quality. With the new application design, we can run automated tests on a daily basis to detect breaks (in script, or in PlayOnLinux itself). So far, we have written three integration tests:

We also write unit tests for non UI classes.



I think that this is all I have to present for the moment. If you have any question, feel free to comment. I will edit the news if I find anything else.


Quentin PÂRIS


Unknown column 'r.nom_de' in 'field list'


Es gibt noch keine Kommentare. Fühle dich frei, einen zu schreiben

Schreibe einen Kommentar


You must be logged in to post a comment