Heroine's Quest - The Herald Of Ragnarok - doesn't work at Linux

Started by alexpricker, Sun 19/04/2015 20:02:34

Previous topic - Next topic

alexpricker

I have the probleme with this game play on Linux
Code: ags

AGS: Adventure Game Studio v3.3 Interpreter
Copyright (c) 1999-2011 Chris Jones and 2011-2014 others
ACI version 3.3.3.0

AGS: *** ENGINE STARTUP ***
AGS: Reading config file
AGS: Initializing allegro
AGS: Setting up window
AGS: Initializing game data
AGS: Game data file: /home/chief3/games/Heroines Quest/Heroine's Quest.exe

AGS: Initializing TTF renderer
AGS: Initializing mouse
AGS: Checking memory
AGS: Initializing speech vox
Speech sample file found and initialized.
AGS: Initializing audio vox
Audio vox found and initialized.
AGS: Initializing keyboard
AGS: Install timer
Checking sound inits.
AGS: Initialize sound drivers
AGS: Install exit handler
AGS: Initialize path finder library
AGS: Load game data
AGS: Game data version: 43
AGS: Requested engine version: 3.3.0.1162
AGS: Game GUI version: 116
AGS: Built library path: ./libagsteam.so
AGS: dlopen returned: libsteam_api.so: невозможно оÃ'‚кÃ'â,¬Ã'‹Ã'‚Ã'Å' Ã'â,¬ÃÂ°ÃÂ·ÃÂ´ÃÂµÃÂ»Ã'ÐµÐ¼Ã'‹Ð¹ обÃ'ŠÐµÐºÃ'‚нÃ'‹Ð¹ Ã'„айл: НеÃ'‚ Ã'‚акого Ã'„айла или каÃ'‚алога
AGS: Built library path: /home/chief3/games/Heroines Quest/libagsteam.so
AGS: dlopen returned: libsteam_api.so: AGS: dlopen returned: libsteam_api.so: can not open shared object file: No such file or directory
AGS: Plugin loading failed, trying built-in plugins...
AGS: No built-in plugin found. Plugin loading failed!
AGS: No placeholder functions for the plugin found. The game might fail to load.
Script link failed: Runtime error: unresolved import 'AGSteam::SetAchievementAchieved^1'

I have both library in directory of game:
/home/chief3/games/Heroines Quest/libagsteam.so
/home/chief3/games/Heroines Quest/libsteam_api.so
How I can solve this probleme?

Monsieur OUXX

I can't be sure but my intuition tells me that the culprit is a custom plugin (maybe the Steam plugin? I can read "libagssteam" in the error message) -- AGS is cross-platform but (almost) all custom plugins work only on Windows.

That said, The people behind Herione's Quest are so badass that it's perfectly possible that they took advantage of the latest AGS refinements that make it much more cross-platform.

Conclusion: Go to HQ's download page. Does it say it's compatible with Linux?
 

Crimson Wizard

You need to get Steam plugin stub, the thing that simulates the presence of that plugin.
You can get standard binaries and source code here:
https://bitbucket.org/monkey0506/agsteamstub/

monkey0506

If it's failing to load libsteam_api.so that indicates that you probably copied the wrong shared library for Steam (32-bit/64-bit mismatch) or you don't even have Steam installed.

The stub is a viable option if you aren't using Steam, but I wanted to point out that this game does work with Steam for Linux.

Crimson Wizard

Quote from: alexpricker on Sun 19/04/2015 20:02:34
I have both library in directory of game:
/home/chief3/games/Heroines Quest/libagsteam.so
/home/chief3/games/Heroines Quest/libsteam_api.so

Oops, I missed this part.
Yes, if there are linux plugins already, your do not need stub.

alexpricker

Quote from: monkey_05_06 on Mon 20/04/2015 16:22:07
If it's failing to load libsteam_api.so that indicates that you probably copied the wrong shared library for Steam (32-bit/64-bit mismatch) or you don't even have Steam installed.

The stub is a viable option if you aren't using Steam, but I wanted to point out that this game does work with Steam for Linux.
I am install steam_latest.deb. Where I can find 64bit libsteam_api.so. Or I have rebuild AGS source with 32 bit options?

alexpricker

Quote from: Crimson Wizard on Mon 20/04/2015 16:36:57
Quote from: alexpricker on Sun 19/04/2015 20:02:34
I have both library in directory of game:
/home/chief3/games/Heroines Quest/libagsteam.so
/home/chief3/games/Heroines Quest/libsteam_api.so

Oops, I missed this part.
Yes, if there are linux plugins already, your do not need stub.
How I can stub plugin?

Crimson Wizard

Plugin stub is here: https://bitbucket.org/monkey0506/agsteamstub/overview
Build it from source.
The stub will force game to run, but Steam stuff (achievements) won't work.

alexpricker

What option I have to use for compile each file? And what I should do with compled file?
Can I put this file in folder with game and libstean.so?

Crimson Wizard

Quote from: alexpricker on Thu 23/04/2015 13:22:14
What option I have to use for compile each file? And what I should do with compled file?
Can I put this file in folder with game and libstean.so?
Hmm, I now noticed that the repository does not contain any makefile. :confused:
Should wait for author to make an explanation then...

UPD. Did you try using compiled binaries? https://bitbucket.org/monkey0506/agsteamstub/downloads


UPD2: I googled the "64-bit libsteam_api.so" and found this: http://steamcommunity.com/app/280040/discussions/1/540744934357919937/
May this be related?

alexpricker

I use this binary and after that I create this Topic.
I thank you for trying help me but this post cant solve probleme, I have no idea what game have 64 bit version of libsteam_api.so

Crimson Wizard

Quote from: alexpricker on Thu 23/04/2015 20:13:09
I use this binary and after that I create this Topic.
These binaries I refered in my last post are the ones of the *stub*, not actual plugin. They should not try to load libsteam_api.so; at least I hope they won't.

alexpricker

But with in this game we have trouble. What else I can do for solving probleme? Who can test this game on Linux?

alexpricker

Code: ags

export LD_LIBRARY_PATH=~/.local/share/Steam/SteamApps/common/Demise\ of\ Nations\ -\ Rome/libs/natives/libsteam_api.so
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":. && ags Heroine\'s\ Quest.exe

But now I have another probleme
Code: ags

AGS: Game GUI version: 116
AGS: Built library path: ./libagsteam.so
AGS: dlopen returned: libsteam_api.so: not right ELF: ELFCLASS32
AGS: Built library path: /home/chief3/games/Heroines Quest/libagsteam.so
AGS: dlopen returned: libsteam_api.so: not right ELF: ELFCLASS32
AGS: Plugin loading failed, trying built-in plugins...
AGS: No built-in plugin found. Plugin loading failed!
AGS: No placeholder functions for the plugin found. The game might fail to load.
Script link failed: Runtime error: unresolved import 'AGSteam::SetAchievementAchieved^

Crimson Wizard

Quote from: alexpricker on Thu 23/04/2015 20:34:46
But with in this game we have trouble.
I just want to make this clear, did you try the library from this link?
https://bitbucket.org/monkey0506/agsteamstub/downloads

This not the real steam plugin. It has same name, but it is supposed to work differently and not require libsteam_api.so.
Was it exactly the library you tried first?
I just want to be sure we talk of same thing.

monkey0506

The agsteamstub source can be compiled with gcc. I don't have a makefile because I just used Code::Blocks. It should be built as "libagsteam.so". I recall using "-fPIC" and of course "-m32" for the 32-bit variant. I set the rpath of the full plugin, but I don't think I did that for the stub. I will confirm any other settings later, when I have it in front of me.

The stub does not in any way reference libsteam_api.so or the Steamworks API, so any errors of that sort mean you definitely still have the full plugin, not the stub.

alexpricker

I use only your library from BitBucket and have this
Code: ags

AGS: Install exit handler
AGS: Initialize path finder library
AGS: Load game data
AGS: Game data version: 43
AGS: Requested engine version: 3.3.0.1162
AGS: Game GUI version: 116
AGS: Built library path: ./libagsteam.so
AGS: dlopen returned: libsteam_api.so: can not open shared object file: No such file or directory
AGS: Built library path: /home/chief3/games/Heroines Quest/libagsteam.so
AGS: dlopen returned: libsteam_api.so: нcan not open shared object file: No such file or directory
AGS: Plugin loading failed, trying built-in plugins...
AGS: No built-in plugin found. Plugin loading failed!
AGS: No placeholder functions for the plugin found. The game might fail to load.
Script link failed: Runtime error: unresolved import 'AGSteam::SetAchievementAchieved^1'

I dont have any library namen libagssteam.so on PC.

Monsieur OUXX

This is why I never ever use Linux. "Oh you want to run this game? Ever heard of the -m32 compiling switch?" ;)(roll)
 

alexpricker


monkey0506

Hmm... Actually, I just recalled that I hosted the full plugin on the "Downloads" page of the stub, because my other host deleted my account. That's probably confusing... I was just looking for somewhere to host the full plugin.

In any case, have you tried building the stub from source? Or, you know, since you have Steam installed, just downloading/launching the game from the Steam client?

alexpricker

OK I've try to compile source in Code::Block.

And test game with steam library, I have to compile AGS in 32 bit for test, because I libsteam_api.so only 32 bit from SOURCE_SDK_2013.

monkey0506

libsteam_api.so is included in the Steam download for both 32-bit and 64-bit.

If you download the game from Steam, then you do not need to compile or add anything additionally.


Actually, I was double-checking myself because I didn't actually do the Steam release on this one, I just added some extra features to the plugin. My apologies, it seems that this game was never actually released on Steam for Linux.

In that case, you can use the Windows executable, but you will need to compile the agsteamstub. I didn't provide binaries of the stub because of numerous people decrying "some random dude from the internet" handing out compiled code - despite the fact that I am the original plugin author, and the code I write is distributed (and in some cases, embedded) in the games.

Sorry about the confusion, I was sure that we (Screen 7, whom I do most of the Steam integrations for) had released this on Linux as well.

alexpricker

This game on Steam FreetoPlay. If this game use AGS for windows, why AGS for linux cant. This is one source code for both OS's.
Sierra online make game for DOS/Windows, if i install SCUMVM I can play game on any OS what I want, Windows,Linux,Android,MacOS.
In the root of Andventure Games Studio lay idea: popularisation point click game, reborn this type of game. With this idea Chris Jones write AGS for DOS, and next rewrite code in crossplatformway. I want populariation Linux, and people like me with enthusiasm make remake of old games and searching way run it on native code.


alexpricker

http://crystalshard.net/?g=16
Look on the official page of game you can download this game from desura directly
in the folder gave AGSteam.dll 20kb

alexpricker

http://www.adventuregamestudio.co.uk/forums/index.php?topic=44712.0
Crimson Wizard wrote
Quote
There seem to be a custom made version for linux.
https://github.com/onitake/agsteamstub
Don't know which functionality it replicates, but apparently it makes it possible to run steam version of Heroine Quest.
In theory this will also make possible to run any other game that requires AGSteam plugin.


alexpricker

monkey_05_06^
QuoteSeeing as any games distributed via Steam for Linux will likely have achievements and so forth, it's better to use the official shared libraries for Linux, now that I've made them available. I was working on it back in December but lost track of the files, and in the meantime forgot how rpath works. Now that I got that all sorted out, everything appears to be working (tested on Linux Mint 15). You can thank Mark Lovegrove for breathing down my neck on that one. (nod)


5 April 2014 - Recent changes to the plugin made it possible to crash the game if the Steam client wasn't loaded, which was a major regression from previous versions. That is fixed in both the Windows and Linux versions.

onitake
QuoteHi, I'm the author of that plugin.

I apologize for not discussing my intention to write a replacement to the "real" AGSteam beforehand, I wasn't sure how far I would get and if it would actually work out.
It probably would have been better to ask the developers of Heroine's Quest for a Steam-free version instead, but well, I also wanted to learn a bit about programming for AGS myself, so I just went ahead and started replicating the functionality of your plugin.

Since I got everything working quite quickly, I decided to just stuff the code on my github and post a note on the Steam forums. There doesn't seem to be much interest so far, I guess I'm filling a bit of a niche here.
I also posted an update today that stores the statistics and achievements to disk and loads them on startup.

I'm a bit unsure of how to proceed now. Do you think I should rather take the repository down? Or maybe release a binary-only plugin that will only work with Heroine's Quest? Maybe I should ask the developers to make a Linux version lacking Steam integration available on their website... Or is it ok for you if I keep the code publicly available?


alexpricker

Monkey:
QuoteYou authored that code yourself, and it doesn't reference the Steamworks API, so I have no issues with you leaving the code public. Bear in mind that the Steam for Linux version of AGS games uses the original Windows EXE (meaning, no DRM) and there are official versions of the AGSteam plugin available for Linux. If you want to include other features in your stub then feel free -- I can't tell you what to do with your own code. By comparison, if the Steam client isn't running then the official AGSteam plugin functions should all be no-ops.

alexpricker

What do you think now? Can we run this game on Linux or noway.

ChamberOfFear

I don't quite understand why or how you get errors about steam warnings. When I try to run Heroine's Quest through Wine in Ubuntu using the Desura download the game starts like it should.

Do you still have problems with a fresh download of the game? It should be this one.

EDIT:
Unless you meant you wanted to run it without wine which is a possibility I missed. Again, I was able to make this work just fine by downloading Heroine's Quest from Desura. Followed the steps for ags debian, and onitake/agsteamstub. And it runs just fine when I go to the game folder by terminal and type "ags".


SMF spam blocked by CleanTalk