KeldrinADMINISTRADOR DE SERVIDORES DEDICADOS

Versión preliminar para desarrolladores

Creación y ejemplos

Usa el comportamiento medido del juego y el contrato exacto del anfitrión. Los ejemplos son entradas de referencia, no compatibilidad intercambiable entre juegos ni una certificación.

SDK, versión preliminar para desarrolladores

El SDK 0.9.140, con licencia MIT, es una herramienta de creación, no una certificación completa del juego. Descarga e inicio rápido · Requisitos.

Investiga antes de declarar

Confirma la distribución oficial del servidor, la topología de procesos, la configuración y los secretos, el registro en archivo real, la política de detención (Stop) aprobada, los puertos, la gramática del estado listo, las evidencias de jugadores y qué archivos forman parte del mundo guardado. Un proceso, un registro de estado listo, una regla del router, una respuesta desde fuera de la LAN y la entrada de un jugador a la partida son hechos distintos.

Prefiere los archivos de registro del propio juego

Usa el registro en archivo compatible del juego cuando exista. Documenta su opción de inicio o configuración, el nombre de archivo, la codificación, la delimitación por líneas completas, el comportamiento de vaciado, la rotación, la retención y el filtrado de secretos. El adaptador de Icarus, por ejemplo, muestra el destino ABSLOG que su inicio ya configura; eso añade visibilidad, no un nuevo mecanismo de guardado ni de ciclo de vida.

Process.NativeFileOutput es la alternativa compartida de salida directa a archivo. No requiere un bombeo de salida del Servicio, pero la detención del árbol de procesos no garantiza un guardado final de lo que está en memoria. OutputCapture tiene limitaciones ligadas a la vida útil del Servicio. No copies la política de procesos ni el analizador de otro juego sin evidencias.

Políticas de detención que tienen en cuenta el guardado

Un paquete puede declarar un tipo de detención que tiene en cuenta el guardado en lugar de terminar el árbol de procesos: guardar y salir en Valheim y Core Keeper, y la interrupción por consola de Enshrouded (EnshroudedBreakSaveExit). Cada tipo está vinculado al inicio oficial exacto de ese juego. El SDK valida la declaración con lint; no observa cómo guarda el juego. El ejemplo incluido de política de detención de Enshrouded muestra la declaración.

Selección de la carpeta real del mundo guardado

SaveData.Roots.SelectImportedSubdirectory es un booleano opcional que se omite cuando es falso y se usa con ImportSubdirectorySettingId. Ofrece un número acotado de carpetas inmediatas que existen realmente en la colección de mundos guardados del juego. No hay rutas escritas a mano ni una primera opción automática. Una instalación nueva sin mundos conserva su valor predeterminado firmado; una carpeta configurada que falte no debe crear en silencio un mundo de reemplazo.

La importación de carpetas con el servidor detenido, o un ZIP inequívoco con una sola carpeta contenedora, puede confirmar a la vez la selección de la carpeta importada validada y sus archivos mediante la transacción duradera existente. Los mundos hermanos se conservan. La reversión restaura tanto la selección como los archivos, o queda en espera para la recuperación. Los contenidos planos mantienen la selección actual; una colección completa debe incluirla. La Web local transfiere archivos ZIP; la importación directa de carpetas corresponde a la app Keldrin. La configuración guardada es de solo lectura en la Web local y en el Portal.

Estado listo de Unreal con marca de tiempo

UnrealReadyLogMarker requiere LogFile, Ready, CurrentRunOnly y exactamente un literal que coincida con todo el cuerpo restante tras un prefijo anclado de UTC y fotograma de Unreal. El lector usa la hora UTC del proceso verificada de forma independiente, omite los bytes previos al inicio que no han cambiado, permite un único reinicio inicial durante el arranque, rechaza reemplazos posteriores y mantiene la adopción del proceso en modo de solo anexado.

Abiotic Factor requiere tanto el marcador real de carga de Facility como el de inicio de sesión. Los recuentos de jugadores de INFO por sí solos no indican el estado listo. Se superaron los casos exactos de reproducción y rotación con el motor empaquetado, pero observar un inicio normal con Start (Iniciar) y la marca verde de Game Ready en una instalación real es algo aparte. Los fixtures de registro sintéticos no pueden sustituirlo.

Otros mecanismos del anfitrión

  • Nombres y puertos generados: RandomName usa por defecto Keldrin más cuatro dígitos y conserva los valores proporcionados, almacenados e importados. La configuración sugiere puertos libres en incrementos de cinco.
  • Bibliotecas revisadas: una acción explícita de Add (Añadir), Install (Instalar) o Start puede obtener un instalador oficial aprobado de Microsoft, verificar su firma, solicitar la aprobación normal de Windows y volver a detectar la biblioteca después. Si se cancela o falla, se mantiene una advertencia roja con nombre y un enlace oficial de recuperación. Los archivos del juego instalados y validados siguen disponibles para reintentar Start más tarde. Explorar la Galería solo muestra los requisitos; los adaptadores no pueden aportar URL ni comandos de instalación arbitrarios.
  • Guardados y actividad: advertencias del Centro de operaciones y de Actividad, metadatos de mundo BinaryString, recuentos de INFO separados de los nombres, pertenencia recursiva exacta **/* y destinos de importación por mundo con copia de seguridad y restauración de toda la colección.
  • Comportamiento acotado del anfitrión: los proveedores específicos de cada juego para guardado, primera ejecución y credenciales mantienen sus restricciones de identidad revisadas. Los enums del esquema no crean una API general de scripts, consola ni credenciales.

Distribuciones compuestas y evidencias de consultas

Distribution.HttpsZip.RawFiles declara opcionalmente entre 1 y 8 objetos opacos fijados, con URL, destino, longitud exacta y SHA-256, junto al ZIP fijado. Siguen aplicándose los límites agregados de transferencia, expansión, número de archivos, tiempo de espera y limpieza. Los objetos se integran en una única generación de instalación propia y en una sola transacción. Se siguen exigiendo DNS públicos y ninguna redirección; no existe autoridad para descargas ni scripts arbitrarios.

Un booleano obligatorio puede declarar RequiresExplicitAcceptance: true con el valor literal predeterminado false. Tanto la configuración como la materialización del perfil requieren la elección explícita del operador. Una vista previa, la instalación de un paquete o la prueba aislada de otra persona no constituyen consentimiento del EULA. El inicio puede usar la raíz Data privada exacta del perfil o un descendiente confinado; su ejecutable sigue perteneciendo a la raíz de instalación firmada.

GameSpy4/GameSpy4Responding usa evidencias acotadas de consultas por loopback, comprobaciones exactas de sesión, desafío y par, y delimitación completa. El recuento y los nombres completos y una captura independiente y segura de WorldName comparten la misma respuesta. Las respuestas parciales y los tiempos de espera agotados significan «no disponible», nunca se asume cero. Las evidencias de consultas locales son independientes de la accesibilidad externa o de la jugabilidad.

Los enlaces oficiales canónicos de presentación por HTTPS complementan los enlaces de Steam. La revisión del editor establece la identidad del sitio. Un nombre de carpeta inicial generado puede combinarse con la importación de directorios seleccionados, pero los directorios importados existentes siguen requiriendo pertenencia exacta y una transacción atómica de selección y archivos. Para catálogos privados, el asistente de preparación requiere un BaseCatalogPath público realmente firmado y verificado; un catálogo sin firmar no es una alternativa válida.

Referencia de Minecraft Java

El paquete firmado de Minecraft Java 1.0.1 no tiene versión máxima de Keldrin. Fija el servidor oficial 26.3 de Mojang y Azul Java 25 desde sus orígenes HTTPS oficiales. Ni el JAR ni el entorno de ejecución se incluyen en el SDK. La autenticación de cuentas en línea está activada; Use whitelist (Usar lista blanca) está activado por defecto y es editable. Minecraft no tiene función de contraseña de servidor, por lo que no existe una opción de contraseña inventada.

El propio latest.log del juego sigue siendo legible mientras se ejecuta y durante la rotación del proveedor. No hay un controlador de guardado por consola stdin/stdout. Las evidencias de consultas son locales; solo el TCP del juego es el requisito externo público. El ejemplo añade 17 casos de Setup del código fuente. Sus comprobantes aislados no establecen una entrada real de jugadores, una lista de jugadores con nombres distinta de cero, jugabilidad externa, la supervivencia a la salida o actualización del Servicio principal, la garantía de guardado final ni la certificación completa de 22 comprobaciones.

Entradas de referencia actuales

Ejemplo incluidoVersión del adaptadorCasos de Setup del código fuente
Terraria1.0.28 · secuencia 2912
Abiotic Factor1.0.13 · secuencia 1414 más 17 límite
Enshrouded1.1.3 · secuencia 1114
Política de detención de Enshrouded1.1.4 · secuencia 12 · sin firmarLint y forma canónica
Icarus1.1.10 · secuencia 122
Minecraft Java1.0.1 · secuencia 317

Estas referencias no declaran un límite superior de versión del anfitrión, y todas funcionan en el anfitrión Keldrin 0.9.140. Los fixtures del código fuente se vinculan a los bytes de la carga útil sin firmar; los fixtures de archivos firmados se vinculan a bytes distintos. No intercambies sus resúmenes.

Los recuentos y los nombres son evidencias distintas

Abiotic Factor y Enshrouded no tienen una lista de jugadores ni una actividad con nombres verificadas. La lista de jugadores con juego cruzado de Valheim sigue siendo limitada. StarRupture no ofrece garantías de jugadores ni de ramas más allá de su adaptador actual. El tratamiento de AmbiguousLinePrefixes en Terraria sigue siendo conservador: un chat ambiguo con forma de evento hace que la actividad afectada sea desconocida, en lugar de inventar un jugador o un cero fiable. Estas limitaciones son independientes de una reproducción de Setup correcta.

Validación y compatibilidad

Usa el SDK 0.9.140 con --host-version 0.9.140 en los comandos que lo admitan, y establece la versión mínima de Keldrin de tu paquete en 0.9.140. El esquema estructural no es una validación semántica completa. Después de cambiar bytes, es necesario volver a vincular los fixtures y las evidencias del código fuente. El README del paquete (en inglés) contiene las instrucciones actuales. Los mecanismos nuevos requieren una revisión del anfitrión, no un selector de proveedor copiado.

Referencia de comandos ↗ · Evidencias y límites de publicación ↗

¿Encontraste un problema en la documentación? Cuéntanoslo en Comentarios (en inglés). No incluyas credenciales ni datos privados de juegos.

Interfaz real de la Web local de Keldrin · datos de demostración sintéticos