Jibble

Author Topic: Whispers of a Machine engine on Linux (WoaMAGS)  (Read 490 times)

Hello everyone. First time poster around here.
After finishing the wonderful Whispers of a Machine (using Wine)
I wondered why it was not available on Linux,
since other commercial AGS titles are. Hereby I wrote to the game creators
and I found out they released the source code of their custom AGS engine.

Joel kindly replied me they did not have the resources nor the time
nor a concrete economic reason to support a native Linux version,
but he welcomed an unofficial community port if I really cared about it.

So I started looking at the code trying to compile it.
Very naïvely, in view of several Linux-ready Makefiles too,
I thought it would be quite easy. However WoaM AGS was based on v.3.3.0.
In my understanding v.3.3.0 was never meant to be fully compilable on Linux.
As a matter of fact there are a couple of typos, undefined types
and at least one missing header for software rendering.
I tried patching some bits up, but I stopped
when I wasn't able to understand what I was doing anymore.

Did anyone ever succeed in compiling WoaM AGS on Linux?
Did anyone ever succeed in compiling AGS v.3.3.0 on Linux?
Would you use the latest build of AGS to port WoaM to Linux
or do you think it's better to port the original code?

I was able to play Whispers of a Machine first rooms using AGS v.3.5.0.24
and WoaM AGS AGSSpriteFont plugin, with just a minor edit to the engine
for 640x360 resolution support.
« Last Edit: 21 Apr 2020, 16:22 by Matteobin007 »

Re: Whispers of a Machine engine on Linux (WoaMAGS)
« Reply #1 on: 21 Apr 2020, 10:45 »
Linux port is formally supported since 3.3.0, and people were running games on Linux using 3.3.0 engine in the past, but there was always bunch of problems with it.

My personal IMHO is that it could be simplier to branch of v.3.5.0.24 (release-3.5.0 branch in the official repository), and copy their necessary changes over. (I recall we already applied chosen changes from WoaM and Kathy Rain custom engines, such as certain script API functions)
Besides other things, 3.5.0 properly supports OpenGL on Linux, making playing smoother. There's also SDL audio driver add-on made for Allegro4, replacing standard ALSA one, which plays sounds much better on linux systems.
(maybe having only software gfx and unstable sounds were reasons why they did not manage to support Linux version)

(I also know that few people have already played WoaM with official 3.5.0 version even ignoring some strangeness, like slightly mismatching resolution.)
« Last Edit: 21 Apr 2020, 10:50 by Crimson Wizard »

Re: Whispers of a Machine engine on Linux (WoaMAGS)
« Reply #2 on: 23 Apr 2020, 08:03 »
Thank you for the answer Crimson Wizard.
Would mirroring v.3.5.0.24 mean I should keep updated
the Linux port with standard AGS development?

I would like to ask to all forums users as well if is there anyone
interested in a Linux version, willing to help me test the game
with different distros and PC settings.

Moreover I have one additional question for Crimson Wizard.
When I played Whispers of a Machine first rooms with the latest AGS version
I noticed my Windows/Wine saved games were not compatible with this home made
Linux port. Is this because of differences between the two platforms,
or maybe is it due to some code changes from v.3.3.0 to v.3.5.0.24?
« Last Edit: 23 Apr 2020, 08:07 by Matteobin007 »

Re: Whispers of a Machine engine on Linux (WoaMAGS)
« Reply #3 on: 23 Apr 2020, 22:59 »
Would mirroring v.3.5.0.24 mean I should keep updated
the Linux port with standard AGS development?

I don't quite understand this question. If you fork from 3.5.0.24 you get everything that 3.5.0.24 has, but then you could do to it anything you like, since it will be your own private copy of code. So what you do will depend solely on what you want to achieve.


Moreover I have one additional question for Crimson Wizard.
When I played Whispers of a Machine first rooms with the latest AGS version
I noticed my Windows/Wine saved games were not compatible with this home made
Linux port. Is this because of differences between the two platforms,
or maybe is it due to some code changes from v.3.3.0 to v.3.5.0.24?


It's hard to tell. 3.5.0.24 still maintains compatibility with 3.3.0 saves, in theory, but firstly WoaM own custom engine could have changed save format, and secondly plugins also sometimes add their data in the saves, so difference in plugin may affect this.

EDIT: After writing an answer I began to wonder if I read your situation other way around. Which version were saves made in originally and where did you try them in?
« Last Edit: 24 Apr 2020, 11:13 by Crimson Wizard »

Re: Whispers of a Machine engine on Linux (WoaMAGS)
« Reply #4 on: 26 Apr 2020, 14:19 »
Dear Crimson Wizard,
sorry if my phrasing wasn't clear.
What I meant was:
since you suggested me to ground WoaM Linux port on the current AGS version,
should I always keep the port on par with the latest release
or is it better to stick with the current one?

Regarding the saved games dilemma you got it right.
I tried using the official Windows version saves with my custom Linux port.
I'll investigate further.

Re: Whispers of a Machine engine on Linux (WoaMAGS)
« Reply #5 on: 26 Apr 2020, 17:06 »
What I meant was:
since you suggested me to ground WoaM Linux port on the current AGS version,
should I always keep the port on par with the latest release
or is it better to stick with the current one?

Hmm, well, keping it updated with official version may be beneficial if new version has improvements.
But it depends mostly on whether new version maintains backwards compatibility. So far it was always a rule, but it may change soon: https://www.adventuregamestudio.co.uk/forums/index.php?topic=57990.0

Monsieur OUXX

  • Mittens Vassal
  • Cavefish
  • Mittens Half Initiate
    • I can help with proof reading
    • I can help with translating
    • I can help with voice acting
    • Monsieur OUXX worked on one or more games that won an AGS Award!
    •  
    • Monsieur OUXX worked on one or more games that was nominated for an AGS Award!
Re: Whispers of a Machine engine on Linux (WoaMAGS)
« Reply #6 on: 08 May 2020, 09:15 »
How I would proceed :
- clone the WoaMAGS repo somehwere on your hard drive
- Run the custom version of the Editor at least once to see if you visually spot the customizations. New native objects in the scripting language? New nodes in the editor? Maybe try to identify what is now natively offered in AGS 3.5 since AGS 3.3. Do you need any of that?
- clone the AGS 3.5.0.x repo
- find a way of comparing the to repos (I don't think you can do a merge because the WoaMAGS is no longer a branch of AGS, but you can find tools that do recursive diffs on all the files of all the subfolders)
- Assert the degree of customization. Compare with what you saw in step #2. My guess : They mostly added stuff. And wherever they did that, it's probably easy to spot and see how it's still relevant in 3.5.
- Do the merge.
- Enjoy AGS 3.5.0 on Linux
- You won't need to keep up with the newer version of AGS before quite some time, and even if you do, now that you've upgraded to 3.5 you'll probably only need to do a merge from master from tie to time in order to upgrade.
« Last Edit: 08 May 2020, 09:19 by Monsieur OUXX »