Re: More web-focused than text-focused games?

249 views
Skip to first unread message

Griatch Art

unread,
Jun 3, 2013, 2:32:25 PM6/3/13
to eve...@googlegroups.com
wHi Matt, welcome to the list!

Whereas Evennia comes with a webclient, it is currently simply a telnet-like terminal implemented in the web browser. Implementing something simpe like a certain image per room could in principle be done already now by offloading that work to the client (which you'd have to write/extend in Javascript most likely). It'd at this point be a bit hackish though (you'd have to figure out the name of the room and let the client pick the right image or something like that).

Before you can implement a "rich" webclient in a saner way - with images, buttons to click, updated map or what have you, we (that means I) need to substantiate the Out-of-band system. This will allow Evennia to send arbitrary data based on events going on but without necessarily being related to an active input by the user. This will allow for stuff like health bars rising as time passes, colors changing with the game time or weather, or a clickable GUI.

The OOB system is next in line after the Webserver changes currently in the pipeline (see my blog "Churning behind the scenes" here ). Note also that even with the OOB changes, this is only server-side. You, or someone else, will still have to implement the client-side that makes use of it. So the answer to your question is that it's currently not very easy to make a rich web-based game compared to a purely text one. It will get easier though, but it will probably always require some effort.

---

As for interaction back-logs, this is doable. You could use the comm system and use the Msg database model to store the poses/RP persistently. A Msg object can use an Object as well as a Player as sender so it works for IC communication as well as OOC (Msgs are used for Channels by default). All you then need is a login hook that goes through unseen messages and displays them to the recipient whenever they log back in. Take a look at the default @page command for some ideas.
.
Griatch



On Monday, June 3, 2013 3:49:03 PM UTC+2, Matt Bonnett wrote:
Hi guys. Long time watching the progress with Evennia and very happy with where it has been headed. I really do need to brush up on my non-existent python skills though as my current MU* skills are in traditional softcode.

What I wanted to know though was with the current state of affairs how easy is it to make a game more web based than text based? ie: Have the traditional text client but allow individual rooms to be audio-visually described so you could have a large background image on a web page for example that changes depending on the room you are in? 

On a different note: Interaction backlogs. Would it be doable to have non-realtime communications with Evennia? Say two people roleplaying. One person logs in, sends a few poses, logs out. Other person logs in and either manually or automatically those last few poses become available. I guess similar to @chan/rec in existing codebases but more for all communication including IC communication and not just OOC social channels.

Thanks guys. Keep up the great work!

Ricard Pillosu

unread,
Jun 15, 2013, 4:25:48 PM6/15/13
to eve...@googlegroups.com
Hi Matt & Griatch,

I've been playing myself with the code with the same goal with some success. I've now Evennia working via websockets and OOB commands that send URL for media attached to each room. In this way, my rooms can have images and background music.

I did some changes on the codebase (especially into the OOB part) in order to extend its functionality and added the client for websockets. I need to integrate the last update from Griatch. When this is done, I am happy to share this code if anybody find use for it.

Ric

Griatch Art

unread,
Jun 18, 2013, 5:10:46 AM6/18/13
to eve...@googlegroups.com
Hi,

Sounds very good Ricard! I'll be most happy to take a look at your code when you want to show it; a websocket implementation sounds like a great addition. And whereas the OOB handler is forthcoming upstream it'll be interesting to see your take on it. :)
.
Griatch

Matt Bonnett

unread,
Jun 18, 2013, 9:34:30 PM6/18/13
to eve...@googlegroups.com
Yeah. I'm actually a longtime user of PennMUSH and a few of us have pondered over the years off and on how to modernize the space. I really like Evennia's take on MU's of old and giving softcode (well, not 'softcode' perse but using python in this manner which is WAY more capable than traditional softcode and not complicated like C hardcode) and modernizing in its own way.

But one thing I have considered on my own is pushing more of the client side to the web and making it more multimedia capable as this is what your players interact with and keeping it in the olden text only style, while preferable to some of us old timers, just means the same old thing to everyone else. Knowing there is some official nudge in this general direction is nice. I will definitely be keeping a closer eye on things here. :) Now I just need to set up a sandbox to work with. >.>

Ricard Pillosu

unread,
Aug 25, 2013, 1:45:20 PM8/25/13
to eve...@googlegroups.com
Hi,

Sorry for the delayed answer, finally I got to upgrade my server with latest changes (Griatch did awesome work btw ;). About the websocket implementation, find attached the plugin that can be dropped in game/gamesrc/conf, add it to your settings.py and define the listening port with WEBSERVER_PORTS.

To talk to the client I use purely OOB calls that deliver all the information that the client may need, like the name of the image of the room and the music to play.

The output is something like this:OOB{"appearance": {"exits": ["porton", "nave"], "objects": ["silla", "Melkor", "Mulder"], "music": "soundtrack", "name": "\"Despacho Done\"", "img": "home.jpg", "chars": [], "id": 88, "desc": "Estas en el despacho de Done. Una mesa llena de papeles centra la habitacion con un ordenador encendido."}}

That with the current WIP client produces the image attached.

To be honest most of the work is on the client, evennia is quite solid and easy to extend.

Btw the websocket plugin relies on a https://github.com/MostAwesomeDude/txWS

Ric
websockets_portal_plugin.py
Captura de pantalla 2013-08-25 a la(s) 19.39.49.png

Griatch Art

unread,
Sep 5, 2013, 4:00:51 AM9/5/13
to eve...@googlegroups.com
Hi Ricard, thanks for the link! The final OOB implementation will likely work along similar lines, although probably using the "data" keyword of the msg() function rather than parsing the text-string in-place. There are also some extra things, such as Evennia handling tracking of properties and attributes, that need to be finalized.

Excellent with the websockets code, will look into that for the main repo. :)
.
Griatch
Reply all
Reply to author
Forward
0 new messages