A process is a running instance of an executable program. A process can be started within a Service startup, or can be started (as a Dynamic Process) by another process. For example, the World Server (static) process starts up Area Server (dynamic) processes. The definitions for the processes come from the Daemons, or sometimes from the Directors, which pass them to the Daemons.
Types of processes
There are two main flavors of processes: Static, and Dynamic:
- Main page: Static processes
- A static process is started by a Service, or via Master Control.
- Static processes get their definitions from an associated Daemon, and can run on any hardware, not necessarily within a Server Group.
- A dynamic process is started by another process, not by a Service.
- Dynamic processes are normally started and stopped by Director processes. For example, the dynamic Physics Server processes are started and stopped by the Physics Server Director, depending on need.
- Dynamic processes get their definitions from an associated Daemon.
- A dynamic process can only run on hardware within a Server Group. It is assigned to one of the machines in the Group, depending on load.
List of standard processes
The following processes are provided within the standard HeroEngine framework. All of them are static processes, except as marked.
World and area processes
- World Server - This server is in charge of a lot of game coordination. It starts up and shuts down Area Servers as needed. Player logins are routed through this server. Each time a player moves from area to area, the World Server can allow or disallow the move.
- Area Server (dynamic) - An Area Server is an instance of a particular geographical part of the game world. It controls the interaction of the player and the game through scripts. Area server processes will either be of the Edit instance of an Area, or a Play instance.
- DOM Coordinator - Each server that needs to connect to a shared GOM Database connects to the DOM Coordinator to allow for changes to be reflected across all servers. Changes of definitions at the DOM level are handled by this server.
- Client DOM Coordinator - similar functionality to the DOM Coordinator, but works on the client's DOM
- Service Directory, tells connected clients which worlds they can access
- Live Update Server Director
- Dude Manager Director (sometimes called Dude Server Director) - Manages the starting and stopping of the Dude Servers
- Dude Server (dynamic) - This process handles the connection to players. There can be more than one Dude Server running at once to handle multiple users. The Dude Server opens connections to the various servers the player may need. It is also responsible for authenticating the user.
- Physics Server Director, starts and stops physics server and pathmaker processes
- Physics Server (dynamic), performs physics calculations for areas, and generates some pathfinding information
- Pathmaker (dynamic) (new in 1.22) handles the HeroPath system
- Repository Server Director, starts and stops Repository Servers, based on load
- Repository Server (dynamic) - processes Repository requests for the clients and talks to the Repository database
- Repository Dude Manager, handles connections from the Repository Browser
- Internal Repository Server, handles repository requests by area servers
- Thumbnail Creator - monitors the Repository for addition of files, and auto-generates thumbnail images
- Texture Copy and Mip - Monitors old-style character textures, creating lower Mip level textures
- Directory Watcher Server - Allows certain clients to be notified when the repository changes.
When a GameMaster writes a script, it is submitted to one of two different compilers, depending on whether it is a client-side script or a server-side script.
- HeroScript Compiler Server - This server is where server scripts are submitted to be compiled. After a successful compile, this server informs all other servers to load the new script code.
- Client HeroScript Compiler Server - This server is where client scripts are submitted to be compiled. The compiled client script code is then sent to the client's repository.
- Search Server, works with the compiler servers, handles script text search requests
- Master Control Daemon, tells the FireUp Daemon to start and stop processes
- Fireup Daemon, informs Master Control of the resources of a hardware machine, and starts and stops processes as needed by Master Control
- Authenticator - totally verifies account names, passwords and subscriptions
- ID Server - gives IDs to the Dude Servers and Area Servers
- Post Office Router - helps the other processes communicate with each other
- Dream Server - handles communications from the DreamManager clients
- Stat Center - collects statistics from other processes in the world
Modifying a process
Note: Only customers with full or source licenses can modify values via the Master Control Console.
A list of configuration values can be seen at Configuration Value Reference.
For details on modifying a process's configuration values, see Editing configuration values.
Some processes need to have access to a network, so that they can do things such as communicating with the client. Other processes are more internal, and do not need this access. Specific "externally-facing" processes are:
Though it might seem that something like an Area Server would need to have access to a network, actually it doesn't. An Area Server sends its communications via the Dude Server, which then communicates with the appropriate client.