Pages

Thursday, September 24, 2015

PlayOnLinux and PlayOnMac 5 the Current state

Hi everybody,

I'm writing this post to give some news about PlayOnLinux and PlayOnMac v5. First of all, the development 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 implementation 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 development 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.

Scripting

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:
1
2
3
4
5
6
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):

Performances

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)

Testing

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.

Cheers,

The newest CodeWeavers CrossOver coupon promo codes are
( WEAVEME ) and ( CRIMBO25 ) save 25% off CrossOver Mac or Linux today!

1 comment:

Miguel Mayol said...

Thanks a lot for all your work.

I would like not to have - always - a new installation for each software. Wasting disk space.

I mean to be asked to install at the latest wine version (that should work) or make a new "best known wine version for this package", but if it does work with one version installed do not install that version again.

And of course, a way to pre setup each game from the icon link to start it using wineprefix

And even better, add to the installer / launcher interface a menu item to launch desktop (perhaps KDE for MS WOS based) interfaces, that can be launched in window or full screen mode at any selected resolution, for each wine version installed.

Also add FOSS and FREE wine software webpages to download as ninite or allmyapps, Quakelive (it works with firefox) and a Linux directory with all the links to the programs installed able to put them at docks and at menus, some utility to add them to the wine menu (as some does not put themselves there automatically)

And an easy way to move installations to other partitions or directories, allowing easy migrations and use from different installs (I use to have triple boot with Manjaro Ubuntu and some other testing distro letting shared resources at other partitions)