Difference between revisions of "Private Server"

From Screeps Wiki
Jump to navigation Jump to search
(Revised content)
m
Line 13: Line 13:
 
* '''Console Launcher''': Allows launching the server from a command line without the GUI. Prerequisites include Node 10, Python 2, and build tools.
 
* '''Console Launcher''': Allows launching the server from a command line without the GUI. Prerequisites include Node 10, Python 2, and build tools.
   
* '''Custom Launchers''': Users can create their own launchers to manage server processes. These are the preferred solutions for hosting a private server.
+
* '''Custom Launchers''': Users can create their own launchers to manage server processes.
  +
** [https://github.com/screepers/screeps-launcher Screepers Launcher]: developed by the community to streamline the launch process and offer additional features for managing the private server.
 
  +
These are the community preferred solutions for hosting a private server:
** [https://github.com/Jomik/screeps-server Jomik's Screeps Server]: which focuses on ease of use and simplicity. It leverages Docker to provide a containerized environment, simplifying deployment and management tasks for users.
 
  +
 
* [https://github.com/screepers/screeps-launcher Screepers Launcher]: developed by the community to streamline the launch process and offer additional features for managing the private server.
  +
 
* [https://github.com/Jomik/screeps-server Jomik's Screeps Server]: focuses on ease of use and simplicity. It leverages Docker to provide a containerized environment, simplifying deployment and administration.
   
 
=== Storage ===
 
=== Storage ===

Revision as of 14:28, 21 April 2024


Overview

The Screeps private server is a distributed, standalone game server that allows you to launch your own game world on a local computer or dedicated server on the Internet.

Launcher

The server launch process consists of multiple parallel processes linked to each other. There are different types of launchers available:

  • GUI Launcher: This launcher comes with the standard version of the game on Steam. It provides a GUI for managing the server, viewing server logs, and a CLI interface to control the server. However, it can be cumbersome to modify and update and is not the preferred way to manage a server.
  • Console Launcher: Allows launching the server from a command line without the GUI. Prerequisites include Node 10, Python 2, and build tools.
  • Custom Launchers: Users can create their own launchers to manage server processes.

These are the community preferred solutions for hosting a private server:

  • Screepers Launcher: developed by the community to streamline the launch process and offer additional features for managing the private server.
  • Jomik's Screeps Server: focuses on ease of use and simplicity. It leverages Docker to provide a containerized environment, simplifying deployment and administration.

Storage

Contains a LokiJS-based database, a key-value storage, and a Pub/Sub mechanism. It stores game data, including map and player data.

Backend

Includes an HTTP server for client access and a CLI server for administration. Administrators can execute commands and interact with mods.

Engine

The game core responsible for executing game scripts and interacting with game world objects.

Driver

Acts as a link between the environment-independent engine and the immediate hosting environment. Users can replace this module for customized data handling.

Common

A shared code base with useful utilities.

Links

Server mods

Screeps mods are a way to extend the functionality of the private server. Mods can add new features, change existing ones, or provide additional tools for managing the server.

Source Code

https://github.com/screeps/screeps Main Repo, mostly a meta-package and wrapper for other modules.
https://github.com/screeps/launcher Electron/CLI launcher.
https://github.com/screeps/backend-local Webserver/API module.
https://github.com/screeps/engine Core Engine, shared with public server.
https://github.com/screeps/storage Storage module, acts as a communications hub.
https://github.com/screeps/common Shared module for connecting to storage.
https://github.com/screeps/driver Engine driver.