Gameplay testing

Ciao a tutti, mi chiedevo se qualcuno ha mai fatto qualcosa di simile in
Ruby:

Immaginate di lavorare ad un gioco di strategia (o similare), con il suo
bel client 3D, gia’ in commercio.

Immaginate di voler cambiare le caratteristiche di un arma (esempio:
shotgun) ma avete bisogno di verificare gli effetti sul gameplay prima
di pubblicare la modifica.

Ovviamente e’ possibile utilizzare beta testers per provare un po’ di
partite, ma sarebbe molto meglio avere un programma di test, che simula
N partite.

L’idea sarebbe quella di avere un programma command-line completamente
separato che SIMULA partite e ne verifica il risultato.

Visto che molti esempi di testing in Ruby partono dall’esempio del
bowling, mi chiedevo se qualcuno mi puo’ direzionare su della
documentazione per quanto riguarda questo topic.

Libri, Tutorial, librerie?

Mi piacerebbe sopratutto avere qualche info si concetti di base: quali
parametri conviene testare? Come si procede per simulare le partite? etc
etc.

Ciao

Davide

Ciao Davide,
non credo che il “testing” che intendi tu abbia molto a che vedere
con il testing che si intende solitamente quando si parla di testing in
ambito di programmazione.

Il testing che credo tu intenda è una sorta di simulazione automatica
che produca dei dati con l’obiettivo di poter valutare l’ effetto di una
modifica ad un sistema - è più una simulazione alla matlab, se l’hai mai
usato.

Il testing (come in Test Driven Development) è uno strumento che
utilizza uno sviluppatore per verificare, in automatico, la correttezza
del suo codice.

Se puoi fornire più dettagli relativamente al tuo progetto forse
troverai qualcuno qui in grado di indirizzarti verso un tool che possa
esserti d’ aiuto ma, così come l’hai spiegata, le informazioni che hai
fornito sono insufficienti. Puoi dirci di più?

Andrea

Da: [email protected]
A: “ruby-it” [email protected]
Cc:
Data: Tue, 28 Feb 2012 15:42:24 +0100
Oggetto: [ruby-it] gameplay testing

In realta’ e’ esattamente come tu hai detto (scusate gli errori di
definizione).

Cerco di capire se esiste in giro qualcosa del genere:

un modo “solido” per simulare come si modifica un “sistema” al variare
dei parametri.

Sarebbe figo se avesse una sintassi alla Cucumber (ancora mi scuso se
sto sbagliano le definizioni), so che si potrebbe fare in MatLab ma
speravo di trovare una specie di DSL in Ruby.

Un esempio(scritto al volo) potrebbe essere (tornando al nostro esempio
del shotgun)

Feature: weapons strength
In order to check if I mess up the gameplay
I want to check if I the squad with shotguns is too much strong

Scenario: 2 squads deathmatch
Given squad one have shotguns
And squad two have pistols
When I simulate 1000 games
Then the squad one should win 50% if games
And show me a report (con le statistiche)

Boh magari lo faccio con Cucumber forse mi sono risposto da solo :slight_smile:
(sono un self-vampiro)

Credete che valga la pena scriverci una libreria da distribuire in giro?

Ciao

Davide

On Feb 29, 2012, at 11:27 AM, Davide R. wrote:

Feature: weapons strength
In order to check if I mess up the gameplay
I want to check if I the squad with shotguns is too much strong

Scenario: 2 squads deathmatch
Given squad one have shotguns
And squad two have pistols
When I simulate 1000 games
Then the squad one should win 50% if games
And show me a report (con le statistiche)

Documentazione in polacco (ah, che nostalgia di Zope, a menarsela su ML
in russo per una query al DB), credo che quello che cerchi sia un
framework per la fuzzy logic. Non sono in alcun modo un esperto a
riguardo.

GitHub - karolmajta/rfuzzy: Fuzzy Logic with Ruby (che nonostante la documentazione
magari il codice e’ d’aiuto)

ngw

Mmh interessante, mi ero dimenticato della fuzzy logic. Mi sa che parto
da qui (anche se non so il polacco!)

Grazie!

In generale la vedo un’applicazione abbastanza verticale, anche perch
gli
indicatori di efficacia ed efficienza sei tu che li devi definire.

Da appassionato di videogames e sviluppatore part-time di giochi per
piattaforme mobili, devo dire che la cosa mi intriga non poco.

In teoria l’impostazione si baserebbe, proprio come per del normale
TDD/BDD, sul trovare dei “mock” appropriati per la situazione.
Personalmente ritengo che “purtroppo” tu non abbia a disposizione molto
altro che delle librerie primitive che ti consentano di costruire i tuoi
scenari.
Da giocatore di Call of Duty, ad esempio, uno scenario potrebbe simulare
lo
scontro a distanza ravvicinata girando un angolo, un altro il tiro a un
giocatore lontano in movimento trasversale, e cos via.
Io non credo che sia fattibile/plausibile avere dei bot che giochino
effettivamente la partita sul motore 3D a meno che non siano scenari
interamente controllati, senza alcuna AI coinvolta.

Di certo, sempre da giocatore, il bilanciamento di armi (o mosse in un
picchiaduro, o situazioni iniziali in uno strategico) estremamente
difficile e altrettanto importante, se in ditte come la Capcom riescono
comunque ancora a sbagliarlo di tanto in tanto.

Contatto un amico che lavora per PixelJunk per sentire se loro hanno un
approccio particolare.

Complimenti per l’idea!

On Wed, Feb 29, 2012 at 11:38 AM, Davide R.
<[email protected]

On Feb 29, 2012, at 12:20 PM, Luca P. wrote:

giocatore lontano in movimento trasversale, e cos via.
approccio particolare.

Complimenti per l’idea!

Apparentemente c’e’ una universita’ che fa corsi simili usando TORCS,
che se non sbaglio e’ un gioco di corse opensource. E usano, guardanpo’,
Ruby, Cucumber e fuzzy logic.

https://wiki.umn.edu/UmmCSci4506f09/BuildFuzzyRaceCarDriverForTORCS

ngw

DI fatto tools dal feedback immediato ci sono (vado OT)

come Unity3D per esempio. (http://unity3d.com/)

molto simile alle idee che ho visto nel video :slight_smile:

Ciao

Alla fine mi son buttato in questa direzione:

TORCS + Cucumber + Ruby + Fuzzy Logic

Ovviamente vampirizzando il corso di quelli dell’Universita’ del
Minnesota :slight_smile:

Il wiki con il corso: https://wiki.umn.edu/view/UmmCSci4506f09/WebHome

IL LIBRO DI TESTO del corso in questione e’ (non e’ facile da capire
nella pagina del corso)

Fuzzy Sets and Fuzzy Logic: Theory and Applications
by George J. Klir and Bo Yuan
Prentice Hall
ISBN:978-0131011717
Nel caso qualcun’altro si voglia cimentare con la Fuzzy Logic

Ciao

Questo discorso mi fa venire in mente la parte iniziale del talk di Bret
Victor:

https://vimeo.com/36579366

Nel contesto dello sviluppo di videogame un tool con feedback spazio
temporale immediato puo’ essere un ambiente di partenza per la
creazione di una suite di test.

Spero possa essere d’ispirazione per qualcuno :slight_smile:

2012/2/29 Nicholas W. [email protected]: