Page 1 of 1

AbiathRPC: real-time Internet level editing collaboration with Abiathar

Posted: Wed Mar 15, 2017 1:32
by Fleexy
Abiathar has always had the ASLEV format for sharing single levels, but what if you want to collaborate on the same level at the same time with no sending of files back and forth?

Enter AbiathRPC, "Abiathar" plus "RPC" (Remote Procedure Call). It has two components: a server program and an Abiathar extension. The server runs on any machine that's reachable from the Internet. The authoritative levels are kept server-side, as are the tile graphics that are sent to connecting clients. The Abiathar extension fiddles with the internals of Abiathar to make changes apply to the server as well as the local application.

Download AbiathRPC

Client guide
Required files: AbiathRPC.aex, ARpcBind.dll, all normal Abiathar files

You might have to "unblock" the AEX file in its properties window before Abiathar can load it. When AbiathRPC loads, a Connect AbiathRPC menu item appears under File. Use it to connect to a server. You can authenticate using a username/password combo or a VeriMaps certificate (if you have one).

Level editing works as normal. Tileinfo editing works if the server is configured for it. AbiathRPC doesn't currently support the vast Abiathar feature set, so a lot of items are grayed out when connected to a remote level set. The most notable thing is that undo/redo does not work for RPC level sets. There's no need to save; changes are constantly sync'ed with the server, and other editors' updates will appear live as they're made.

Server guide
Required files: AbiathRPC Server.exe, FMod.dll, Interop.dll, ARpcBind.dll, abiathrpc.aconf, all your resource files

The .aconf file contains the server configuration. It's commented, so it should be pretty clear what all the things do. In the download, there's an example set of Keen 5 files preconfigured. You can replace files and adjust the config file as appropriate to host your own. Note that the tileset images must be non-grouted KeenGraph-style bitmaps.

If you want to exert more control over the client experience, you can set the ClientAdeps config entry to the filename of a text file that contains an ADEPS fragment that will be merged at the client when it loads the remote level set. The download, for example, uses this feature to correctly set the number of infoplane tiles.

The default username and password are "admin". You can add/edit/remove accounts in the config file or with the GUI administration tools (under the RPC menu when connected). Leave a user's password blank to only allow VeriMaps authentication for them.

Level and tileinfo changes are written to disk every ten minutes. Pressing a key on the server app saves and exits; clicking the X button on the window just exits, careful!

___

It's amazing to think that Abiathar is three years old now, and some other tools I think of as "new" are also a ways in the past. "♪ I don't remember growing older, when did they? ♫" Happy Keen Day, everyone, and happy modding!

Fleexy

Re: AbiathRPC: real-time Internet level editing collaboration with Abiathar

Posted: Wed Mar 15, 2017 2:11
by Quillax
I haven't tried this out yet, but it seems really neat, though! I can see this being very useful to many people. :)

Re: AbiathRPC: real-time Internet level editing collaboration with Abiathar

Posted: Wed Mar 15, 2017 5:41
by KeenRush
Gotta get the squad ready! 8) Wait... I work alone. :( But seriously speaking, sounds awesome and useful. If I had a K4-6 project and a team I would put it to use.

Re: AbiathRPC: real-time Internet level editing collaboration with Abiathar

Posted: Wed Mar 15, 2017 12:54
by Nisaba
@KeenRush: simply join in: https://pckf.rigeltechnical.com/viewtop ... f=4&t=4027 ;)

seriously this looks like an interesting-looking opportunity to me.
but I've got still two questions remaining:
1) What about backups in case someone screwed up something really badly?!
2) Can we host abiathar-team-projects on the keenmodding.org server?

Re: AbiathRPC: real-time Internet level editing collaboration with Abiathar

Posted: Wed Mar 15, 2017 19:23
by Fleexy
Nisaba wrote: Wed Mar 15, 2017 12:54 but I've got still two questions remaining:
1) What about backups in case someone screwed up something really badly?!
2) Can we host abiathar-team-projects on the keenmodding.org server?
The server does not currently keep a revision history, though that could be a useful feature. Clients can, however, use the Download option (under the RPC menu) to make a local copy of the current state of the server's resources. Another strategy would be to keep the server-side files in a Dropbox folder so every checkpoint is automatically preserved.

I wish I could provide a permanent public AbiathRPC server, but alas, I have no Windows server space. These forums are on Linux, and I cannot install the necessary compatibility infrastructure on this server. If someone had the equipment, I would be happy to point a subdomain at it!

Re: AbiathRPC: real-time Internet level editing collaboration with Abiathar

Posted: Tue Mar 28, 2017 9:08
by Bubzrulz
added this extension for future use and i noticed that the save box when u close the program disappeared deleted extension and it came back so if anyone useing this extension make sure you manually save before closing

Re: AbiathRPC: real-time Internet level editing collaboration with Abiathar

Posted: Tue Mar 28, 2017 14:08
by Fleexy
Hmm, I'm unable to reproduce this behavior. It is supposed to suppress the save dialog when working with remote level sets (since the client doesn't actually have the levels in a state usable with the vanilla Abiathar saving mechanism), but the confirmation should be unaffected when working with local sets. Could you please produce a specific set of steps that leads to the confirmation not showing up when it's supposed to?