ATTN Plugin Authors: Gathering plugin sources

Started by Crimson Wizard, Fri 04/01/2013 16:07:53

Previous topic - Next topic

Crimson Wizard

As many of you should know, we have a number of AGS ports now that let run AGS games on other platforms (linux, etc). Plugins remain a problem, because they were written as Windows dynamic libraries. JJS already rewrote couple of plugins, and Calin disclosed his AGSBlend and SpriteFont plugins, so that their code could be used to compile plugins for other systems too.

Are there anyone else who would like to disclose his/her plugin source to let the games, which used them, become fully portable? Perhaps someone may contact plugin authors that did not visit forums for a while?
Could there be a reason to not to disclose plugin source?

Additionally, I want to mention, that maybe it could be a good idea to state a rule, that AGS plugin should be made open source from the start (NOTE: "open-source" does not mean "free to use")? Aside from portability, this would also ensure that no one will put something unexpected, like malicious code in there.

Sslaxx

Quote from: Crimson Wizard on Fri 04/01/2013 16:07:53
As many of you should know, we have a number of AGS ports now that let run AGS games on other platforms (linux, etc). Plugins remain a problem, because they were written as Windows dynamic libraries. JJS already rewrote couple of plugins, and Calin disclosed his AGSBlend and SpriteFont plugins, so that their code could be used to compile plugins for other systems too.

Are there anyone else who would like to disclose his/her plugin source to let the games, which used them, become fully portable? Perhaps someone may contact plugin authors that did not visit forums for a while?
Could there be a reason to not to disclose plugin source?

Additionally, I want to mention, that maybe it could be a good idea to state a rule, that AGS plugin should be made open source from the start (NOTE: "open-source" does not mean "free to use")? Aside from portability, this would also ensure that no one will put something unexpected, like malicious code in there.
It wouldn't work for plugins like AGSteam (because of Valve's licensing arrangements).
Stuart "Sslaxx" Moore.

Crimson Wizard

I feel a need to bump this, just to make people read this suggestion again.

Since we have a number of ports now, it might be important to encourage people to either write plugins in a portable form (not dependent on OS or OS-specific libraries), or provide alternative versions for other platforms. Or let other ppl convert their plugin DLLs. In fact, this may be so important I'd suggest mention this somewhere in one of the sticky topics.

Wyz

Yes I can see how important this is for portability. Before when AGS itself was not opensource one could argue not to make their plugins open source but now the engine is in the open it is rather silly (unless there are licencing issues like with the steam plugin). I would still not have penalties or anything but instead let's make it very clear to game developers: if you use this plugin your game will only work on windows or maybe even: don't use this plugin unless...

That said I have a few plugins that are not in the open generally because I like to release it after it has seen a period of maturity. For those that have been around long enough I really want to but lack of time has kept me from doing so.
For instance I like to port the Joystick plugin to Linux and DirectX and then release the source. It is currently using the windows native API which obviously is not portable and is also causing problems with the newer Windows versions. It is also not in a state where I'm happy to release the source. I will work on this once my schedule clears up.
The Sockets plugin that is currently in the alpha phase already is portable (although I have not tested the posix parts yet) and after it has seen some miles I will release the source as well.

I don't really remember what other plugins I made from the top of my head, probably they are not that important. :)
Life is like an adventure without the pixel hunts.

Calin Leafshade

I think I've released the source for all my plugins that are in use.

Am I missing any?

Gilbert

Quote from: Crimson Wizard on Sun 26/01/2014 22:13:39
In fact, this may be so important I'd suggest mention this somewhere in one of the sticky topics.
Yeah, I understand that, and this thread is now made sticky(which we should wait and see, as I sometimes feel that making a thread sticky makes it even harder to notice; if that's the case I can unstick it again).

Crimson Wizard

#6
Here's a table of the plugins I could find on forums.
Marked most needed to be opensourced/reimplemented (commonly used in games) with red font.


PluginAuthorStatus
SpriteFontCalin LeafshadeOpen source
AGSBlendCalin LeafshadeOpen source
Lua For AGSDenzil QuixodeOpen source; not fully compatible with 64-bit builds (AFAIK)
Sockets for AGSWyzClosed source
AGSSpeechSteveMcCrea)Closed source; depends on C# wrapper
Text-To-SpeechTzachsProject dead?; depends on C# wrapper
D3DVSyncCalin LeafshadeClosed source?; Win/Direct3D only
AGS Plugin API for C#smileyOpen source; C# (Win only?)
FMOD For AGSCalin LeafshadeOpen source
AGSSteammonkey_05_06Closed source
Fire pluginSteveMcCreaClosed source
AGS JoystickWyzClosed source
Flashlighta-v-oPortable reimplementation by JJS
Snow/RainScorpiorusPortable reimplementation by JJS
RazerbladeDKHClosed source; Win/Direct3D only
Direct3D/TheoraAJAClosed source; Win/Direct3D only
Character 3dBeshClosed source
AGS 3dSteveMcCreaClosed source
agsCreditzAJASource
ags_theorascotchClosed source
Custom Properties Helperhelios123Closed source
TCP/IP plugina-v-oClosed source
AGS_TimerHelperhelios123Open source
CharacterD3DBeshClosed source
C# RunnerTzachsOpen source? (link dead)
PlayVideo Proxyhelios123Open source
AGI Graphics EmulationscotchClosed source
OtherRoomSteveMcCreaClosed source
Wii Remote ControlscotchClosed source
FileNetDorcanClosed source
AGS ShellscotchPortable reimplementation by monkey0506
Log WriterfjeronimoClosed source? (link dead)
AGS ParallaxScorpiorusPortable reimplementation by JJS

RickJ

Maintainability is another very good reason to make plugins open source. People tend to come and go, and when they go their plugins are stuck in time and eventually become unusable. 

Shane 'ProgZmax' Stevens

I remember intending to ask Wyz for a copy of the agsjoy source but for some reason I didn't get around to it.  If he's around I'm sure someone can get him to release it.

Calin Leafshade

I have lost the source for the D3DVSync plugin but it was a single line in the initialisation of the graphics engine that enabled VSync. I'd argue that VSync should be enable by default anyway on D3D.

(Actually i'd argue that directX should be removed entirely in favour of opengl but whatever)

Crimson Wizard

Quote from: Calin Leafshade on Mon 27/01/2014 19:54:47
(Actually i'd argue that directX should be removed entirely in favour of opengl but whatever)
Offtopic, but there's an OpenGL renderer by JJS, it is used for mobile ports only, can work on Windows too. The only reason it's not in the selection list is that it's incomplete, works only in windowed mode with predefined dimensions.

Joseph DiPerla

Quote from: Calin Leafshade on Mon 27/01/2014 19:54:47
I have lost the source for the D3DVSync plugin but it was a single line in the initialisation of the graphics engine that enabled VSync. I'd argue that VSync should be enable by default anyway on D3D.

(Actually i'd argue that directX should be removed entirely in favour of opengl but whatever)

This would be nice one day. But no rush on this. AGS is great enough.

On a side note, since you sent out the e-mail today and made this a sticky (Can probably post this on AGS Blog too!) Has anyone with closed source projects come forward yet?
Joseph DiPerla--- http://www.adventurestockpile.com
Play my Star Wars MMORPG: http://sw-bfs.com
See my Fiverr page for translation and other services: https://www.fiverr.com/josephdiperla
Google Plus Adventure Community: https://plus.google.com/communities/116504865864458899575

monkey0506

As I am an author of one of these plugins, I feel I should stick my head in. I still maintain that the AGSteam plugin cannot be usefully open-sourced in any way due to the licensing restrictions of Valve's Steamworks API. That is, with the references to Steamworks removed, there's little left beyond the sample plugin functions -- that's really all there is to it. The plugin exists solely as a middleman between AGScript and the native C++ calls to the Steamworks functions.

All that being said, the Steam platform itself is currently not really portable. I have successfully managed to get the AGSteam plugin running on Steam for Linux, but currently none of the AGS games using Steam have been released for Linux.

I will also note that I am not opposed to sublicensing the source to appropriate parties as needed. Currently I have licensed the source out to Wadjet Eye Games (pending their licensing agreement(s) with Valve, etc.), and would be willing to extend the same to others who may have need of it.




In general, I absolutely agree that making plugins open-sourced will be in everyone's best interests overall. I am actively working to develop a new plugin that has been requested of me, and if I can actually get the thing to work then I will have no qualms whatsoever about sharing my code. :)

AJA

I have a bad feeling that the agsCreditz source code has been lost in time and space, unfortunately. :sad:
But I'll go through my backups just in case when I get back home within a couple of weeks.

Also, holy crap, the plugin is over ten years old already! I feel dizzy. And old.

Crimson Wizard

#14
It is perhaps possible to rewrite OtherRoom plugin using a script module of same name for the reference. The functions must be registered under same names as in original plugin.

Plugin thread: http://www.adventuregamestudio.co.uk/forums/index.php?topic=14203
Module thread: http://www.adventuregamestudio.co.uk/forums/index.php?topic=20650

Example of very simply made plugin rewrite for Linux: https://github.com/onitake/agsteamstub
(probably can work for Win too)

"OtherRoom" plugin is required for running several games, including some of the "Barn Runner" series.

monkey0506

@CW: The agsteamstub is a pretty reasonable example of what the plugin looks like with no direct references to the Steamworks API. If anyone needs a non-Steam version of the plugin for any reason (e.g., porting a Steam game to another platform) then that should get you going.

I will note that although previously unreleased, the AGSteam plugin is now released as a Linux shared library as well, and a beta test is under way for an official Steam for Linux launch. 8-)

monkey0506

#16
I wrote an open-source variant of the ags_shell plugin. You can grab it here.

NOTE: I'm not sure what scotch originally used for the final parameter to the native method, which controls how the new window is displayed. It may need to be changed to reflect the original behavior.

This version also declares AGS_SHELL_VERSION for your AGS scripts to check for the plugin.


Monsieur OUXX

what is "ags_shell" ? I find almost no reference to it in the forum. Is it a plugin that allows to run OS commands, such as "mkdir", etc.?
 

monkey0506

Monsieur OUXX, yes, that's precisely what the shell plugin is for. Al Emmo, for example, used the shell plugin in the demo to open a browser window to buy the full game.

This is why I wrote the open-source replacement, but it is still only designed to operate on Windows.

SMF spam blocked by CleanTalk