ID:260239
 
So I am creating a huge website with lots of really great stuff geared towards a Pen & Paper RPG. The site is written in PHP with a MySQL backend.

I thought it would be really awesome to also use BYOND to make an MMO for the site, but I think it's a lot to ask to have all of the users that want to be able to play the MMO to sign up for a BYOND key.

Are there any plans to decentralize keys so that the server running the game can generate and store BYOND keys just for that game? If this is already possible and I missed somewhere how to do it, I apologize in advance and would love some help getting it going.

Either way, I still think you have an awesome program here. Thanks for all the effort!
BYOND keys are kinda rigged into the whole hub thing. I don't think decentralisation would be a good idea because then players could masquerade as other people. I could host a popular game on a seperate server that uses it's own keybase and pretend to be Tom or Dan (convincing other players who don't know about the decentralisedness). Games that are purposefully only hostable/accessable by certain keys could also be tricked that way.

If you wanna have BYOND integrated with a huge website then try out DMCGI! It's a powerful thing that doesn't require one to be logged in as a BYOND key to use; that way you could write your own login system for the game. Search the hub for some tutorials or stuff to get you started.
Actually, I'm contemplating the use of a PHP/DMCGI method on my own server that will allow other servers to log others in with their BYOND key. How it should work is that you direct someone to my script, which are then logged into BYOND. Then, the script will send them back to your PHP script with an encrypted certification (a second one), which can then be verified with my servers.

Of course, a better way would be to install DMCGI and do it the natural way.
You can set client/authenticate to 0 to separate your program from the hub.
From there you could set up whatever in-game registration you want.
In response to Elation
Ah, DMCGI, that's exactly what I was looking for! Thanks everyone for your help! It never ceases to amaze me how helpful everyone is here.
In response to nick.cash
nick.cash wrote:
You can set client/authenticate to 0 to separate your program from the hub.
From there you could set up whatever in-game registration you want.

Not really. For starters, this isn't a valid with a DMCGI application; since in a DMCGI application it's <code>CGI/authenticate</code> and it already defaults to 0. Second, this doesn't disconnect you from the hub entirely; you still need a key to login. All <code>client/authenticate</code> does is check with the hub if the key is valid. Disabling <code>client/authenticate</code> will allow BYOND banned users, as well as possible key stealers in. Don't use it (unless I'm banned).
In response to Android Data
Sorry to bump this, but I am feeling really stupid right now and can't seem to figure this all out.

I read as much DMCGI stuff as I could, including the link to the forum post about showing your BYOND key in PHP, but I still can't figure out how to do this.

What I gather so far is that I turn off authenticate in client, display a form using DMCGI, get their username/password from MY server's db, hand that to php to authenticate, pass the go/nogo back to DMCGI...then what? as far as I can tell, the user's key variables are read only. How do I tell BYOND what the user's key is? I may be going about this all the wrong way...can someone help me?
In response to Neo Skye
Neo Skye wrote:
far as I can tell, the user's key variables are read only. How do I tell BYOND what the user's key is? I may be going about this all the wrong way...can someone help me?

key will equal the BYOND key the user is logged in with, *or* the REMOTE_USER in the headers. This means that you'd have to setup something like .htpasswd to set that variable.
Alternatively, you could just login with BYOND keys. Or use your PHP system. Perhaps have your register system using DMCGI so you can use BYOND keys for registration.