Tuesday, July 23, 2013

Howler and Linux

Support for Linux with Wine is greatly improved as of our latest alpha release.  The program in general now seems very stable with main components operating as expected.  The only hold-out is the plugin interface.   There's only a small handful of plugins that are currently stable.  The main problem seems to be in how windows are attached to the main program.  Also, there seems to be some differences in how the COM interface handles specific types of data.  These may be patchable, but for now, our priority is to continue to internalize plugins.  That route is compatible with our goals overall.  We have been systematically internalizing plugins for the last several releases, starting in the version 7 lifecycle.  This effort has been to standardize the interaction of various parts of the program, the functioning of windows within the program, etc.  In rare cases, plugin windows could become disassociated from the main window.  There was also a small marshaling penalty when using the COM interface.  Basically, plugins were external ".exe" programs that executed along-side the main program and interfaced with it through a COM interface.  There were many advantages to this powerful plugin interface.  It made it possible to release new features without releasing full updates to the main program.  However, we found, that after that initial release, the benefits were outweighed by the extra effort that was required to maintain those programs separate from the main program.
Internalizing plugins lets us improve stability because plugins required a complex locking mechanize when the plugin and main program needed to run synchronously.  It also helps us to maintain a standard look and feel as the internalized plugins can use the built in preference system more easily, as well as taking advantage of the latest performance enhancements that might not have been available through the plugin interface.  Avoiding marshaling also gives us a small speed improvement.  Other improvments come just because we are going over the code again with a fine-tooth-comb.

1 comment:

  1. Hi Dan
    Just purchased Howler 10. I'm on RC34 and I up-graded Play on Linux and latest Wine. Would you believe it It's working! I must admit that it crashed at first attempt but I switched to CPU graphics and it was fine.
    I'm running Ubuntu 14.04 on an old twin core AMD.
    Hope this encourages more Linux users to try.