Open karolherbst opened 10 years ago
Perhaps some slightly more detailed key features might also help describe this:
Other things that would be nice to have:
what do you mean with "API for game->remote server communication?" Something like achievements?
"API for game->remote server communication?" Something like achievements?
At the time, I was thinking more like content delivery (say, requesting somebody else's user generated content), but it was more a "here's something that would probably be of value for things that we haven't thought of yet" type thing.
If we were going to do achievement support, we'd possibly want to allow that to happen via an external authorative server (run by store providers?), so a gamer -> server communication feature would probably help with that. If we did do achievements, it would be neat to use/implement an open standard like Mozilla's badge stuff.
I would like to use as much as possible from the stores directly. I can imagine to add an API, that wraps around stores, but this would bind the game to libgamelib and I don't want to do this.
If we did have some game-> remove server communication mechanisms, I think it'd be best to consider that as a separate lib that people could implement directly into their games or other places outside of our client.
yeah, I want only an overlay, which utilizes functionalities from the stores you have an active account, but it should not have game->overlay calls. We could use it for screen recording, screenshots, Chats, etc..
In fact nobody should ever call libgamelib besides the Client GUI. I would like to add an IPC based solution to broadcast events like dbus, so IM clients can listen to them.
Hmm, I thought we were aiming for something game stores could communicate with for authentication, download verification and other game deployment related stuff.
Is there a reason why we'd want to steer clear of that sort of stuff? (we should all totally be brainstorming this stuff via IRC)
yeah, stores should be able to do this, but I would rather not bind the games to it. libgamelib should more use the stuff of stores and provide the game library functionality on top of it.
If libgamelib should provide a way for chatting with friends, a game store should just provide an API for that, but this API (even if we do it via HTML scrapping) should be provided by the store and libgamelib should not require any fixed APIs at all.
I was thinking it'd be neat to (down the track) integrate libpurple to provide chat support and that way if game stores want to set up their own XMPP servers, they can, and we can have account creation hooks, but if not, chat functionality is still present and workable with all purple friendly protocols.
yeah, that is fine by me, but games itself should not rely or use libgamelib functionalities. We can use it in an overlay, because the game won't talk to a libgamelib overlay at all. Maybe a game relies on a specific overlay from a specific store, but here libgamelib would wrap around this overlay.
Here are my notes that I haven't tidied up since I've been swamped with stuff. It mainly focuses on the serverside stuff that's important:
libgamelib:
will we work with store owners to create a tiny simple API that they can
implement?
be able to 'emulate' the API on stores that don't have it
API:
authentication
personal game list
game info
name
download
full game
updates
dummy API server for tests (also able to test production servers)
todo:
defined ways to auth, and install game/updates
I think this will give you most of the answers: discussion with fireflower and Kejiro on 20131113
also #7 is worth a look
discussion with fireflower and Kejiro on 20131113
I haven't yet had time to read this, but if anybody wants to distil what's covered there down into a set of questions, I can bring them to Jeff to chat about.
A super high level overview I put together as part of the stuff I've been working on for pitching Gamekeeper to stores.
Any thoughts?
yeah, looks nice
We were talking in IRC about updating the detailed framework architecture diagram. GitHub doesn't let me attach SVG images, but here's a 1600px wide render.
It is important to have a specific goal for a project.
For me libgamelib should be a library for creating awesome cross store Game Management Clients. Stores should be configured through very simple text files.
Stores should also be able to write a single GUI Frontend for their specific store with branding and single store mode.
I will collect results here: