ENGINE PLUGIN: AGSteam v3.4 (Windows; Linux; Mac OS X)

Started by monkey0506, Thu 27/10/2011 05:05:47

Previous topic - Next topic

Crimson Wizard

I really think plugin author (monkey0506) must specify those requirements, because he should know better what did he use to compile them with.

Anyway, according to dependency walker, following dlls are required for that plugin to work:
MSVCP140.DLL
VCRUNTIME140.DLL
According to what I find in the web, "140" is a version of Visual C 2015. So they probably need that.
There may also be the problem, though, that there are different "sub-versions" of VC2015. At least that was true for VC2008 which is required for AGS Editor: we found that not very VC2008 matches, but one very precise package version, which we now include into AGS installer.

If you won't be able to find out why people who have VC2015 installed still cannot run the game, you may try following solution: uninstall all the visual C redistributables you have on system and reinstall them again step by step, checking whether your game works.
Of course, it is safer to do things like that on virtual machine, if you can make one.

Radiant

Quote from: monkey0506 on Thu 27/10/2011 05:05:47Download for Linux: (64-bit), (32-bit)

Hello! I'm in the progress of releasing a Linux version of Heroine's Quest, and I'm having some trouble getting achievements to work. I've just downloaded the 64-bit plugin from the link above since that's a newer version, but it turns out the 32-bit link above is a 404. Can someone help please?

(edit) ok, I've found the file.

Radiant

The above files cause the game to fail to load, with the error message:

ERROR: ld.so: object '/export/disk1/home/username/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

Script link failed: Runtime error: unresolved import 'AGSteam::SetAchievementAchieved^1'

Dave Gilbert

Sorry to necropost. I'm finding a number of users are complaining about the same issue Radiant reported. I usually have to send them a non-Steam build so they can run the game. Did anyone uncover a fix for this? The old link to MS Visual Studio 2015 seems to be broken now.

Crimson Wizard

#64
Quote from: Dave Gilbert on Wed 14/06/2017 19:44:10
Sorry to necropost. I'm finding a number of users are complaining about the same issue Radiant reported. I usually have to send them a non-Steam build so they can run the game. Did anyone uncover a fix for this? The old link to MS Visual Studio 2015 seems to be broken now.

You do not need Visual Studio, you need Visual C++ 2015 Redistributable libraries. or at least that is what I found last time.

I cannot test myself right now because I do not have any games which use this plugin, but I think it might be it:
https://www.microsoft.com/en-us/download/details.aspx?id=52685

I also found this page for all most latest versions of VC Redistributables, so posting just in case:
https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

Also, do you mean they have problem on Linux or Windows (or Wine under Linux)?

Dave Gilbert

It was windows. Thanks CW! I'll pass this link on and see if it works.

Dave Gilbert

#66
Huh. For some users it worked. For some users it didn't. Is there anything else that could be causing this?

edit: I've given Monkey0506 a poke on facebook about these issues and hopefully he will respond!

Crimson Wizard

Quote from: Dave Gilbert on Thu 15/06/2017 16:22:38
Huh. For some users it worked. For some users it didn't. Is there anything else that could be causing this?

Could you tell what exactly is happening? People were mentioning couple of different errors above (and Radiant you referred to was speaking about Linux port).

Dave Gilbert

It's specifically for Windows, and they receive the error "Script link failed: Runtime error: unresolved import 'AGSteam::SetAchievementAchieved^1'"

Radiant

Quote from: Crimson Wizard on Thu 15/06/2017 17:21:45(and Radiant you referred to was speaking about Linux port).

Yes, I don't recall any reports about this happening on Windows.

Dave Gilbert

It's happened to about 5 of my testers so far, all Windows users. :)

m0ds

Well, I'd be surprised if it's overlooked by you, but is agsteam.dll (and steam_api.dll) in your compiled game folder Dave? Without it windows users will get this error. You can remove either dll from a compiled game folder and you get exactly this error. If they're testing through Steam, have them verify game files (and confirm the dll is in their game folder with the EXE) and make sure you've got the dll's included in your depot!

Having both these files, but getting the error, is pretty much confied to Linux, because it's the "libraries". In some instances you can grab libraries from any of your older Linux game builds and copy them over and they might work. Maybe that necessity of updating the actual libraries has crossed over into windows territory and dll's now, I don't know whether they need to be updated. But you may be able to grab the 2 dll's from an older game of yours that used them and try those (for Windows testers)?

monkey0506

#72
I've updated the Windows DLL downloads for AGSteam to avoid the need for any particular C++ runtime to be installed, which was an oversight on my part in the first place. Will work on updating other download links. Sorry for the confusion.

To be clear, if you're replacing "agsteam.dll" from a game which uses "AGSteam" in the game scripts (e.g., AGSteam.SetAchievementAchieved(...)), then make sure to grab the AGSteam-disjoint.dll and rename it to "agsteam.dll".

Radiant

Quote from: monkey0506 on Sat 17/06/2017 08:25:03To be clear, if you're replacing "agsteam.dll" from a game which uses "AGSteam" in the game scripts (e.g., AGSteam.SetAchievementAchieved(...)), then make sure to grab the AGSteam-disjoint.dll and rename it to "agsteam.dll".

I didn't get this comment. What's the non-disjoint alternative then?

monkey0506

Sorry for the confusion. The AGSteam plugin now uses the AGS2Client interface. To make building for multiple clients (e.g., both Steam and GOG Galaxy) simpler, I replaced the game script struct "AGSteam" with "AGS2Client" in both the AGSteam and AGSGalaxy plugins.

Code: ags
AGSteam.SetAchievementAchieved("ACHIEVEMENT_01");


Would then become:

Code: ags
AGS2Client.SetAchievementAchieved("ACHIEVEMENT_01");


The practical upshot to doing this is that if you are using both AGSteam and AGSGalaxy, then you could avoid nastiness such as:

Code: ags
#ifdef AGSteam_VERSION
AGSteam.SetAchievementAchieved("ACHIEVEMENT_01");
#endif
#ifdef AGSGalaxy_VERSION
AGSGalaxy.SetAchievementAchieved("ACHIEVEMENT_01");
#endif


You would just toggle the active plugin and hit rebuild. Hopefully that makes sense.

The "disjoint" builds preserve the client-specific names ("AGSteam" and "AGSGalaxy") in the scripts, so if your game already depends on those scripts you can use the disjoint build of the plugin.

Dave Gilbert

Quote from: monkey0506 on Sat 17/06/2017 08:25:03
I've updated the Windows DLL downloads for AGSteam to avoid the need for any particular C++ runtime to be installed, which was an oversight on my part in the first place. Will work on updating other download links. Sorry for the confusion.

To be clear, if you're replacing "agsteam.dll" from a game which uses "AGSteam" in the game scripts (e.g., AGSteam.SetAchievementAchieved(...)), then make sure to grab the AGSteam-disjoint.dll and rename it to "agsteam.dll".

The link doesn't work. :(

And m0ds: yep the files are in the compiled game folder. If that weren't the case, then NOBODY would be able to run the game via Steam at all. :)

monkey0506

Quote from: Dave Gilbert on Tue 20/06/2017 16:09:53The link doesn't work. :(

Yup. Renamed the project where the downloads were hosted and forgot to update the links. Editing now.

Dave Gilbert

OK got one confirmation from someone who couldn't get it to work before. It now works for her!

Mandle

Monkey, while you are here...

I happen to know that PschoDev has been trying to contact you for a while about technical issues of converting the game "Chronicle Of Innsmouth" to Mac and Linux versions...

Please PM me if you see this and I can get you in touch with them if you are interested...

proximity

Hello. I would like to get a step-by-step guide about implementing Steam Leaderboards to AGS :smiley:
Proximity Entertainment

SMF spam blocked by CleanTalk