Whispers of a Machine engine on Linux (WoaMAGS)

Started by Matteobin007, Tue 21/04/2020 10:14:34

Previous topic - Next topic

Matteobin007

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.

Crimson Wizard

#1
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.)

Matteobin007

#2
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?

Crimson Wizard

#3
Quote from: Matteobin007 on Thu 23/04/2020 08:03:49
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.


Quote from: Matteobin007 on Thu 23/04/2020 08:03:49
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?

Matteobin007

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.

Crimson Wizard

Quote from: Matteobin007 on Sun 26/04/2020 14:19:05
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

#6
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.
 

SMF spam blocked by CleanTalk