ID:260804
 
Given recent discussions of attempting to take BYOND to external communities, the primary issue seems to have focused on the installation of BYOND and the issues involved surrounding that.

I do not think it would be a feasible plan to try to make "BYOND for Flash" or "BYOND for Java" as such a thing would probably take a very long time to accomplish.

Instead I think more should be focused on BYOND as a framework.

As it stands right now, BYOND is very tightly integrated with its community. Whilst that has served its purpose in the past, I do not think that in the year we live in today that it would be good to integrate such a lot of people so tightly in this way.

Yet, it's still needed to facilitate things like medals and scores, and it would certainly be nice to have BYOND Memberships.


What I have come up with may seem a bit drastic, but here goes: I think it would be a good idea to remove the BYOND Pager.

The installation of BYOND should be as transparent as possible. The "Make EXE" feature within Dream Maker should be able to produce a full installer file. What this does, is that it sets up BYOND as a framework: it automatically installs/updates BYOND based on the version that the game was compiled with.

So if you compile with 454, the result of "Make EXE" is a setup for 454. If the client has an older version of BYOND installed, it will update it. If the BYOND version is the same or greater than, it will do nothing.

Everything the EXE does so far should be transparent. In general there should be a popup asking whether or not the user wants BYOND to be installed. If anything there should be a popup asking the user if they want the BYOND framework installed because the game they're trying to play uses it, with a default to the "Yes" button.

After BYOND has been installed, the game should automatically be opened based on the URL that is given.

Now it starts to get dynamic. I think two more URLs should be added:
byond://AndroidData.MyAwesomeGame#server should connect to the first live server it finds. If that server reports being full (world.game_state = 2; yes I said 2, since the value of 1 is for the waiting list and may not be nice to use in this case) it will try to join the second one, and the third, and so forth.
byond://AndroidData.MyAwesomeGame#list should provide a simple input box (like input()) which displays a list of server IPs/ports + world.status so players can choose which one to join.

Once BYOND knows which server the player wants to join, the real action starts.

The first thing BYOND does is run the BYOND Tray. This is like the BYOND Pager, except it's not. All the "BYOND Tray" does is sit in the tray and be a global accesspoint for all DreamSeekers so the hub can keep track. In addition this tray icon can provide version information for BYOND, as well as the ability to shut down DreamSeekers and open Options & Messages on Dream Seeker windows. It would of course also have links to "Open Location" and pretty much all the basic stuff the BYOND Pager has now.

The BYOND Tray will now run and look at the preferences of the user. In my case, my preferences would show to "Auto-login on the following BYOND key" and it would have my username and password and a checkbox saying "Save my password". This setting is global and can be configured in the Preferences window of the BYOND Tray. If configured, it automatically logs you in with that key.

If the above feature isn't used, you'll just login with the Guest key. After that, you'll connect to the server.

Now here comes the real ingeniousness of my plan: developers can handle the BYOND login screen.

"Whoa, whoa, whoa. Wait. Does that mean developers can nick my login info?"

No, it does not. What I mean by "login screen" is that the interface/skin now has an additional element available called "login". This can be placed on any skin element.

The "login" element basically provides a login screen complete with "Register for an account" and "Lost your password?" link. This login screen is secure and only relays commands to the BYOND Tray.

The beauty of this new interface element is that games can put the login screen right into the game. To the outside user, they didn't have to download anything or sign up on some website and go through all the motions; all the stuff is right there on one screen.

Games that don't want to mess with skins can always use a new variable called client/no_guests. If this compile-time variable is set to 1, BYOND will automatically make a login screen of its own. Otherwise, the player will login with the Guest key (and the developer can make his own login screen).


This is just a thought I had, and I'm posting it here since I'm wondering if you guys think it's a good idea. I think it's a great idea since it completely hides BYOND from the outside world in the sense that they're connecting to a game, but the smarter folk (the one that are likely to get BYOND Memberships and develop and help out) will start to wonder what this "BYOND Framework" thing is. Also, the BYOND logo would of course be displayed in the splash screen upon connecting, and the login element would contain the BYOND logo.

The only problems I see with this implementation is that people might try to spoof the login element and try to steal passwords, but I'm sure some way could be found to prove to the end-user that the login screen is not forged.
BYOND Pager:
- has a paging function with the ability to send messages.
- displays recent BYOND news, has a "Games" tab that queries the hub, "Friends" tab for paging.
- gives helpful status messages to users.
- gives information on what version of BYOND this is, etc.
- allows management of all downloaded games.
- allows you to store bookmarks to games.
- allows you to open DreamSeeker/Daemon/Maker from the pager.
- allows you to set up some global preferences.

BYOND Tray:
- would sit in the system tray, no window pops up by default.
- gives helpful status messages to users.
- gives information on what version of BYOND this is, etc.
- could have a "games" tab only displaying which games the user has "installed". (Games would pretty much spread through Make EXE or joining games via the hub; they would automatically be added to a list although you can suppress certain games from it if you want.)
- allows you to open DreamSeeker/Daemon/Maker from the pager.
- allows you to set up some global preferences.
- allows you to specify the default BYOND key to login with to games, otherwise it uses the games' login screen for authentication.
- allows you to login with more than 1 key at the same time, and coordinates this effort with the BYOND Hub.
As it is now:
A single screen with "Save As", "Hub ID / Command" and "Icon File". And some text.

As it should be:
In actual wizard form, going through steps.
1. Explains a bit on what the wizard does.
2. Allows you to specify the BYOND Hub to use. Defaults to the value of world.hub.
3. Hub command to use. This can be "live"/"remote", "server", "list" and it will automatically append #command. It can also be set to a byond:// URL to go to a static server. Also explains which hub commands there are and what they do and what it is all for.
4. EXE modification page. Allows you to choose the icon file.

This also contains a checkbox to make a "linked EXE only". Linked EXEs do not contain the BYOND installer embedded within and are used to link existing communities to updates of their game and stuff.

Finally this page also contains a "path to resource file" option. This allows you to select the .rsc file for your game, which is automatically embedded into byond.rsc before connecting to any servers. That way, you can not only send an .exe containing the BYOND installer and a link to your game, but also all the resources for the game with it!

5. Now you type in the path to save the .exe as and you see a "Finish" button.
The "login" element would have a fixed minimal width/height. If increased the BYOND logo will be centered within and the width of the textboxes will increase.

Properties:
1. Allow guest login. If set, the checkbox "Login as guest" becomes available. Checking this checkbox will make the username/password fields disabled and sets the username field to "Guest" and the password field to blank out. This is disabled by default when client/no_guests is set.
2. BYOND Members only: prevents you from logging in if the key you're trying to login with is not a BYOND Member. For those elitist games or servers which have some kind of "BYOND Member only" flag set.
3. BYOND Members only message: message displayed to the user in addition to "You need to be a BYOND Member to login." explaining why they need to become BYOND Members. At the end of this message display "Become a BYOND Member today!" with a link to the membership_info page.

Security of the "login" element does prove to be problematic since people can always make a screenshot of the login element and try to spoof it that way. Perhaps some kind of watermark could help in this case. It would help a lot of the BYOND Tray would check the interface windows for lookalikes and warn the user if it detects one. (This could start out as a simplistic form of protection that can be improved as BYOND developers find more ways to cheat the system; we can report it to you guys and you guys can fix.)

For additional security it may also be nice to add one of those CAPTCHA's if the form is spammed repeatedly. That way people can't run password crackers on such things. And it makes it look more professional. I think. :D
I think the opposite should be the case. BYOND (as an application (the pager)) should aim to be more of a full application, like Steam, instead of being something that currently feels like an almost useless middleman.

What you've discussed here (a behind the scenes install and minimal BYOND features) would be fine for games that have been packaged as an exe, but I seriously doubt those are being heavily distributed, or bringing in many, if any players at all.

I say, if you come to BYOND for the first time, and click on some random game to play:
- It should bring up the window telling you you need BYOND installed and asking if you want it installed.
- After installing it should not directly launch the game but should have window saying it been installed with 3 options:
1. Close the application, "OK", just click the X.
2. Launch the game: launches the game. Sort of like downloading host files currently does.
3. Return to previous page: launches a more robust version of BYOND, that functions like steam, having a built-in browser. The page it displays should be whichever one you were attempting to join the game from.

- Each tab from the pager should be open-able in its own window.
- Right clicking on the BYOND tray icon should have a "Settings" or "Preferences" option. (even if they don't fully change everything, that should be added)
- You should be able to download more than 1 thing at a time
- There should a tab to manage all active downloads, and all previously downloaded games. From this tab you should also be able to delete/"uninstall" any of said games. You should also be able to launch/join them.
- Probably some other things but I'm getting bored =P

I also don't see why a dream seeker shortcut is still installed, considering launching it does absolutely nothing as far as I can tell.
Even if the login box looked nothing like the real thing a fake box would still trick a user that does not know what the login box is supposed to look like...

And if this user login screen has to appear a certain way it might as well appear in the pager with simple methods to modify it from the dream seeker. Although making them change keys while they had a dream seeker open would require the dream seeker to somehow know what that knew key was.
In response to Chowder
Letting users have any type of control over login systems is a bad idea if you ask me. Even the current pager method could easily be faked to steal peoples credentials.
I say all logins should be handled through the website for security purposes.
In response to Falacy
Falacy wrote:
I think the opposite should be the case. BYOND (as an application (the pager)) should aim to be more of a full application, like Steam, instead of being something that currently feels like an almost useless middleman.

BYOND as a full application would mean that the pager functionality has to be expanded on, possibly introducing more and more bandwidth. It can be locked to BYOND Members and those wishing to communicate with BYOND Members, but the only way for BYOND to flourish in this way is to provide this chat interface. The same chat interface also needs to be present in game (perhaps sorta like how Steam does it if full screen games become possible with BYOND).

Games would have to be listed based on what players like to play, in a nice list, like how Steam does it now (game icon, game title, developer name, rating between 0-100 showing how many players like the game).


What you've discussed here (a behind the scenes install and minimal BYOND features) would be fine for games that have been packaged as an exe, but I seriously doubt those are being heavily distributed, or bringing in many, if any players at all.

It would bring in players for individual games, who would notice BYOND as a framework of some kind instead of a bloaty Steam-like application.

As an outsider, I might feel it's useless to install BYOND because, hey, I've already got Steam. Besides, what does BYOND have to offer me besides connecting to games made with BYOND and developing games (which may be useless to an outsider if they're only a player).

I say, if you come to BYOND for the first time, and click on some random game to play:
- It should bring up the window telling you you need BYOND installed and asking if you want it installed.

Huh? I need BYOND installed? What is this? Some kind of framework? Oh no, it's some kind of Steam-like application. This is going to be a virus or it'll mess with my computer. Or: this is probably one of those spyware popups like the "do you want to install the yahoo toolbar?" popups you usually get with stuff like this. I'd better click "no".

- After installing it should not directly launch the game but should have window saying it been installed with 3 options:
1. Close the application, "OK", just click the X.
2. Launch the game: launches the game. Sort of like downloading host files currently does.
3. Return to previous page: launches a more robust version of BYOND, that functions like steam, having a built-in browser. The page it displays should be whichever one you were attempting to join the game from.

I would want to use the "Make EXE" to create one that causes players to instantly be connected to my server, not receive a choice, nor do I want players to be able to host the game. I should have the option of not including any .dmb at all if I want to.

- Each tab from the pager should be open-able in its own window.

Ugh. No. No, no, no. That'll just fill the screen with windows.

Instead, the "Games" tab should be changed to be kinda like Steam's Games tab.

- As I stated above, games would be in a list of "customizable game icon", "game name", "game author", "rating". Rating would be based on how many people favorited it, guild memberships, etc. and would be a number between 0 and 100. Rating can also be "N/A" if the game has just been created and no real rating can be assigned yet.
- Clicking on the rating allows players to vote for the game, perhaps? That could improve the rating. Perhaps BYOND Members get a double vote, or only members' votes count.
- Right-clicking on a game brings up a popup menu displaying choices such as "Launch Game", "View News", "Properties", "Remove".
- "Launch Game" would launch the game as the developer intends it to be launched. Developer can pick one of the following options for Launch Game:
-- The game is launched and immediately hosted by the player through DreamDaemon, although the player is prompted if they want to host it first.
-- A server list is shown and players can pick a server. If there is only one server online, players will join that single server.
-- Players join a direct server IP.
-- Players can choose between hosting the game and playing on an existing server.
-- If no server is available and players can't host, the message "This game is unavailable right now." appears in an alert box.
- "View News" could display the current "long description" of the game on the hub entry, but it would be better suited for an actual changelog which developers can update to show the game is being updated.
- "Properties" would allow players to do things like toggle sounds/music for that specific game and not globally for BYOND. Perhaps the developer can make his own "Properties" skin? (see below)
- "Remove" removes the game from the Games list. It is no longer being watched by the player.
- At the bottom of the Games page is a "Add Game" link. This allows players to specify an author and a game. Once part of an author has been specified, a dropdown box should automatically narrow the results down like how Google does (suggestive searches). Ditto for games.

In fact the game icon could have multiple versions, each defined by the author of the hub entry. The different versions would be for when the game is available to play (server is up), when the game is completely unavailable, or when the game is unavailable but can still be hosted.

- You should be able to download more than 1 thing at a time

/agree

- There should a tab to manage all active downloads, and all previously downloaded games. From this tab you should also be able to delete/"uninstall" any of said games. You should also be able to launch/join them.

See above.
In response to Falacy
Falacy wrote:
Letting users have any type of control over login systems is a bad idea if you ask me. Even the current pager method could easily be faked to steal peoples credentials.
I say all logins should be handled through the website for security purposes.

That's the whole issue: outsiders would rather see a login screen embedded into the game they're connecting to, not some weird "BYOND" thing that suddenly pops up. Insiders on the other hand prefer BYOND to handle logins so there's no chance of information being stolen.

An easy way to prevent spoofing of the login screen is to simply change the icon of the BYOND Tray icon whenever a DreamSeeker window is displaying a login element. Outsiders won't care much, but insiders will be able to easily spot that the login is legit.
In response to Android Data
Might as well just have the game have a proc that pops up a login screen of the pager, perhaps have that screen customized with arguments. Any other way would indeed most likely be a security risk.
After the player logs in in that window, the pager would reconnect the Dream Seeker to that game, now with the newly-logged-into key.
In response to Android Data
Android Data wrote:
BYOND as a full application would mean that the pager functionality has to be expanded on, possibly introducing more and more bandwidth. It can be locked to BYOND Members and those wishing to communicate with BYOND Members, but the only way for BYOND to flourish in this way is to provide this chat interface. The same chat interface also needs to be present in game (perhaps sorta like how Steam does it if full screen games become possible with BYOND).

BYOND already does almost everything steam does, steam just does it better. Not much would really need to be truly added, its current features would just need to be modified/improved.
Most of what steam does is through its website, like byond, it just has that website built right into its software.

It would bring in players for individual games, who would notice BYOND as a framework of some kind instead of a bloaty Steam-like application.

And how many of those people would ever even see BYOND to begin with? I'd think most of them would only ever see the game they were exe-ing.

Huh? I need BYOND installed? What is this? Some kind of framework? Oh no, it's some kind of Steam-like application. This is going to be a virus or it'll mess with my computer. Or: this is probably one of those spyware popups like the "do you want to install the yahoo toolbar?" popups you usually get with stuff like this. I'd better click "no".

Unless BYOND installed completely behind the scenes, which would probably seem even more suspicious if ever noticed, I'd say that would be the common feeling about it by any and all (computer savvy) new players to the community.
I'm much more willing to install some sort of full software application than a random plug-in from some website.
If its not a flash or java update, its most likely not going on my computer directly from a website.

I would want to use the "Make EXE" to create one that causes players to instantly be connected to my server, not receive a choice, nor do I want players to be able to host the game. I should have the option of not including any .dmb at all if I want to.

What the heck would be the point of a make exe that connects them to a server? Just send them a link to the server - it'll automatically do everything if they try to join.

Ugh. No. No, no, no. That'll just fill the screen with windows.

Not really? How often are you looking at multiple things at once? Well, the current answer would be never, since its not possible with the current setup. But at most there would probably be 2 or 3 pager-sized windows open at a time.

That's the whole issue: outsiders would rather see a login screen embedded into the game they're connecting to, not some weird "BYOND" thing that suddenly pops up. Insiders on the other hand prefer BYOND to handle logins so there's no chance of information being stolen.

If game developers want to create some sort of customized login system; they can feel free to do that through their own in-game account systems.
Having people register and/or login to BYOND accounts directly through a game sounds incredibly un-secure.
That's a little extreme, don't you think?

It does provide a cleaner interface though.
In response to CaptFalcon33035
CaptFalcon33035 wrote:
That's a little extreme, don't you think?

Perhaps, but so far BYOND has tried to advertise itself off as being tightly integrated with its community making it easy to get players.

The result of all this effort is that BYOND Anime now has a ton of players, and the rest of the community is just left bickering and acting *unpolite* (see: Falacy) whenever the opportunity arises.

At least if BYOND is disguised as a framework instead of being integrated so tightly with this community, more people would see some merit in actually making a game since they can present it to a group of people from their own community that they like.

It does provide a cleaner interface though.

Indeed, and my point was that with this cleaner interface, people are more likely to install BYOND.

At the very least the installation of BYOND should be streamlined: it should be installed silently, and afterward the player should receive the option of registering for a key & automatically logging in with that or using a Guest key.

Falacy wrote:
What the heck would be the point of a make exe that connects them to a server?

The point would be that the .exe would automatically install/update BYOND if the user doesn't already have it, whilst sending a direct byond:// link won't work if I'm trying to distribute a game to a community outside of BYOND.

Note by Moderator:
Please try to keep a civil and polite tone.
Thank you in advance.
In response to Android Data
Android Data wrote:
The result of all this effort is that BYOND Anime now has a ton of players, and the rest of the community is just left bickering and acting *unpolite* (see: Falacy) whenever the opportunity arises.

How does any part of that sentence make any sense at all?
The BYOND software itself has practically nothing to do with what games people play on it.
How am I not a part of the anime community, considering my major games are anime-fan-games?
And taking the previous 2 things into account, (or even without) how does that lead to bickering?

The point would be that the .exe would automatically install/update BYOND if the user doesn't already have it, whilst sending a direct byond:// link won't work if I'm trying to distribute a game to a community outside of BYOND.

Sounds like BYOND should just fix their server links to work with un-byond-installed computers then.
Rarely, if ever, do I want to be instantly thrown into some server directly after downloading and installing a game. The only exception I can really think of is flash/java games that run directly from a webpage.
In response to Kaioken
There's tons of ways you could trick a player though

One idea being they start a malicious program that has the ability to pretend to be the login screen. They enter the information and the program starts the game and pretends that the player is that key...Methods of validating a key are as simple as checking if they have a members page. By checking the length of the password and what it contains you can get an idea of if it at least could be a password and then log it.
Also because these players are assumed to not know what byond is how would they know what the real login screen would look like?

Anyways, I think the games should have there own login screen and database. The game should assign a temporary password and key tell them they can use the key but if someone else registers it tough luck.

Here's what I mean.

The player connects to the game world
The player makes an character on that game choosing a user name and getting a temp password.
The game checks if the user name is a registered key if it is they will be asked to choose another one.
Once they have a user name and pass they will be recommended to go to byond.com to secure there name.
If the game detects that the member page for that username now exists that account will be gone but the person will be able to use their password to retrieve it.

The main three points here are
Local server login system with temp pass and recommendation to register.
Local account retrieval system.

All of this can be done without byond changing and is pretty easy and clean looking with almost no additional security risk.
In response to Chowder
Chowder wrote:
There's tons of ways you could trick a player though

One idea being they start a malicious program that has the ability to pretend to be the login screen. [...]

Not really worth discussing here since it doesn't have much in particular to do with the topic - it's already possible now. Though starting the malicious program (which might as well steal everything on the computer, not only the BYOND password, mind) on the player's computer would be the tricky part; sure, it could be distributed with the game, but not automatically silently executed (unless the game is ran in Trusted mode).

Anyways, I think the games should have there own login screen and database.
All of this can be done without byond changing and is pretty easy and clean looking with almost no additional security risk.

Of course, it's not like anybody didn't think of it before. I think what's desired here is for outsiders to register keys and become integrated into BYOND and its community, which also enables features such as subscriptions and medals (not to mention participating in the community via forums, blogs, etc).
As you said, a game can definitely work just fine with no keys involved and having everyone log in as a guest, the option to register keys in-game just gives something extra.