Author Topic: ENGINE PLUGIN: AGSteam v3.4 - Mac OS X!  (Read 37114 times)

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
ENGINE PLUGIN: AGSteam v3.4 - Mac OS X!
« on: 27 Oct 2011, 05:05 »
The AGSteam plugin serves as an intermediary step between the Steamworks API and the AGS runtime engine. In short, what that means for you is that if you're working on integrating a game into Steam, you can now place Steam-related function calls directly in your AGS code!

Currently the plugin supports Steam achievements, int, float, average rate stats, global int and float stats, and leaderboards. If you need any other Steam features, let me know and I can explore options to get them working properly for you.

Update: I've determined that the usage of the Steamworks API does not violate the non-disclosure agreement with Valve. AGSteam is now open-source!

Note: This plugin will not make Valve accept your game for Steam integration. They still hold the sole hand in that decision. This plugin will not do you any good if your game has not already been accepted for the integration process.

-monkey

Download links
« Last Edit: 06 Jun 2018, 04:49 by monkey0506 »
User was banned for this post.

Dualnames

  • Local Moderator
  • Rottwheelers
  • Pretty Badass
    • Dualnames worked on a game that was nominated for an AGS Award!
      Dualnames worked on a game that won an AGS Award!
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #1 on: 27 Oct 2011, 06:16 »
This is fantastic, monkey, also USELESS to me. But we'll see.  ;)
No more military army stuff. I'm alive and back.

Wonkyth

  • Liscence to Misspell.
    • I can help with AGS tutoring
    •  
    • I can help with making music
    •  
    • I can help with play testing
    •  
    • I can help with proof reading
    •  
    • I can help with scripting
    •  
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #2 on: 27 Oct 2011, 07:03 »
Fantastic step forward there, Monkey!
"But with a ninja on your face, you live longer!"

abstauber

  • Cavefish
  • Mittens Knight
  • still mowing the lawn
    • abstauber worked on a game that was nominated for an AGS Award!
      abstauber worked on a game that won an AGS Award!
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #3 on: 27 Oct 2011, 10:32 »
Terrific news indeed!

Now if steam would only accept more freeware games :D

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #4 on: 27 Oct 2011, 12:53 »
Well Dual and abstauber, if you would take adventure game creation seriously then maybe Steam would accept your games. :D

As I said, this probably won't be the most wildly useful thing ever, but hopefully it will save people time (and perhaps even money) down the road... 8)
User was banned for this post.

Calin Leafshade

  • AGS Project Tracker Admins
  • Long live King Cat!
    • I can help with making music
    •  
    • I can help with voice acting
    •  
    • Calin Leafshade worked on a game that was nominated for an AGS Award!
      Calin Leafshade worked on a game that won an AGS Award!
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #5 on: 27 Oct 2011, 14:38 »
No source?

tzachs

  • AGS Baker
  • Mittens Vassal
  • Parking Goat- games that goats like!
    • I can help with translating
    •  
    • tzachs worked on a game that was nominated for an AGS Award!
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #6 on: 27 Oct 2011, 15:26 »
I wish I would have a need for this plugin one day...  :)

Ascovel

  • Mittens Serf
  • The eyes of Rooster Cockburn
    • I can help with story design
    •  
    • Ascovel worked on a game that was nominated for an AGS Award!
      Ascovel worked on a game that won an AGS Award!
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #7 on: 27 Oct 2011, 23:37 »
Excellent!

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #8 on: 28 Oct 2011, 00:03 »
@Calin: Maybe you missed it in my first post, but Valve has a pretty strict license on the Steamworks API. Without access to that the source for this plugin would be pretty useless. It wouldn't compile, and would be barely anything more than the existing AGS Run-time Plugin API. That's why I chose to just make the whole thing closed-source. That and it prevents any issues arising from inappropriate use of my source code in relation to the Steamworks API.

Perhaps I'm being a bit overdramatic or overprotective, but the reason I'm not releasing any part of the source for this is to protect myself. I hope everyone can understand that. If any serious programmers would be willing to (physically) sign a(n) NDA with Valve, then I (acting as MonkeyMoto Productions, Inc.) would be willing to provide access (with you as an "employee" of MonkeyMoto), provided that a Valve contact could confirm that such a business relationship would be allowed.

@tzachs, I'm sure that if you really set your heart to it you could make something that Valve would accept without second thought. :)

And glad to hear the general cry of approval even though (at the moment, at least) the true viable usefulness of this is abysmally low. :D
User was banned for this post.

Calin Leafshade

  • AGS Project Tracker Admins
  • Long live King Cat!
    • I can help with making music
    •  
    • I can help with voice acting
    •  
    • Calin Leafshade worked on a game that was nominated for an AGS Award!
      Calin Leafshade worked on a game that won an AGS Award!
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #9 on: 28 Oct 2011, 05:41 »
I dont see why we cant see how the plugin has been implemented.

Sure it wont build but for educational purposes, I cant see how it would hurt.

Just dont release the steam headers and any closed code.


Kweepa

  • Mutated Guano Deviser
    • Best Innovation Award Winner 2009, for his modules and plugins
    •  
    • Kweepa worked on a game that was nominated for an AGS Award!
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #10 on: 13 Nov 2011, 17:42 »
Geez, Calin, are you trying to get monkey into trouble?
His first post says that Valve want to keep the API proprietary.
Even if monkey technically doesn't break the NDA, Valve might decide he's not acting in good faith and you can imagine the consequences. Gemini Rue taken off Steam for example.

Congrats on getting this done by the way monkey!
Still waiting for Purity of the Surf II

Calin Leafshade

  • AGS Project Tracker Admins
  • Long live King Cat!
    • I can help with making music
    •  
    • I can help with voice acting
    •  
    • Calin Leafshade worked on a game that was nominated for an AGS Award!
      Calin Leafshade worked on a game that won an AGS Award!
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #11 on: 14 Nov 2011, 05:25 »
I find that *incredibly* unlikely.

And releasing *your own* code for educational purposes cannot break any license.

I specifically said that he shouldnt release Valve's code but releasing his own is neither here nor there.

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #12 on: 14 Nov 2011, 17:42 »
If you're that interested Calin, just check out whatever documentation Valve offers publicly regarding the Steamworks API. The plugin uses a lot of copypasta in that regard. :P

Actually it's a bit more complicated than that, but you'd get the basic idea. I used the AGSE_FINALSCREENDRAW event in place of a proper main game loop. It polls often enough for my purposes.
User was banned for this post.

suicidal pencil

  • The green-machine
    • I can help with animation
    •  
    • I can help with play testing
    •  
    • I can help with scripting
    •  
    • I can help with story design
    •  
    • I can help with web design
    •  
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #13 on: 20 Jan 2012, 15:59 »
If I use this plugin, does it mean I have to close the source to games I (attempt to) release on Steam?

and I wonder if this means that we might see a few multiplayer games made in AGS...

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #14 on: 20 Jan 2012, 16:17 »
1) The plugin is closed-source, that does not mean games made with it have to be. The AGSteam API is publicly available. ;)

2) This plugin does not provide any immediate support for multiplayer functionality, although if you ping and set int/float stats...I suppose it might be perfectly possible to use it that way.

3) I need to update the first post with the Blackwell games - getting on that now!
User was banned for this post.

suicidal pencil

  • The green-machine
    • I can help with animation
    •  
    • I can help with play testing
    •  
    • I can help with scripting
    •  
    • I can help with story design
    •  
    • I can help with web design
    •  
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #15 on: 22 Jan 2012, 02:34 »
Not immediately supported but doable...that's exactly what I wanted :D What fun would it be if everything I wanted was already there?

I'll see what I can do with this over the course of tonight, I'll report back when I have results.

monkey0506

  • AGS Project Tracker Admins
  • Tasting the banhammer. Strangely, tastes like ham.
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #16 on: 22 Jan 2012, 02:49 »
For the record, unless you already have had at least one game accepted by Steam, then you wouldn't be able to use the plugin, even for testing purposes, as it specifically uses the Steam API for all of it's connections. This plugin really is quite simple internally, but the reason it was written was to provide a generic intermediary between the C++ Steam API and AGScript in your games. Without such a mechanism it would otherwise be requisite to write a custom plugin or engine build for each game you wanted to integrate with Steam. With this plugin however, Dave Gilbert was able to integrate the Blackwell games without having to write any C++.
User was banned for this post.

Calin Leafshade

  • AGS Project Tracker Admins
  • Long live King Cat!
    • I can help with making music
    •  
    • I can help with voice acting
    •  
    • Calin Leafshade worked on a game that was nominated for an AGS Award!
      Calin Leafshade worked on a game that won an AGS Award!
Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #17 on: 22 Jan 2012, 15:54 »
but will it blend?


Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #18 on: 02 May 2013, 22:48 »
This would be awesome in my game...  :smiley:
« Last Edit: 09 May 2013, 21:44 by C.T.C.B »

Re: ENGINE PLUGIN: AGSteam - Steam integration, simplified!
« Reply #19 on: 09 May 2013, 21:47 »
So, for those who haven't heard yet, Gemini Rue is now available on Steam! They're even running a special discounted price in celebration of the fact.

Why am I bringing this up? Because Gemini Rue has been brought to Steam courtesy of the AGSteam plugin for AGS.

What is this AGSteam plugin? I'm glad you asked! := It's certainly not Nimbus if that's what you're thinking!

The AGSteam plugin serves as an intermediary step between the Steam API and the AGS Run-time. In short, what that means for you is that if you're working on integrating a game into Steam, you can now place Steam-related function calls directly in your AGS code!

Currently the plugin supports Steam achievements, and float and int stats. If you need average rate stats (or any other Steam features), let me know and I can explore options to get them working properly for you.

I would have loved to make this thing open-sourced too, but Valve is kind of a stickler for keeping their API proprietary. So, there's a pretty strict license on this thing regarding staying the hell away from the source code, but beyond that you're really free to pretty much do as you see fit with this plugin. 8)

Note: This plugin will not make Valve accept your game for Steam integration. They still hold the sole hand in that decision. This plugin will not do you any good if your game has not already been accepted for the integration process.

I'm not entirely sure how useful this will be for the community at large, but if you do get your game accepted for Steam integration and want to use this plugin, please let me know! I'll even keep a list of games that use it as an additional publicity measure! :D

-monkey


Download


Games that use AGSteam! (Get them on Steam now!)

Gemini Rue (Buy)
The Blackwell Legacy (Buy)
Blackwell Unbound (Buy)
The Blackwell Convergence (Buy)
The Blackwell Deception (Buy)
Resonance (Buy)

Also:

The Blackwell Bundle (Legacy, Unbound, Convergence, and Deception)



NOTE: This also relies on the redistributable "steam_api.dll" (which is publicly available as part of the Steam client installation). I'm not going to get into the logistics of bundling that, even though it's publicly available. Just be aware you will need to place both DLLs in your editor folder, and manually copy the steam_api.dll to your Compiled folder (the AGSteam.dll will be automatically copied on compile).

NOTE: (20 August 2012) The version which is currently uploaded is rather badly bugged, which didn't manifest until some changes in the Steam API. I have put a lot of the leg-work into developing a better version of this plugin, but due to the fact that it wasn't needed, I never fully cleaned it up to the point that I'm going to be uploading it in the near future (basically read as: I didn't type up documentation for the revisions...). I believe that I made the fixed version backwards-compatible with the current version, so you should be able to grab it from any of the Steam games listed above (or ask Dave (or anyone who has the games, geeze!) to send you a copy of the DLL).

The link provided in that post isn't working, is there a mirror somewhere? I'd love to use this in my Adventure Game that I want to put on steam after completion.