ID:90318
 
Keywords: tutorial
So you've finally made your game, what a feeling of triumph you must have burning deep inside you. With your game complete, you're ready to distribute it to the masses of potentially interested players both inside, and outside of BYOND.

You might remember another article by one cunning young programmer entitled: "Get a hold of your target audience". Since that covered methods of gaining interest in your game within the BYOND site, lets discuss ways of getting people outside of BYOND to be interested.

As of BYOND 461, we've been able to distribute BYOND without the installation of the program, but undoubtedly, a lot of people have been asking how to do that. So let's discuss this now.

First and foremost, the release notes say if we place a folder named "byond" in our distribution, the program will default to that. So lets set up out folder. Go to your desktop and make a new folder with the same name as your game. Then download and unzip the latest BYOND zip. Cut the "byond" folder from the zip location, and paste it into your new folder. Now we have the game folder ready.



Back in Dream Maker, we need to prepare our game. First, we need to go to "Build" then "Make EXE". By default the executable will be the same name as your .DME file, so there's no need to change that. The Hub/Command ID is what we need to focus on.

Seeing as we're distributing outside of BYOND, chances are, none (or very, very few) of the people we hand the game out too will have a BYOND Key. With this in mind, first we need to set the Hub/Command ID to the name of our .DMB file. In my case, I'll link it to "file://MyGame.dmb". Then, we need to append ##guest. This will deliberately bypass the BYOND Pager, and automatically log the user in as a guest. If you want to add a touch of professionalism to it, you can add an Icon file to the executable. (The icon files are limited to .ICO. If you don't have a converter or don't wish to look for one, you can use this handy tool to convert from PNG to ICO via a web interface, neat yeah?)



Once you've received the message confirming your .EXE was built, we need to copy the necessary files out of our game folder (.exe, .dmb and .rsc). We'll paste these in the new folder we made on our desktop.



There, now we have everything we need to freely distribute our game to users who don't have BYOND installed. All you have to do is Zip the folder, and send it in the direction of people who might be interested.



For the fun of it, I've released the zipped version of my test project. Try it on a computer that doesn't have BYOND installed and see how you fair. =)

--

Make EXE also has a few other tricks up it's sleeve. You're not limited to just distributing the DMB and RSC of your game for the user to play locally. The user is also able to play on your 24/7 server (if you have one). Provided of course your game allows the use of guest keys.

To do this, just change "file://MyGame.dmb##guest" to "byond://server_ip:port##guest". This also removes the need for you to distribute the DMB and RSC with your executable (you'll still need the byond folder, however). There's no sense in including the host files if the user isn't going to need them, right?

--

For other tips and tricks concerning Make EXE, you can review the article A Beginners' Guide to Publishing BYOND Games. Which contains a list and description of all possible appendices to the command URL. (##local, ##host, ##hub, ##remote, ##live, ##info, ##guest and ##version=X).
Excellent article; the screenshots in particular should help developers set up their directories properly.

One suggestion I have for people considering this approach: drop your game's DMB and RSC in another folder ("bin" or something) so the only executable they initially see is the actual EXE (make sure to update the HUB ID/Command to the file's new location). It might not be a bad idea to also include a Readme.txt that explains what BYOND is, and the [X] features they could gain by fully installing it and creating a key (particularly if it's an online game).


Now if I could just finish a game of my own, I could email it to my family/friends :P
DarkCampainger wrote:
One suggestion I have for people considering this approach: drop your game's DMB and RSC in another folder ("bin" or something) so the only executable they initially see is the actual EXE (make sure to update the HUB ID/Command to the file's new location). It might not be a bad idea to also include a Readme.txt that explains what BYOND is, and the [X] features they could gain by fully installing it and creating a key (particularly if it's an online game).

I initially did this in my tutorial example with a folder named "data". But when I ran it on my laptop (freshly formatted, no BYOND installed) it brought up the pager with the name "Guest" in the login box, and I had to login to use it.

This was after I had already tested with the working version above. So there's something wrong there, but my Laptop is also now virus ridden, and I need to fix it AGAIN. So I'm unwilling to test it at the moment. =/
Are all the files in the byond folder required for smooth operation of the game? Can any of them be removed? I can't imagine people downloading an executable to connect to an MMORPG are going to need dreammaker.exe.
You don't need to convert to ".ico". All they really are is a 24 bit bitmap, so you just open up Paint and save it as one with a .ico extension.
Foomer wrote:
Are all the files in the byond folder required for smooth operation of the game? Can any of them be removed? I can't imagine people downloading an executable to connect to an MMORPG are going to need dreammaker.exe.

A few of the binaries aren't necessary, but they are very small since most of BYOND's code is in shared DLLs. Easiest to just include the whole directory.

Foomer wrote:
Are all the files in the byond folder required for smooth operation of the game? Can any of them be removed? I can't imagine people downloading an executable to connect to an MMORPG are going to need dreammaker.exe.

That thought had crossed my mind. But then again, I don't know what the developer is going to do here. Someone might be crazy enough to release a code file or two with their game to give insight as to how it might work for curious programmers.

Either way, I thought it best to just follow the instructions from the release notes to a T.
Tom wrote:
A few of the binaries aren't necessary, but they are very small since most of BYOND's code is in shared DLLs. Easiest to just include the whole directory.

I wonder if it might confuse anyone to have a subdirectory with a bunch of executables that aren't exactly related to the program. If they're not required, it might be good to eliminate unnecessary EXE files.

But then, I also wonder if its possible to edit any of the files to change the name of the "byond" subdirectory to something else, or to move them around, or to just include the subdirectory files in the same file as the game, etc... Lots of little questions about how strict this setup is.
Foomer wrote:
But then, I also wonder if its possible to edit any of the files to change the name of the "byond" subdirectory to something else, or to move them around, or to just include the subdirectory files in the same file as the game, etc... Lots of little questions about how strict this setup is.

Something like a "World Executor" variable which is put in Make EXE as the path to Dream Seeker.
world/executor = "byond/DreamSeeker.exe"
world/executor = "game_files/DreamSeeker.exe"
world/executor = "data/DreamSeeker.exe"


Something to that effect?
Currently the setup is fairly strict; the initial goal being merely to get your game distributed and running without a middleman installation. In a future release we'll update the system to include more customization.
So what are the limitations of distributing your game this way?
Will the game be able to be played online?
Daimondxz wrote:
Will the game be able to be played online?

Read the third-to-last paragraph.

If you're asking if they'll be able to "host" a game, then yes. So long as you don't disable it.
DarkCampainger wrote:
Daimondxz wrote:
Will the game be able to be played online?

Read the third-to-last paragraph.

If you're asking if they'll be able to "host" a game, then yes. So long as you don't disable it.

No, what I mean by this is; I make my project a exe. put it on my website as a download, someone download's it, and try's to log onto the game will they be able to? I see no way they can connect.
Never mind, I see it, this is very interesting now.
Tom wrote:
Currently the setup is fairly strict; the initial goal being merely to get your game distributed and running without a middleman installation. In a future release we'll update the system to include more customization.

I would love details on what has been added or changed in this department!
When I try to open the .exe, nothing comes up.
In response to Dr.DraX (#16)
Dr.DraX wrote:
When I try to open the .exe, nothing comes up.

Might be related to this bug. Make sure the BYOND client isn't already running.
i did get the bug mentioned above, but found out what was causing it. This is quite usefull, however... I whish the game was runned automaticly, without having to log in manually as guest.

Edit: Never mind. I tryed tryed my .exe on an other computer(also having byond installed), and there it runned without me having to manually logging in as guest.
So, if someone else runs over that problem, it eventually work.