Imagined here is a simple multi-user networking add-on for Twine stories. It will give real-time monitoring of users progress through a story to a story moderator, and allow users to see the status of other users in the space with them.
covid-inspired telepresence weirdness
It' a simple python server which injects a socket.io client into a twine story.
The only requirement placed upon the twine story is that it is written in the SugarCube engine.
The only modification needed is to add a tag: {LOOM_JS}
to the user javascript of a twine story and {LOOM_CSS}
to the user stylesheet.
If you are logged in with admin permissions, you will be able to upload your story to the server on the landing page.
The devlopment server is run via gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 loom:app
Make sure you have ADMIN_PASS
, MONGODB_URI
and SOCKET_SECRET
defined in your environment.
Make sure you have a mongodb instance available.
python reset_db.py
reverts the database to its empty state.
Find a live version here if you please. Looming is a short story showcasing some of the capabilities of the platform
- Javascript Injection and Twine Event Binding
- Server-side event-sourced database
- Simple AJAX bodge for client-server interaction
- SocketIO for better client-server interaction
- better client profile system
- client-side UI for user presense
- Multi-Story Support
- client-side admin ui
- store story graph stucture
- Load story structure on server-side
- Client-defined names and icons
- flexible configuration and deployment options
- choose a better wsgi solution for non-dev deployments: using eventlet
- Web Interface to load new stories
MVP is done and deployed!
-
Authentication / User Sessions
- basic universal login loop
- new user creation
- Story-scope permissions
- 3 Auth Schemes:
- None Scheme (default)
- Login Required scheme
- associate clients with users
- Invitation scheme
- 3 Auth Schemes:
-
POLISH TIL IT SHINES
-
Chat features
- None Scheme
- Jitsi Scheme
- Echo Scheme
- Tweet Scheme
-
More Elaborate Sugarcube Engine Interaction
- Share Story Variables with Server
- Mark editable/sharable/viewable etc
- Share Story Variables with Server
-
More Admin interaction options
- Boot User
- @ User
- Edit Story Variables
-
Extended API- ifttt or RSS?