Ideas para el nuevo bot de mafia

DarkRaptor

Como ya he dicho aquí vamos a tener bot nuevo y aprovecho para escuchar propuestas locas, ahora que tenemos lienzo en blanco. Me reservo el derecho de pasármelas por el forro, por supuesto, pero ahora que no estaremos limitados por la estructura original, se pueden hacer más cosas que antes no.

@Dase como se que te gustan otros juegos de deducción social y ya me has preguntado alguna vez por soporte del bot, te escucho. Haré lo que pueda.

Un saludo y os iré contando

1
Sesshoumaru1

Estoy abierto a co-programarlo si te interesa de cara a añadirle algunas cosas que muchas veces hemos comentado pero nunca han acabado por salir, y porque mafiamaker aunque le tengo cariño y me gusta, también me gustaría hacerle una parte 2 más pulida con lo que aprendí haciendo la versión que tengo en la mano a día de hoy.

No sé la idea que tienes con el bot o la ambición para con el mismo, pero quizás pasarlo de bot de votaciones a bot completo que gestione las partidas podría ser una idea a barajar.

Idea "loca": Añadirle integración con discord, ya que a día de hoy no es complicado hacerlo y con las opciones que ofrece la API, podrían hacerse cosas muy visuales ahorrando trabajo. Que mueva a la gente de canales, gestione los permisos, y permita enviar las acciones nocturnas facilitaría mucho el trabajo de los gm's que pasarían más a ser "gestores y jueces" de las partidas y no tendrían que hacer tanto papeleo, además de poder evitar el posible error humano del mismo.

Para más cosas te escribo por discord.

1 respuesta
Soraghatsu

Que el bot pudiera cerrar/abrir hilos creo que daría libertad a los mods del subforo de no tener que entrar a X hora para cerrarlos y tal

2 respuestas
DarkRaptor
#2Sesshoumaru1:

No sé la idea que tienes con el bot o la ambición para con el mismo, pero quizás pasarlo de bot de votaciones a bot completo que gestione las partidas podría ser una idea a barajar.

Estoy abierto a todo, lo único es la idiosincrasia del foro a la hora de resolver muchas acciones. Como ya visteis, la última versión del bot ya era capaz de hacer flips, tirutus y toda la pesca, pero siempre limitado a acciones unívocas que no podían ser resueltas de otra forma. Creo que este tema debería hablarse con la comunidad para que no acabe como una feature desactivada el 100% de las veces.

Una de las ambiciones es soportar varias votaciones propiamente dichas. La idea del alcalde que la gente vota la aborrezco, pero me gustó la dinámica del calabozo, la pira y tal y voy a tratar de dejar todo eso implementado. Por lo demás, se plantea mantener toda la API pública original de cara a los jugadores: historiales, recuentos, votos y tal porque es tontería cambiar la costumbre de medio foro y creo que estaban bien integradas.

#2Sesshoumaru1:

Que mueva a la gente de canales, gestione los permisos, y permita enviar las acciones nocturnas facilitaría mucho el trabajo de los gm's que pasarían más a ser "gestores y jueces" de las partidas y no tendrían que hacer tanto papeleo, además de poder evitar el posible error humano del mismo.

Mismo punto. Es que mucho me temo que la gente quiere resolver las acciones nocturnas ella misma, pero es algo que podemos hacer tranquilamente Nunca he mirado la API de discord pero si veo por ejemplo la creación automática de canales, servidores para specs y mafia y toda la pesca.

#3
El problema de eso es el de siempre. Que el equipo de mediavida tiene un total de 0 desarrolladores y tratan el código como una especie de Leviatán así que no vamos a poder hacer eso por más que me gustaría.

1
Sesshoumaru1

#3 Eso solo se podía hacer con mafiamaker y no porque hiciese algo especial, si no porque yo utilizaba mis credenciales de moderador para abrir/cerrar hilos. Este bot tendría el mismo problema al final del día. Sin una cuenta de moderador, no puedes hacer esas cosas y ahí está limitado.

1 1 respuesta
Soraghatsu

#5 a eso me refería podriamos comentarlo a kaos a ver si nos hacen mod a la cuenta del bot y ya sería implementarlo

2 respuestas
raul_ct

#6 y @moonkai no tiene potestad de poner/quitar admins?

1 respuesta
Sesshoumaru1

#6 El tema de eso no es que se pueda hacer o no, seguro que si. El problema son todos los temas de seguridad que ello conlleva. Le das unas credenciales de moderador a alguien que no es moderador? Y qué pasa si decide usar esas credenciales para entrar y ver el contenido del foro interno? Como garantizas que no se les da nunca mal uso? Por esa y muchas otras razones no le puedes dar credenciales de moderador a alguien que en resumen, no lo es. La única forma sería tener un usuario diferente que pudiese abrir y cerrar hilos solo en una sección del foro específica, y al final del día y hasta donde yo sé, es un desarrollo nuevo.

1 3 respuestas
MoonKai

#7 nop, pero puedo decir que hagan mod a la cuenta del bot.
#8 los permisos del foro interno van aparte de la pestaña de mod, crear noticias y redacción igual

1 2 respuestas
Nherzogs

#8 los permisos van aparte, por eso hay ex mods en el interno

Edit: llegó tarde xD, moonkai ya lo puso

Dase

ya ni me acuerdo que te pedia para el bot xddd tengo que revisar los MPs

Sesshoumaru1

#9 Sigue significando que el mod puede acceder a la cola de reportes del subforo en cuestión, al modmail (En el que pueden haber mensajes sensibles) y en general no deja de ser un "Nos fiamos de que ninguno de los developers hace algo que no debe con la cuenta". Pese a que soy el primero que le gustaría un bot que pueda gestionar las partidas al 100% y siempre he querido ir en esa dirección, creo que no es la solución correcta por el peligro que eso conlleva.

Estamos hablando de que alguien que obtenga acceso a las credenciales del bot podría cascarle infinitos aggros (A base de punishes) a toda persona que haya posteado en este subforo, borrar todos los mensajes que contiene, mandar a flames todos los hilos creados, filtrar cualquier conversación en el modmail que pueda haber sido privada y un largo etc. Si, son cosas que luego se pueden arreglar en su mayoría (No sé si los mensajes borrados se puede), pero el estropicio no sería pequeño desde luego. Las filtraciones ya no las desfiltra nadie por desgracia.

2
Soraghatsu

#8 ya, eso sería lo óptimo que el propio user pudiera abrir y cerrar hilos, asi no se mezclan funcionalidades, pero claro eso implicaría que se implementara por parte del staff de mediavida esto y me da a mi que va a ser que no xd

De todas formas Sess gracias por la aportación, yo personalmente desconocía todas las implicaciones que tenía ser mod, pero quería sugerirlo por si era buena idea o no, muchas gracias

DarkRaptor

Lo que es flipante es que meses después de tener el código fuente no se pueda siquiera implementar que el GM pueda cerrar sus propios hilos en mafia pero bueno, a saber el cacao que tienen.

Otra cosa que me ha querido sugerir @Sesshoumaru1 es automatizar toda la resolución de acciones pero como se que levanta bastantes ampollas os recomiendo que os expreseis. Lo digo para no trabajar en balde.

1 respuesta
Soraghatsu

#9 no Moon es igual tiene razón Sess en todas las implicaciones que tiene yo de hecho ni había caído en lo de los reportes ni el modmail, lo que necesitariamos es que el op pueda cerrar hilos a voluntad y que el hilo lo cree el bot, aunque sea con un punto de contenido y que llegué el gm y en el segundo post postee todo sobre la partida o algo similar

Soraghatsu

#14 yo sobre esto tengo mi propia forma de resolver acciones que no es mejor ni peor pero diferente, aunque pienso que para partidas de categoría estándar estaría bien

1 respuesta
CrS-

Quizás lo suyo sería que DarkRaptor pasara a ser Moderador del subforo teniendo en cuenta que probablemente sea el mayor activo que tiene dicho foro (actualmente). Y de esa forma tendrías a 2 moderadores (Sess y Dark) que son los que se han estado currando este tipo de cosas de cara a un mejor funcionamiento de las partidas. Y si además como parece, pueden trabajar conjuntamente en un nuevo bot que tenga funcionalidades de Jiub y MM, pues mejor que mejor. Y lo suyo es que los usuarios pudieramos poner nuestro granito de arena en forma de dinero para que se pudiera alojar en un sitio óptimo.

Sería tener una cuenta extra con los permisos justos para poder operar en el subforo y que solo tuvieran acceso los moderadores. Incluso la de Jiub podría ser esa cuenta con poderes extra y que ambos tuvierais acceso.

Ale, ya lo he dicho.

4
Sesshoumaru1

#16 A qué te refieres con lo de resolverlas diferente? Estas cosas precisamente interesan saberlas de cara a estos temas.

Imagínate que tienes que resolver una noche en una partida tuya de lo que sea, cuales son los pasos que sigues para resolverla?

1 respuesta
Soraghatsu

#18 por ejemplo si quiero meter un tio que mate a heridos, pero quiero que actue antes que un curandero, o por ejemplo tu una vez al menos recuerdo que un rol investigador no recibia noti de su hab si moría

Yo por ejemplo a la hora de desempatar habilidades que puedan clashear por ejemplo 2 bloqueadores bloqueandose desempato por bando, independiente>mafia>pueblo

Este caso podría suceder por ejemplo en una isla donde un indepe coge un item de bloquear y otro coge la típica porra de la isla que hiere+bloquea

1 respuesta
Sesshoumaru1

#19 Vale, entiendo lo que dices. Sin entrar en "Estas habs nunca deberían de ir antes que otras" ni cosas por el estilo porque eso es otro debate que no importa en realidad, no es para nada descabellado que el bot pueda configurar el orden de resolución de acciones.

En resumen, puedes poner una lista del orden de habilidades a la hora de resolver, y el bot va haciendo en ese mismo orden que tu configuras. Debería de ser algo que cualquier gm pueda toquetear, y que por defecto ya venga con un orden que sea el standard para resolver acciones, pero permita cambiarlo si consideras que quieres cambiar las mecánicas habituales por otras por la razón que sea en la partida.

Eso te sonaría mejor para poderlo usar?

También lo digo por adelantado, yo estoy aquí preguntando cosas porque la vena de programador me puede, pero esto es el proyecto de dark al final y si quiere que lo llevemos los dos yo encantado jajaja pero no quiero tampoco quitarle su barrio si nos entendemos

1 respuesta
Soraghatsu

oy a añadir algo mas a #19 normalmente me guio por una mezcla de esto:

Primero intento resolver las acciones de forma que cuando un rol manipulador manipula a otro, esta resuelve primero:

Por ejemplo si desviador desvia a bloqueador contra si mismo y bloqueador bloquea a medico, (resuelvo el desvio y el bloqueo falla (porque no dejo bloquearse a si mismo, normalmente)

Si bloqueador bloquea a desviador y desviador desvia a medico contra si mismo (el medico fallaria porque tampoco suelo dejar que un medico se cure), resolveria el bloqueo primero, de forma que el desviador es bloqueado y el medico puede actuar libremente

En caso de conflicto vengo aqui:

https://wiki.mafiascum.net/index.php?title=Natural_Action_Resolution

Aunque también tengo reglas particulares como ultima forma de desempate como las que comento en #19

#19Soraghatsu:

Yo por ejemplo a la hora de desempatar habilidades que puedan clashear por ejemplo 2 bloqueadores bloqueandose desempato por bando, independiente>mafia>pueblo

Si 2 bloqueadores pueblo se intentaran bloquear, añado que ahi lo resuelvo por rng

1 respuesta
Soraghatsu

#20 Al final ten en cuenta que pueden haber bugs o situaciones complejas de resolver cuando metes muchos manipuladores en la partida (cosa que no se debería hacer pero igual a lo mejor ves en un game 2 bloqueadores un bus driver y un desviador xddd)

Al final por eso yo tengo varias herramientas que desempaten y entiendo que cada gm, tenga su kit propio, yo por eso al final, pienso que para partidas estandar donde las setups son las que son y no hay cabida a eso, sea fácil de programar, pero a mi personalmente no me causa problema resolver esto como lo hago

1 respuesta
Sesshoumaru1

#22 A ver, eso ya son otros temas:

El bot como todo, si se implementara algo así tendrá que tener casuísticas para situaciones concretas, véase cosas como que una acción posterior bloquee a una anterior, pero eso se puede gestionar y es viable de implementar.

Dudo muchísimo que el bot pueda lidiar con situaciones que nunca deberían de darse en la partida y sean irresolubles, a excepción de gritarle al gm que la ha liado. Esto ya no es porque no se pueda programar una solución, si no porque el gm tampoco puede ponerle una solución porque el caso de ejemplo que tu pones no la tiene. Si hacen un triángulo de habilidades, no tienes forma de solucionar el estropicio ni con un bot, ni con un gm porque no hay forma de resolver esa interacción.

Todos los otros casos no-imposibles debería de poder resolverlos de la forma que el gm prefiera y ahorrarle "el papeleo", pero bueno, esto era para entender un poco más tu punto de vista que ahora me queda claro. Thanks!

1 respuesta
Soraghatsu

#23 Nada hombre, es evidente que si se pueden resolver las cosas de forma automatica, es mejor que la intervencion humana, sobre todo porque cada gm puede verlo de forma diferente y que alguno la lie en una resolucion, entonces si tu pones un bot y el bot te lo gestiona y lo resuelve todo ok, pues claro eso es una mejora, pero tmbn es cierto que pueden darse de una forma no tan comun cosas como por ejemplo meter un bus driver, y un roleblocker

Y el bus se visita a si mismo y a pepito y el roleblocker, si visita al bus, yo hago que el roleblocker bloquee al bus pero si visita a pepito que pasa? alguno sería capaz de resolver esto de la siguiente forma: el bus actua y el bloque se desvia al bus que ya ha actuado? esas situaciones pueden ser complejas y con el bot lo puedes evitar

1
Dase

#21 Todo eso se arregla poniendo una regla simple, que yo siempre uso: "Todo rol de manipulacion es inmune a su propia habilidad"

Un bloqueador es inmune a bloqueo. Un desviador es inmune a desvio, y asi con todo.

El problema que tienes es que en tu ejemplo, y en el ejemplo del desvio/bloqueo de esa web, es que resuelven en orden inverso al de la golden rule que dicen seguir, por lo que yo, como jugador, tengo que ver que prioridad sigues, si la que te de la gana a ti, que es licito por ser el GM, o por la golden rule.

Que 2 roles iguales actuen antes o despues segun el bando es una de las mayores majaderias que he leido siempre y siempre voy a defenderlo. Ejemplo:

RB M actua en RB T
RB T actua en RB M

Es indefendible que el bloqueo de uno funcione y el otro no, que el T acabe bloqueado y el M no. Situacion facilmente resuelta poniendo inmunidad a bloqueos y haciendo que ambos reciban el mismo mensaje: "Te han intentado bloquear, pero no ha funcionado" y similares.

3 respuestas
Soraghatsu

#25 por eso digo que al final cada uno tiene su forma de resolver al final lo importante es que no se den bucles sin más, yo por ejemplo no notificó los fallos de habilidad, al final cada uno, tiene su forma de resolverlo, otro por ejemplo puede considerar que darle inmunidad a un bloqueador contra bloqueadores puede ser too much porque el bloqueo es imparable si tienes otro bloqueo es una cuestión de gustos y preferencias que por supuesto cada uno verá de forma diferente pero al final lo importante es que no hayan bucles imo

DarkRaptor
#25Dase:

El problema que tienes es que en tu ejemplo, y en el ejemplo del desvio/bloqueo de esa web, es que resuelven en orden inverso al de la golden rule que dicen seguir, por lo que yo, como jugador, tengo que ver que prioridad sigues, si la que te de la gana a ti, que es licito por ser el GM, o por la golden rule.

Un detalle, la golden rule solo decía que se resolvían primero las acciones que modificaban a otras antes que la acción modificada. Es decir, que primero se generan cadenas de acciones en función de quién modifica a quién y se resuelve desde el primer eslabón que queda libre. Realmente es un concepto técnico de un bot mega viejo que quedó en esa wiki.

La lista de prioridad es lo que usaban para resolver conflictos donde la cadena forma un bucle o un triángulo, como sería tu caso. Y como en el caso que indicas la prioridad es la misma puesto que es el mismo rol, pues se metía un tercer criterio de decisión que ya era absolutamente arbitrario como mafia > town, el primero que la mandó etc.

Dicho de otra forma: la excepción es lo de menos y paradójicamente lo más fácil de gestionar. Tan fácil sería hacer lo que tú dices y proseguir acto seguido resolviendo acciones que priorizar un bando.

1 respuesta
Nherzogs

#25 si hay dos bloqueadoes y se bloquean a si mismo es como no hubueran hecho nada entonces, que seria iwal a si se hubueran blokeado

PEro dos desviadores si se desvian mutuamente a otros users, que es mejor, que no hagan nada o ambos se desvien?

1 respuesta
Dase

#27 Es otro criterio estupido, dar artificialmente una prioridad segun quien sea el objetivo es igual que darlo por bando. Por ello todos los juegos de este tipo daban inmunidad. El Escort del ToS no podia ser bloqueado. El Transporter ni bloqueado ni desviado ni controlado. El Tavern Keeper del ToS2 tampoco podia ser bloqueado. No digamos en el Throne of Lies, donde cualquier rol de manipulacion era inmune a otros roles de manipulacion (salvo el bus driver de dicho juego, por alguna razon) Incluso en el Untrusted.

Asi te evitas paradojas ambiguas, es lo más facil de aplicar y de paso, lo mas justo, sin criterios arbitrarios de "es que lo mandó a las 22:01 y el otro a las 22:02" xd

#28 No es lo mismo, porque no es lo mismo que ambos sean bloqueados (o fallen ambos) a que uno sea bloqueado y el otro no porque el otro le ha bloqueado antes

Dos desviadores pasa lo mismo, por qué un desviador desvía antes que el otro?

De hecho ahi hay un mayor problema, porque tambien tienes que decidir a que parte de la habilidad de desvio afecta el propio desvio.

El [Desviador 1] hace "Desvio a A sobre B", pero si llega [Desviador 2] y hace "Desvio a 1 sobre F"... que pasa? La accion de 1 acaba siendo: F -> B o A -> F? La regla general que yo siempre sigo es siempre que afecta a la segunda parte de la habilidad y seria A -> F, pero algun otro GM puede pensar lo contrario.

Todo esto lo solucionas de manera sencilla, manipulador es inmune a manipulaciones de su misma prioridad. Ahi no importa quien targetea a quien, ni que parte afecta. Y todo el mundo vive en paz y armonía.

2 1 respuesta
Nherzogs

#29 Aham ya entendí

Yo decía tu y yo bloqueadores, yo te bloqueo y tu me bloqueas, al final el resultado es "casi el mismo", porque no afecta, solo en la notificación, pero claro, en realidad si que afecta porque si ambos se bloquean, en el caso que tu bloqueas a Dark y yo a tí ahí cambia mucho de si se bloquean o no afecta

y con los devios no hablemos xD