GameZoo Forums

Live free, frag hard.

You are not logged in.

#1 02/05/2013 15:08:49

/dev/azmo
Administrator

K.G.B. v2

Ciao, vi comunico che l'ottimo kl4us sta lavorando (senza sosta) alla realizzazione della versione 2 dell'omonimo game bot.
Il KGBv2, sempre scritto in python, si differenzia dall'attuale versione per le seguenti caratteristiche:

1. Installazione/aggiornamento rapidi tramite 'git': il bot si installa con un banale 'git clone' (l'aggiornamento avviene tramite un 'git pull') e la configurazione di base del bot (come ora) avviene tramite personalizzazione dello script di esecuzione.

2. Gestione centralizzata via web: tutto quanto c'è di configurabile, sia lato amministratori GZ che dal punto di vista dei vari clan leader, viene gestito in un portale web centralizzato dove tramite una userid/password comunicata ai leader dei vari clan questi ultimi potranno:
  - accedere a tutte le informazioni registrate dal bot (player, alias, ban, ecc.)
  - modificare o aggiungere informazioni nelle tabelle del bot (es. bannare un player, cancellare un alias, fare admin/friend un player, aggiungere/modificare/rimuovere spam messages, timeout ecc.)
  - gestione dei comandi (es: escludere il comando !!moon su un server 'jump' o il comando !!tdj su un server 'non jump' ecc.)

3. Il bot è già agatha-ready in quanto memorizza tutte le informazioni necessarie all'eventuale futura implementazione di tale sistema (es: salva IP, cg_rgb, weapmode ecc.)

4. Il bot non usa più alcun database locale ma comunica con il sito centralizzato tramite delle "JSON restful API" e tramite una user ed una "API key" che verranno fornite da noi all'atto dell'installazione del bot.

A breve aggiorneremo la documentazione del bot che trovate sul sito GitHub: https://github.com/kl4us/kgb/wiki
Il bot è in fase di sperimentazione sul nostro server UrT 4.1 di test war.rkf-clan.org:31282 ed in pre-produzione sul nostro server TDM Bots 4.2 su calculon.gamezoo.it:27964.

In attesa della documentazione aggiornata, una volta collegati al server UrT di cui sopra e previo esservi fatti admin liv.100 tramite pannello web, potrete usare il comando !!help (abbreviato !!h) per visualizzare la lista di tutti i comandi/abbreviazioni disponibili. Attenzione: il comando !!help visualizza solo i comandi ai quali avete accesso, quindi un liv.20 non vedrà e non potrà utilizzare tutti i comandi ma solo quelli dal liv.20 in giù.

Per chi volesse sperimentare il bot abbiamo un sito di amministrazione di test al quale potete collegarvi per cominciare a familiarizzare con il sistema di gestione via web.
L'indirizzo del sito è http://kgb-test.rkf-clan.org/, utenze e password le potete richiedere a kl4us o al sottoscritto.

Una volta collegati al server potrete visualizzare i player, fare admin, (temp/perm)bannare player, aggiungere/rimuovere spam message, escludere comandi ecc. ecc.

Se qualcuno fosse interessato a collaborare allo sviluppo del bot, il codice è disponibile su GitHub all'indirizzo https://github.com/kl4us/kgb, potete fare un vostro branch o collaborare al 'master' di kl4us.


I hate everyone, equally.

Offline

#2 03/05/2013 11:20:19

seven
Administrator

Re: K.G.B. v2

Stupenderrimo!


Punirne cento per educarne uno.

Offline

#3 03/05/2013 12:50:56

/dev/azmo
Administrator

Re: K.G.B. v2

/dev/azmo wrote:

A breve aggiorneremo la documentazione del bot che trovate sul sito GitHub: https://github.com/kl4us/kgb/wiki

Come detto sopra, abbiamo inserito la descrizione di tutti i comandi disponibili e i relativi livelli di permission.
A breve finalizzeremo la suddetta documentazione indicando le modalità con le quali i clan leader o gli amministratori GZ potranno accedere al pannello web di amministrazione centralizzato.

Stay tuned for more happy days! big_smile cool


I hate everyone, equally.

Offline

#4 13/05/2013 17:05:20

/dev/azmo
Administrator

Re: K.G.B. v2

Kl4us sta lavorando come un mulo alla realizzazione del sito per l'amministrazione del KGB la cui versione pseudo-definitiva, al netto di eventuali leggere modifiche a seguito dei vostri numerosi commenti, la potete trovare a questo indirizzo: http://kgb-test.rkf-clan.org/

Il tema grafico scelto è compatibile con lo "standard" grigio-arancione di Gamezoo.

Attendiamo quindi i vostri commenti o suggerimenti e, perchè no, le vostre critiche (costruttive).


I hate everyone, equally.

Offline

#5 15/05/2013 07:59:50

seven
Administrator

Re: K.G.B. v2

Superfigherrimo il sito!!! Il logo KGB poi è di rara bellezza!

L'unico piccolo appunto è il link alla API... mi fa scaricare un file "default" che vedo essere json, ma non c'ho capito 'na mazza tongue pensavo che fosse la documentazione!


Punirne cento per educarne uno.

Offline

#6 15/05/2013 08:16:01

kl4us
GZ Developer

Re: K.G.B. v2

seven wrote:

L'unico piccolo appunto è il link alla API... mi fa scaricare un file "default" che vedo essere json, ma non c'ho capito 'na mazza tongue pensavo che fosse la documentazione!

Ciao seven,
Prova ad usare Chrome con l'estensione JSONView.

E' il link alle RESTful API... la documentazione riguardante questa parte deve ancora arrivare. Se provi a guardare l'output JSON puoi vedere gli oggetti (tabelle) che sono esposti tramite API. Ipoteticamente chiunque potrebbe crearsi un BOT e puntare alle nostre API come database o fare un branch del KGBv2 pubblicato su github.com. Presto arriverà anche la documentazione relativa a questa parte. Una volta fatta la documentazione il link posso anche farlo sparire.

Stay tuned!

Ciao

Last edited by kl4us (15/05/2013 08:19:22)


if you think test first is expensive try debug later lol

Offline

#7 15/05/2013 10:21:11

kl4us
GZ Developer

Re: K.G.B. v2

seven wrote:

Superfigherrimo il sito!!! Il logo KGB poi è di rara bellezza!

Dimenticavo... il logo è opera del mio maestro nonchè mentore: il Nobile e Potente Azmo
Inchino.gif


if you think test first is expensive try debug later lol

Offline

#8 15/05/2013 17:17:52

/dev/azmo
Administrator

Re: K.G.B. v2

Aggiornato il logo con una versione rivista e corretta, e soprattutto generata con un vettoriale e non da un JPG!
PS: Kl4us, rimetti in bocca la lingua e torna a faticare... che a me ste sbarleccate di posteriore non piacciono!! Tzè... hmm


I hate everyone, equally.

Offline

#9 22/05/2013 23:34:37

seven
Administrator

Re: K.G.B. v2

Abbiamo problemi, e ho ammazzato il bot SD da screen su calculon...

Però volevo capire un po' e ho guardato il main.py... Premetto che tutta la mia esperienza di programmazione è su C embedded, non so assolutamente nulla di python!

Però se non ho capito malissimo nel main c'è un while(true) che continua a leggere il file di log. Se non c'è nulla da fare dorme, fa un altro ciclo e così via sin quando non trova qualcosa da fare...

Non so se sia l'approccio migliore: ultimamente vanno tutti a pesce sulla programmazione event-based. In questo caso bisognerebbe intraprendere un'azione soltanto se il file cambia (e quindi avere un observer tipo questo http://pythonhosted.org/watchdog/index.html ).

Che ne dite, è una boiata?

Già che ci sono, segnalo che nello screen vedevo le paroline magiche "stack trace"... lascio agli esperti py l'indagine!


Punirne cento per educarne uno.

Offline

#10 23/05/2013 19:20:15

kl4us
GZ Developer

Re: K.G.B. v2

Ciao seven,
ben vengano consigli su come migliorare il bot.

Riguardo l'aspetto di cui sopra come ti dicevo su irc, e soprattutto per chi ci legge e aspetta una risposta, la lettura del log non è basata su event-based ma avviene già nello questo modo. Il bot quando parte legge la dimensione del file di log e poi ogni secondo, e questo il significato del while, guarda se la dimensione è cambiata. Se cambiata legge il nuovo pezzetto e rileggendo dopo la dimensione del file, altrimenti non fa niente. Ovviamente il file viene aperto in sola lettura.
In ogni caso gli dò un'occhio al link che hai girato, magari si può fare qualcosa di migliore.

Nello screen probabilmente vedevi un errore del bot sulla comunicazione via socket xchè quando c'è lag anche il bot non riesce a dialogare con il server. Il run_bot.sh lanciato dallo screen rilancia il bot dopo 3 secondi.


if you think test first is expensive try debug later lol

Offline

#11 23/05/2013 20:38:14

seven
Administrator

Re: K.G.B. v2

Starting Klaus BOT in 3 seconds...

    /\___/\
    \ -.- /
    `-.^.-'
      /"\

Traceback (most recent call last):
  File "/var/games/urbanterror41/KlausBOT/main.py", line 115, in <module>
    main = Main(sys.argv[1:])
  File "/var/games/urbanterror41/KlausBOT/main.py", line 55, in __init__
    quake3.putMessage(BOT_WELCOME_MESSAGE)
  File "/var/games/urbanterror41/KlausBOT/command.py", line 67, in putMessage
    a.rcon_command('say "%s%s%s"' % (BOT_PREFIX, BOT_MESSAGES_COLOR_PREFIX, data))
  File "/var/games/urbanterror41/KlausBOT/pyquake3.py", line 467, in rcon_command   
    status, data = self.connection.command(command)
  File "/var/games/urbanterror41/KlausBOT/pyquake3.py", line 145, in command
    raise ConnectionError("No response after %d attempts." % self.retries)
pyquake3.ConnectionError: No response after 5 attempts.

Punirne cento per educarne uno.

Offline

#12 25/05/2013 23:38:35

/dev/azmo
Administrator

Re: K.G.B. v2

Mi imbuco per dire la mia: due o tre sere fa, esasperato dalle laggate, ho stoppato tutti i bot e i watchdog su calculon lasciando girare solo i server UrT nudi e crudi. Bene, durante i minuti successivi ho comunque beccato una laggata da 4/5 secondi uguale e precisa a quelle che lamentavamo prima del suddetto test. Stasera poi ho notato che la sessione di screen "gameservers" non era più accessibile. Allora ho deciso, visto che i server al momento erano vuoti, di chiudere tutti i server, bot e watchdog e di rilanciare tutto daccapo... con un'unica piccola differenza, ho bindato i vari server 4.2 su un singolo core (uno ciascuno) usando taskset.

La situazione attuale vede 3 sessioni di screen così composte:

Sessione "7353.game servers": qui girano le istanze dei server UrT 4.1 e 4.2
  *  RKF|Jump Server 4.1.1
  0  RKF|TDM Bots Server 4.2
  1  SD|Server 4.2
  2  NIW|Server 4.2
  3  RKF|PureCTF 4.2 Server
  (Il numero accanto al server indica il core sul quale è stato bindato (il server Jump 4.1.1 non soffre dei problemi di lag quindi non è stato bindato))

Sessione "7359.bots": la sessione di screen che contiene i vari KGB v1 e v2
  RKF|Jump Server 4.1.1 [KGBv2]
  RKF|TDM Bots Server 4.2 [KGBv2]
  SD|Server 4.2 [KGBv2]
  NIW|Server 4.2 [KGBv1]

Sessione "7508.watchdogs": qui girano i watchdog dei server RKF Jump e Bots
  RKF|TDM Bots Server 4.2 [watchdog]
  RKF|Jump Server 4.1.1  [watchdog]


Vediamo se il fatto di bindare i server 4.2 su singoli core serve a qualcosa o no.
C'è un thread su urbanterror.info risalente al 13/12/2012 che pare faccia al caso nostro, erano ancora sulla 4.2.008 ma sembra proprio quello che capita a noi...

Attendo i vostri commenti.


I hate everyone, equally.

Offline

#13 25/05/2013 23:52:17

/dev/azmo
Administrator

Re: K.G.B. v2

Come non detto.. lagga lo stesso, con bot o senza... sad


I hate everyone, equally.

Offline

#14 30/05/2013 11:30:00

/dev/azmo
Administrator

Re: K.G.B. v2

Come anticipato via mail all'ottimo 7, ho fatto un altro paio di modifiche al server perchè il fatto che il lag sia >>> sempre <<< di 5 secondi (e spicci) mi fa pensare che sia qualcosa legato a qualche timeout...

Ecco le modifiche che ho apportato:

1. Incrementati i valori rmem_max e wmem_max (come da documento "UDP su Calculon" nel google drive, sez. "Server management"). Il valori erano a 131072... Per ora non ho modificato nulla nel sysctl.conf ma ho solo eseguito gli echo indicati nel suddetto doc.

2. Inserito il DNS pubblico di Google (8.8.8.8) come primo nameserver in /etc/resolv.conf (ho lasciato gli altri due in coda)... ricordo che kl4us lamentava il fatto che non si riusciva a risolvere alcuni nomi (tipo github.com) usando i DNS indicati nel vecchio resolv.conf, sai mai che una mancata risoluzione del nome (auth system che fa query?) fosse la causa del problema? Sulla 4.1.1 non ci sono mai stati lag di alcun genere.

Esito dei test: io e kl4us abbiamo provato a collegarci al ns server bots e fare qualche prova con *tutti* i KGB (v1 e v2) running e non abbiamo avuto lag (per il momento).
Teniamo d'occhio la situazione e incrociamo le dita.


I hate everyone, equally.

Offline

#15 30/05/2013 12:34:09

kl4us
GZ Developer

Re: K.G.B. v2

Cmq, il DNS ha sicuro qualche problema. Se provate a fare un

dig @194.116.122.2 github.com

a volte risponde a volte no.


if you think test first is expensive try debug later lol

Offline

#16 30/05/2013 16:29:07

/dev/azmo
Administrator

Re: K.G.B. v2

Still no lags ... cool big_smile


I hate everyone, equally.

Offline

#17 30/05/2013 16:37:42

kl4us
GZ Developer

Re: K.G.B. v2

Altra news: mentre guardavo lo screen del server RKF-BOTS ho notato questa riga:

auth: sending players list

quindi (forse) come ipotizzavamo potrebbe essere il sistema di auth che faceva laggare il server a causa dei malfunzionamenti del DNS.


if you think test first is expensive try debug later lol

Offline

#18 30/05/2013 20:33:58

kl4us
GZ Developer

Re: K.G.B. v2

Confermo...chiama auth ogni volta che manda hearbeat a master servers:

auth: sending players list
Sending heartbeat to master.urbanterror.info
Sending heartbeat to master2.urbanterror.info
Sending heartbeat to master2.urbanterror.info

Quel nabbo di azmo è riuscito a levare anche master.quake3arena.com impostando master2.urbanterror.info, si vede che ne vuole per forza 3 e quanto il terzo è vuoto lo imposta al default master.quake3arena.com.

Per Info string length exceeded se aprite il file server_example.cfg in testa trovate questo commento:

//Try to keep cvar-values as short as possible. Otherwise you might get "info string length exceeded" errors on your server

Bisognerebbe controllare tutte le cvar e accorciarle se troppo lunghe.


if you think test first is expensive try debug later lol

Offline

#19 31/05/2013 07:40:29

seven
Administrator

Re: K.G.B. v2

Per l'Info string length exceeded: non credo sia (solo) un problema di *.cfg, se così fosse comparirebbe soltanto quando vengono eseguite. Invece nel log l'"info" si trova un po' dappertutto...

----

Possibile ottimizzazione: mettere il log su ram?


Punirne cento per educarne uno.

Offline

#20 31/05/2013 09:45:57

/dev/azmo
Administrator

Re: K.G.B. v2

seven wrote:

Per l'Info string length exceeded: non credo sia (solo) un problema di *.cfg, se così fosse comparirebbe soltanto quando vengono eseguite. Invece nel log l'"info" si trova un po' dappertutto...

Sono quasi sicuro che la CVAR incriminata sia la sv_hostname... a noi piace buttarci dentro un botto di roba tra testo e codici colore... hmm

seven wrote:

Possibile ottimizzazione: mettere il log su ram?

Possibile, ma non credo che l'I/O su disco dia problemi onestamente...
Ieri sera mi sono divertito un po' a massacrare i nostri bot sull'omonimo server e non ha mai, ripeto MAI, dato una laggata che fosse una.


I hate everyone, equally.

Offline

#21 31/05/2013 10:47:01

kl4us
GZ Developer

Re: K.G.B. v2

nize one


if you think test first is expensive try debug later lol

Offline

#22 12/06/2013 22:47:02

seven
Administrator

Re: K.G.B. v2

Gente, Steve mi ha chiesto di tenere disattivato il bot sul server S&D, quindi ho killato la finestra screen corrispondente. Per favore non restartatela...


Punirne cento per educarne uno.

Offline

#23 14/06/2013 10:43:03

/dev/azmo
Administrator

Re: K.G.B. v2

Ok, nessun problema.
Solo una curiosità: lo stop è dovuto ad eventuali malfunzionamenti? Se così fosse fatecelo comunque sapere così fixiamo gli eventuali bug.


I hate everyone, equally.

Offline

#24 16/06/2013 19:19:11

seven
Administrator

Re: K.G.B. v2

No: lo stop è dovuto a steve che è arciconvinto che l'unico bot che non causi lag sia quello degli ~SG~!

Insomma, sempre sul file di log si ricade...


Punirne cento per educarne uno.

Offline

Board footer

Powered by FluxBB