Saltar al contenido principal

Opciones del mundo

Algunas opciones son de presentación: velocidad del texto, animaciones de combate, marco de las ventanas. Un jugador que cambia eso cambia cómo se ve su propia pantalla, y nada más. Se quedan en el cliente, que es donde corresponden.

Tres opciones son reglas. Cambian lo que pasa en un combate. En un mundo online eso no puede vivir en el cliente, por la razón de siempre: un jugador que se pone la dificultad en Fácil desde su propia máquina está cambiando las reglas con las que juega el servidor.

Así que MCE las separa. La presentación queda local. Las reglas vienen del servidor.

Cuál es cuál​

Un censo de las dieciséis opciones de la pantalla las ordena en tres grupos:

GrupoCantidadDónde vive
Regla3Servidor, sembrada por quien opera el mundo
Presentación12Cliente, elección del propio jugador
Oculta en online1No se muestra

Las tres reglas son dificultad, nivel de los entrenadores y estilo de combate. La oculta es Guardado automático al teletransportarse, y está oculta en vez de mostrarse de sólo lectura porque en online el servidor es dueño de la persistencia: un interruptor de guardado automático describiría algo que ya no ocurre.

Cómo las usa el cliente​

El cliente trae los tres valores una vez, con mce_world_options_get, de camino al mundo.

La decisión de diseño importante es lo que no hace con ellos: no los escribe en la configuración del propio jugador. Esa fue la primera versión, y estaba mal. Esas configuraciones se guardan, así que un mundo con Fijo le habría sobrescrito su preferencia de Cambio —y se la habría llevado puesta a su partida sin conexión, donde ningún servidor manda nada.

Entonces, en vez de escribir, el motor pregunta. Cada lugar que consume una regla llama a su lector y obtiene el valor del mundo cuando hay mundo, o el del jugador cuando no lo hay. Las preferencias del jugador sobreviven intactas.

La pantalla de opciones dentro de una sesión online

El Estilo: Fijo de arriba en esa pantalla es el valor del mundo, no el de este jugador: puede tener Cambio guardado de su partida sin conexión, y ahí sigue, intacto, esperándolo. Todo lo que está debajo de las reglas es preferencia local común: idioma, volumen, velocidad de animación. El servidor no tiene opinión sobre eso y nunca la pide.

La pantalla de opciones está cableada para mostrar las tres de sólo lectura cuando las manda el mundo, así que un jugador puede ver en qué dificultad está sin poder cambiarla — el punto medio entre ocultarlas (no te podés enterar) y dejarlas editables (podés hacer trampa).

Verificado jugando

Medido el 29/08/2026 contra un servidor vivo sembrado en Hard/Set. El propio registro del juego, de camino al mundo:

[R-OPCIONES] el mundo dice: dificultad=Hard estilo=Set aLaCaja=False sembrado=True
[R-OPCIONES] el mundo manda: dificultad=Hard estilo=Set aLaCaja=False

Dos líneas, y la que importa es la segunda: el cliente trajo las reglas y les entregó la autoridad. Las dos mitades de la ida y vuelta dicen lo mismo.

Qué hace el servidor con ellas​

La dificultad mueve el nivel de los rivales entrenadores —y sólo de los entrenadores, igual que hace el núcleo sin conexión:

DificultadMultiplicador
Fácil0,8
Normal1,0
Difícil1,2

El resultado se recorta a 1–100. Se aplica en buildTrainerParty, que es el único lugar donde el servidor acuña un rival entrenador, así que no hay un segundo camino que pueda discrepar.

Cómo se siembran​

mce_world_options_seed es de servidor a servidor, y nada más. Rechaza cualquier llamada que traiga una sesión de usuario, y necesita el http_key del entorno de ejecución de Nakama — la misma credencial y las mismas reglas que la siembra de especies, lo que significa que nunca se commitea ni viaja en una compilación.

La pestaña Online del Hub es el camino de cara al comprador: ahí se ponen los tres valores y los siembra por vos, leyendo la clave de fuera del repositorio.

Rechaza lo que no modela, y lo dice por su nombre​

Si se manda una dificultad o un estilo que el motor no conoce, la siembra se rechaza, y el error dice qué valor estaba mal.

La alternativa tentadora era aceptarlo y caer en Normal. Es peor de lo que suena. Quien opera se iría creyendo que configuró un mundo, el mundo sería en silencio otra cosa, y nada lo diría nunca. Una regla que el servidor no puede modelar se rechaza, nunca se resuelve en neutro.

No sembrado es un estado aparte​

El almacenamiento arranca vacío, y vacío significa no sembrado — que a propósito no es lo mismo que Normal, aunque hoy los dos den un multiplicador de 1,0.

Hoy son el mismo número. Lo que cambia es qué pasa el día que Normal deje de ser 1,0: uno de esos mundos tendría que cambiar y el otro no. Un servidor que juntara los dos habría tirado la información que hace falta para distinguirlos.

Permisos​

El registro world_options se guarda con permissionRead: 2 y permissionWrite: 0.

Todos pueden leer las reglas con las que juegan. Nadie puede escribirlas desde un cliente. No hay verbo de subida: mce_world_options_get sólo baja, y esa ausencia es el diseño, no un olvido.