|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
[SPIKE] Parser per un semplice linguaggio
Mi serve uno spike per esplorare diverse soluzioni del seguente problema:
Scrivere un parser per un semplice linguaggio che accetti comandi del tipo: play sound XXX play animation YYY wait 10 seconds draw XXXX at (X, Y) Molto probabilmente non serviranno loop o branch complicati. Vorrei analizzare le seguenti possibilita': - scrivere il parser a mano - usare librerie di parsing gia' fatte (ANTLR e' il piu' promettente: http://www.antlr.org/) - usare un linguaggio tipo Jython, o integrare LUA o Ruby Chi si offre volontario?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA Ultima modifica di fek : 19-11-2005 alle 20:00. |
|
|
|
|
|
#2 |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
IO!!! O.o'
mi piace un sacco l'argomento del parsing, è logica pura, ferrea e brainfucking!! se mi spieghi di preciso la sintassi vorrei provare io scrivendo il parser a mano |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Anche a me piace l'idea, ma mi chiedevo: scriverlo in Python o Ruby a cosa servirebbe? In fondo andrebbe integrato con un progetto scritto in Java! (perdonate la niubbagine
E, infine, mi chiedevo: si potrebbe provare a scriverlo in C++, in modo da utilizzare un linguaggio con una sintassi che si avvicina leggermente a Java? Spero di non aver sparato solo ca**ate. ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
La sintassi del linguaggio te la inventi, quelli sono degli esempi. Ovviamente Jocchan ti dara' molte dritte su quello che potrebbe servrigli in futuro. E' uno spike e non un task perche' ancora non abbiamo un'idea precisa di cio' di cui abbiamo bisogno e di una possibile soluzione. Valuta molto seriamente ANTLR perche' sono gia' disponibili i task per Ant per automatizzare la creazione dello scanner e del parser a partire dalla grammatica direttamente dal nostro build script. Divertiti
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Python e Ruby potrebbero essere soluzioni interessanti. Ad esempio in Fable hanno deciso di usare LUA per lo scripting e per tutto il game code; e' una soluzione interessantissima, ma credo che non si adatti ad un progetto semplice come il nostro. Ed inoltre Python e Ruby potrebbero essere troppo complessi per chi e' a totale digiuno di programmazione. Ti vuoi occupare tu di vedere quanto sarebbe complessa una tale integrazione?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#6 | |
|
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
Ritiro tutto. XD
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
questo mi sa che assomiglia un pò al linguaggio di scripting utilizzato da ron jeffries per i customer test o sbaglio?
__________________
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Interessante. Non vedo l'ora di avere tra le mani qualche spike da guardare. Dite che ce la facciamo ad avere qualcosa con ruby?
ciao |
|
|
|
|
|
#11 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
Quote:
Forse la cosa migliore è qualcosa di "fatto a mano" o, come ha scritto prima Fek, usare Antlr (che è integrato con Ant).
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. |
|
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
Uff. Vabbe vediamo che cosa combina 71104. ciao |
|
|
|
|
|
|
#13 |
|
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
il linguaggio usato da ron jeffries era ESTREMAMENTE semplice...
in pratica lo usava per testare un editor xml.... il customer scriveva in un file di testo il testo normale... e in + aggiungeva i comandi da eseguire... ad esempio... *newline e cose del genere.. in + la posizione attuale del cursore veniva identificata da | che veniva correttamente riconosciuto dal parser.... così facendo il customer poteva testare il tutto senza avere la minima conoscenza di programmazione!
__________________
|
|
|
|
|
|
#14 | |
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
Quote:
Il nostro linguaggio di scripting deve anche consentire di creare, ad esempio, delle cutscene tra uno stage e l'altro dello story mode, più molto altro (creare situazioni di gioco complesse per i vari test, e - perchè no? - anche di cambiare qualche regola del gioco per aggiungere facilmente nuove modalità). Deve essere, insomma, flessibile, ma non troppo complesso, ed utilizzabile anche da chi ha conoscenze blande di programmazione... un'utopia? Credo proprio di no
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. |
|
|
|
|
|
|
#15 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ho dato un'occhiata ad ANTLR ed è MOLTO promettente (una figata per chi sviluppa linguaggi
Non so di preciso quali sono gli obiettivi di questo linguaggio di script (Jocchan, sei stato troppo generico. 1) abbiamo bisogno di definire funzioni / subroutine e/o variabili tipizzate e/o espressioni con operatori (o altro)? 2) gli script saranno costituiti tutti da comandi del tipo "Variabile = valore" oppure "Comando [parametro1, parametro2, ..., parametro n]"? Nel primo caso opterei per ANTLR (o qualche altro generatore di parser "classico", YACC-like). Nel secondo caso sarebbe sufficiente scrivere un parserino semplice semplice in Java stesso. Ovviamente la prima soluzione richiede (molto) più tempo della seconda. P.S. Finalmente m'è tornato il router e sono disponibile la sera o la mattina presto per lavorare a Diamonds. Peccato sia arrivato tardi in questo caso...
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#16 | ||
|
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
2) Ce lo deve dire Jocchan, io propenderei per un linguaggio molto simile all'inglese. Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
||
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Jul 2005
Città: Silent Hill
Messaggi: 1471
|
Anche io propenderei per un linguaggio semplice e simile all'inglese, magari con la possibilità di svilupparlo man mano che andiamo avanti.
Insomma, se volessimo iniziare dalla parte dedicata alle cutscene, potremmo partire dall'introduzione di comandi come: - wait (xx) <--- inutile spiegarlo - show bg (personaggio) <--- mostra lo sfondo del personaggio dato - dialogue (nomepersonaggio) (testo) <--- mostra una finestra con dei dialoghi in basso ed una gif "nomepersonaggio.gif" per l'intestazione della finestra - show character (codice) (nomepersonaggio) (xx, yy) <--- mostra un pg alle coordinate date dandogli un codice identificativo - move character (codice) (coord.destinazione) (velocità) <--- semplice traslazione fino alle coordinate date, con velocità settabile - anim character (codice) (xx) <--- mostra l'animazione xx per il personaggio specificato - delete character (codice) <--- elimina il pg - show picture (codice) (xx, yy) (trasparenza%) (dimensioni) <--- idem, ma per una png statica con una % variabile di trasparenza - move picture (codice) (coord.destinazione) (velocità) (trasparenza%) (dimensioni) <--- per spostare e trasformare la png in questione - delete picture (codice) <--- elimina la png - show text (coordinate) (font) (testo) <--- mostra del testo generico, con font variabile, allineato a sinistra e partendo dalle coordinate date - flash screen (colore) (durata) <--- non credo ci sia bisogno di spiegarlo - shake screen (potenza) (durata) <--- idem Già con questi comandi, da implementare poco alla volta, si potrebbero creare praticamente TUTTE le cutscene del gioco Per i comandi relativi al gioco vero e proprio devo valutare bene cosa serve, magari con un pò di consulenza tecnica Vabbè le cutscene potremmo anche girarle con l'engine di The Movies...
__________________
DIAMOND CRUSH - Aut viam inveniam, aut faciam. Ultima modifica di Jocchan : 26-11-2005 alle 10:17. |
|
|
|
|
|
#18 |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Interessante finalmente qualcosa su cui lavorare un po' mentre gli altri stanno smanettando con i Task
Se non ho niente da fare qusto pomeriggio vedo di tirare fuori qualcosa di funzionate. ciao |
|
|
|
|
|
#19 |
|
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Ma questo "task" non se l'era accalappiato 71104?
Comunque proporrei una sintassi senza parentesi per gli eventuali argomenti dei comandi. Del tipo: Show Character 'Luke Skywalker', 320, 240 Simpler is better
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
|
|
|
|
#20 | ||
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
Quote:
ciao |
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:41.



















