
Show HN: Play “The Endov Society” Built with Epic Online Services and Godot - follower
https://rancidbacon.itch.io/the-endov-society
======
follower
I've been developing a plug-in to integrate multiplayer features provided by
Epic Online Services into a game built with Godot.

And now you can download an Extremely Early Access release of "The Endov
Society" interactive video game software provided for entertainment purposes
to see it in action. :)

The blurb:

Join/find/create lobbies with up to 32 members! Unlock achievements! Change
outfits! Get surveilled! Become more or less suspicious! Get promoted!

Also features an episodic story that will have you asking "Is this a
demonstration?".

Some technical details:

The EOS SDK supplies a shared library binary (which exposes a C ABI) to be
distributed with the game.

My addon uses Foreigner (a Godot wrapper for the Foreign Function Interface
`libffi`) with some additional patches for buffer/struct support to interact
with the shared library.

I chose this approach rather than using something like GDNative & developing
the main addon in something like C/C++ because...

(a) Multi-platform compilation is a pain;

(b) The code isn't particularly performance critical currently;

(c) GDScript enables much faster iterative development;

(d) This was a motivating example for what's possible via FFI to encourage
adoption in Godot;

(e) Avoid requiring C/C++ skill to contribute.

Thanks for your interest & hope you'll consider downloading & trying it out.

~~~
follower
Couple of extra details:

* I am hoping this will eventually see an Open Source release, for specifics on that, see: [https://gitlab.com/RancidBacon/epic-online-services-for-godo...](https://gitlab.com/RancidBacon/epic-online-services-for-godot)

* While using a service like EOS has trade-offs, the no financial cost to developers plus the "no account required" Device ID based features of Epic Online Services have IMO potential for innovative multiplayer experiments by Indies & in Game Jams.
    
    
      "The Endov Society" has no dedicated host but makes use of the realtime lobby & member attribute update functionality to provide some degree of interactivity. And I think there's a lot more fertile ground to explore in that area.
     
     * The tools I created to parse & generate API metadata (in JSON) to assist binding generation could also assist other people interested in creating FFI (or other) bindings to EOS for other languages/engines.

