ID:133627
 
There is a common problem that many games suffer from. It has already been addressed in this review:
http://www.byond.com/members/ BYONDStrategy?command=view_post&post=36646

"The game does get at least a few games played every day, but dozens of people log in for a minute or two looking for opponents. Maybe I'll try and work out some sort of list of people who wouldn't mind being paged for a game. You could log in, check the list and then page anybody you was still online. Or add your name to the list if you'd like somebody to page you."


There would be many games I'd like to play, but I lack opponents. And staying logged into each of them just to look manually if someone is online each minute can't be a reasonable solution when we live in a time of automatication ;)

So, my suggestion would be to allow a list for each game.
Player can sign up and if someone is willing to play, s/he could "trigger a ping" to everyone online on that list, telling them that someone would like to play game xyz.
It might be discussible if a "page everyone on the list" button should be for BYOND members only, but I think it would help to populate some nice games and maybe breathe some life back into the "non anime"-BYOND ;)
This is actually something that can be programmed into current games. Of note would be the SendPage() client proc, although that would restrict it to BYOND members (I think).

var/list/waiting = list()

mob/verb/register_to_play()
var/pinged = src.client.SendPage("Want to play a game of [world.name]?", waiting, "summon=1")
src<<"[pinged] users have been notified of your desire to play a game. You have also been added to the registry and will be notified if someone comes along later"
waiting += src.key


That's just a basic example and would require other checks and balances to avoid misuse (such as a time-based removal from the list).
I like your idea a lot, especially since we've been talking about the fact that the really good games you just don't see hosted as much anymore. A sort of "interest pool" would help with that.

One of the major questions to my mind is, how can we maintain the list such that it doesn't count dead pagers (e.g., people who have gone AFK without marking themselves as away) and players who've already started other games? Assuming the tehnical details like that can be worked out, I think you've hit on something really good.

One thing we have discussed is setting up some kind of ping system so players who like a game can put out a very generic feeler asking if others are interested in playing. Unlike the annoying page-alls of old, this would be a more built-in kind of thing, something the pager can alert you on (like: "Jtgibson is looking for players interested in playing Bombard"). We'd just need to make this somewhat different from the "Bombard is online" alert, because it fills a different niche.

Lummox JR
In response to CriticalBotch
CriticalBotch wrote:
This is actually something that can be programmed into current games. Of note would be the SendPage() client proc, although that would restrict it to BYOND members (I think).

> var/list/waiting = list()
>
> mob/verb/register_to_play()
> var/pinged = src.client.SendPage("Want to play a game of [world.name]?", waiting, "summon=1")
> src<<"[pinged] users have been notified of your desire to play a game. You have also been added to the registry and will be notified if someone comes along later"
> waiting += src.key
>

That's just a basic example and would require other checks and balances to avoid misuse (such as a time-based removal from the list).

I didn't think SendPage() worked anymore...
In response to Lummox JR
CriticalBotch, I agree that there are technical means to implement such a list directly in your game, yet I had the hope that (especially for old games, which won't be updated anymore), there could be a general measure through BYOND itself.
Not to mention that if there is a common general structure in such a feature, more people would get to know and use it ;)

Lummox JR, I don't think that people who have already joined a game would be a problem, since I often play some sort of game, but would love to have a quick game of (insert some of my favorite "strategy" games).
So, for me, it would be nice to get a notify message, even though I'm already in another game.
That is only my person preference though ;)

As for dealing with people who went afk without marking them as such, you could use the same system that most BYOND RPGs work with.
Have the BYOND client use a variable similar to "client.inactivity", that gets reset each time someone does use her/his BYOND client/DM/DS...
If the variable reaches like 10-15 minutes, automatically set them to afk ;)
If that would be too much work to implement, I'd say it wouldn't be really drastic to message people as well that are afk.

I like that "ping system" idea of yours.
Make sure that it can't be triggered off more than once each 15-30 minutes (to avoid spamm) and display the last one to use it on the hub page of the game.
Then allow people to sign up for that ping call and you've basically what I was looking for ;)
In response to Flame Sage
As far as I know, it doesn't. I've tried working with it a few times, and it's always failed to do anything.
In response to CriticalBotch
While that works perfectly fine, it's by no means automatic. You have to physically accept each page yourself.
In response to SuperAntx
SuperAntx wrote:
While that works perfectly fine, it's by no means automatic. You have to physically accept each page yourself.

Which is good and intended.
Automatic does not mean you have to loose all your control over matters... imagine watching 10 games, one starts and you'd like to play, but right in the middle of a nice match another ping comes and forces you somewhere else?
Getting an automatic notification is great, but more automatic procedures would be a pain ;)
In response to Schnitzelnagler
I was talking about the outgoing messages.

If you were to set up an automatic notification system, the host would have to be a Member. On top of that he would have to accept each page himself. You cannot send a page without the owner of the key physically clicking the OK button.
In response to SuperAntx
SuperAntx wrote:
I was talking about the outgoing messages.

Oh, ok.
I'm sorry, I misunderstood you there ;)
In response to Lummox JR
Perhaps hosting a world in Trusted Mode will automatically accept SendPage() prompts? It would work for now until something much better was made.
In response to SuperAntx
SuperAntx wrote:
Perhaps hosting a world in Trusted Mode will automatically accept SendPage() prompts?

That makes no sense, as SendPage is defined to client. Does this mean I can spam other users, and all I have to do is host my game in trusted mode and have a BYOND Member login?

-- Data
In response to Android Data
Android Data wrote:
SuperAntx wrote:
Perhaps hosting a world in Trusted Mode will automatically accept SendPage() prompts?

That makes no sense, as SendPage is defined to client. Does this mean I can spam other users, and all I have to do is host my game in trusted mode and have a BYOND Member login?

-- Data
You could always use EzMacro to click "SEND Page" whenever the client wishes to send a page, kind of hackish, but it's a workaround.
In response to Flame Sage
Flame Sage wrote:
You could always use EzMacro to click "SEND Page" whenever the client wishes to send a page, kind of hackish, but it's a workaround.

My post was not listing a possibility; my post was going "wtf" at SuperAntx for not making sense.

If hosting a game in trusted mode suddenly unlocks the SendPage proc, I could send pages as other people. I could use it for spam (can't be traced back directly to me because I'm not the sender, they are) or just to advertise my game every so often (which would still be considered spam in my eyes).

I reiterate: the world does not do the sending of pages, the client does. Setting the world to "trusted" mode therefore makes no sense in this aspect of BYOND.

-- Data
In response to Android Data
Android Data wrote:
Does this mean I can spam other users, and all I have to do is host my game in trusted mode and have a BYOND Member login?

Essentially, yes. Having the game send messages about needing more players is basically spamming no matter how you look at it.

If a BYOND Member logged in he could use an invite command which would automatically invite every key on the waiting list. Think of it as a Members perk rather than a tool for you to spam people.
In response to SuperAntx
I just don't see this as much of a useful feature.
Most people just watch the games in their pagers, which in turn usually report the number of player's in world.status.
In response to Flame Sage
It would get the job done for now until they go all-out on a new feature. But yeah, I agree. It's still a really clunky idea.
In response to SuperAntx
SuperAntx wrote:
Essentially, yes. Having the game send messages about needing more players is basically spamming no matter how you look at it.

I still don't think you got me here. client.SendPage does not send as the world or under your own key; it sends as the key of the specified client.

If setting trusted mode allowed this, or even the suggestion of making it allow it, is insane. I could spam under your key; all I'd have to do is make a game you'd be willing to join even for a second.

Actually sending messages under your own key or under a single 'game' key is okay, and would qualify under your ruling of the world being set to trusted mode allowing this. At least then I can just pagerban the key and be rid of it, but fully allowing client.SendPage allows you to send an armada of pages to dozens of people.

-- Data