Publishing your game
From VbGORE Visual Basic Online RPG Engine
This section is dedicated to what you need to do when you want to release your game to make sure everything is ready for others to use. Please note that these are just a few suggestions, and not everything you should take into consideration. Make sure you always test your game extensively before releasing it to the public.
There are 3 MAJOR things you have to do. These are: 1: Change the IP in the client. 2: Set the server to accept connections from all ips. 3: Pack up your client, and send it to other people. This guide explains these in detail below. Make sure you read them in detail.
If you don't quite understand this article and would like another perspective on publishing a vbGORE game, you might want to read this thread.
Setting The IP Values
The client must have the external IP of the computer the server is running on hardcoded into it. Your external IP can be acquired through websites dedicated to showing you your external IP, such as WhatsMyIP.org. To set the IP, do the following things:
Open GameClient.vbp using Visual Studio 6. NOTEPAD WILL NOT WORK. Open TCP.bas and under Sub initSocket
SoxID = frmMain.GOREsock.Connect(GetIPFromHost("127.0.0.1"), 10200)</vb>
Change it to: <vb>
SoxID = frmMain.GOREsock.Connect(GetIPFromHost("YOUR-IP"), PORT)</vb>
You shouldn't need change the port unless you have a firewall or a application blocking it, so, let the port stay as 10200. For the IP, just replace the "YOUR-IP" with the IP that appeared at WhatIsMyIp.org
Once you have changed this, make sure you compile a new server exe! (Unless you plan to run your server from the IDE, which usually a good idea, this way you can debug crashes, etc.)
The server needs your internal IP so it knows what IP to bind to internally in case of situations of multiple computers per single IP address (such as being behind a router, which most households are). Normally, you can just set the internal ip as 0.0.0.0.
The IP for the server is stored in ...\ServerData\Server.ini. In the case you are using one server (which is true in most cases), scroll down to [SERVER1], find IP and change it to the IP you got from above.
If the server did not bind to 0.0.0.0, then try your internal IP. To get this value, go to Start, select "Run", type in cmd, and press enter. You will see a black screen with some white / offwhite text. Enter the word ipconfig into this and press enter, and you will be presented with your IP Address, Subnet Mask, and Default Gateway.
Using A DNS
You can use a DNS (such as www.mygame.com or mygame.somesite.com) instead of a raw IP address. This allows you to not have to update the client every time your IP address changes. If you do not already have a DNS of your own, you can use No-IP.com to get one for free. This DNS will only be for replacing your client IP, not your server IP! Instead of entering your IP in the client now, you enter in your DNS. For example: <vb>
SoxID = GOREsock.Connect(GetIPFromHost("127.0.0.1"), 10200)</vb>
Would become: <vb>
SoxID = GOREsock.Connect(GetIPFromHost("mygame.no-ip.com"), 10200)
</vb> You must make sure you update your DNS redirection IP every time your external IP changes, though. This change can happen whenever your router reboots, so make sure to check after every time your router shuts off.
If the server is on a computer behind a router, you will have to forward the ports used by the server in your router. Also, if you have any firewall programs running on the server computer, you will have to open the ports on those, too. More about port forwarding can be found at PortForward.com.
- This is the remote program, that is used to edit all the maps related to your game.
- Helps you edit particle effects - requires you going through the code to edit the effects, though. Used as a easier and faster way to view the effects. It's not really an editor.
- Runs the main game. You must have the server up to get past the login screen.
- Runs the main game server. The server will automatically initialize when loaded, so all you have to do is open it up.
- A simple program for converting between ARGB, RGB and Long values. This tool has been intigrated into the Map Editor, which can be brought up by clicking the asterisk ( * ) next to color input boxes.
- Automatic finds for you the 15 smallest unused graphic file number and unused GRH value for your convince.
- A tool that removes the current log files of the game.
- When running, this tool automatically reboots the server if the GameServer crashes or stops running for any reason.
- This tool allows to sort all your GRH's graphics into different categorises for easier use in the EditorMap.
- An outdated/unused tool... compresses and decompresses a whole folder (use just as a reference).
- Turns your Grh1.raw files into Grh.dat files, and calculates the values for your Grh.ini file.
- Allows to view the FPS, or speed, of your game server.
- The client for the auto-updater. This will download the files from the Update Server's update directory only.
- Handles/sends files to the update client. Files must be placed into the UpdateFiles directory that you wish to have updated. It will use the Last Edited date and file size of the client's files as a reference on what needs to be updated.
These folders are needed by the client only:
- Holds general data of the game
- Holds the graphic files
- Holds the game's music
- Holds the sound effect files
- Holds the map files
These folders are needed by the server only:
- Contains backup map files from the server
- Holds the server data
- Holds more precise map information like object/npc placement, name, music info, etc.
- Holds general data for the server (such as MOTD)
- Holds the files that will be sent to the client through the updater
Client and server
These folders are needed by the server and client:
- Visual Basic Libraries
- Holds the DLLs and OCXs (only needed if not set up through installation program)
- Holds the map display files
Neither Client nor Server:
These folders are not required by the Client or Server
- _Database Dump
- The database batch file from the official release. Not required to run the database, and is not needed after you batch upload to your database. Not required by anything (delete it, but always make a backup of your database files)
- 3rd Party Tools
- Tools for making the development of the server and server content easier. Made by members of vbGORE, and is not officially supported by vbGORE. They are safe to use, though. Not required by anything.
- Holds the icon files. Only used to distribute the icons in *.ico format so you can add them to your own forms. Not required by anything.
- Holds all the code files for every project. Unless you want your project open source, do not distribute this, ever! Required for editing the code of any project.
To summarize; The client you distribute needs the following folders: Data, Grh, Music, Sfx, Maps It will also need an EXE for your game (GameClient.exe by default - Make sure you have changed the IP in this!) It's generally a good idea to include the config program, and if you have one set up, an updater too. You will also need various DLLs, these can be found in a folder called "Libaries", either include these along with the GameClient.exe or have the installer set them up. Make sure the GoreSockClient.ocx is in there too.