Add a Server Executable
This page explains how to add a new server side executable process. A related alternative is to use the HeroScript Extension Plugin.
This process requires source code access. If you do not have source code access and desire a new type of server executable, please contact the HeroEngine team for assistance.
Create a new project under the appropriate solution (e.g. firestorm.sln or hjservers.sln).
- Directory names should be all lowercase to avoid a Perforce bug.
- It should follow the standard Firestorm Application pattern (e.g. inherit from BaseApplication).
- It needs to have a version resource for deploy to modify (REVERSION_EXES).
- Setup all of the build configurations with the proper options. It's often easier to copy another .proj file and modify it in a text editor.
- Add the necessary project dependencies.
- Maybe something for Linux.
If you want to test the executable in a sandbox world before incorporating it into a deploy, you need to manually copy the .exe and add it to the .cfg file. The config files used are listed in configs.lst in the installed "Firestorm Daemons Dev" directory.
You still need to create the daemon and process, and add it to a service in Master Control (see below).
- Verify that the executable is built to the source directory that the executables are installed from (typically a "run" directory).
- Modify the Wise script (in a Perforce path like HeroEngine/MAIN/tools/deployment/base/base.wse) to insert lines into .cfg file. If not edited on the deploy server (Lego), sync the file there.
- Run the deploy client and click "Edit..."
- Choose the product to be modified. You probably want to create/edit a sample_version_base product corresponding to the version to be released.
- With Value=FILES, click the "Edit Value" button.
- Scroll to the bottom and add the new entry.
- Switch the focus away from that line and click "Save"
- With Value=REVERSION_EXES, click the "Edit Value" button.
- Add the new executable to the list.
- If Value=PATCHES is enabled, you need to set the Value=NEW_FILE_LAST_ADDED to 1 greater than the Value=CURRENT_VERSION. Server installs don't typically bother with patching. If this is needed, it would be the specific product not a base one.
- Specific products will need to be changed to inherit from the new version once the code has been integrated.