Jump to content

Programmare in Java (Tool per schede dei PG)


Irrlicht
 Share

Recommended Posts

Siccome mi servirebbe un programma tipo MapTool (nella possibilità di connettere i vari giocatori e DM, intendo) ma che sia per le schede dei personaggi, anziché per mappe, attacchi, usi di abilità, tiri di dado e tutto il resto, avevo pensato di farmelo da solo, se possibile. Il CharTool di RPTools non mi soddisfa, innanzitutto perché non offre la suddetta connessione, e poi perché è molto rigido e soprattutto al momento per D&D 3.5/Pathfinder non funziona affatto, causa qualche sorta di bug; quindi si può saltare a piè pari.

Dunque, per programmarlo da solo avrei bisogno di imparare ad usare Java (o farlo fare a qualcuno che già lo conosce e potrebbe costruirlo abbastanza facilmente, ma... come si dice, "fai da te e sarai servito come un re"). Perciò, qualcuno saprebbe indicarmi eventuali programmi (gratis) che aiutino nella programmazione (o meglio, programmi che consentano di iniziare a programmare a prescindere, dato che al momento non saprei neanche cosa devo aprire per iniziare a programmare) e qualche tutorial per niubbi assoluti dell'argomento?

Link to comment
Share on other sites


  • Replies 6
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Ciao :)

Prima di tutto vorrei frenarti un attimo perché se hai intenzione di cominciare a programmare non arriverai a scrivere un lavoro come questo nel giro di pochi giorni... Devi mettere in conto alcuni mesi di studio come minimo. Se poi vuoi fare un lavoro fatto bene, ti ci vorranno anni :)

Detto questo, se sei proprio convinto, ti consiglio di cercare una guida e seguire quella pedissequamente, che è la via migliore. Ciò che ti serve quanto a programmi è il JDK, Java Development Kit, che puoi scaricare dal sito stesso della Sun, e un editor di testo. Io personalmente consiglio Geany, anche se non avendolo mai provato con java non so dirti se funziona bene. Se non ti piace, ho sempre sentito meraviglie di Eclipse.

Dimmi se ti sono stato utile... e se sei sempre convinto :D

Ah, tra prentesi: Se non è una cosa troppo lunga e complicata quella che ti serve magari posso pensarci io... Se poi passa di qui Dusdan e ci lavoriamo insieme... :D

Link to comment
Share on other sites

Be', in effetti io speravo di fare una cosa anche solo spartana, ma in non più di qualche mese (e intendo mese di lavoro "a tempo perso", cioè non a starci sopra 2 o più ore al giorno fisse), ma se sono necessarie conoscenze tanto specifiche allora cedo più che volentieri il testimone.

Vista la proposta io spiego un po' quello che avevo in mente, se poi qualcuno riuscisse a costruirlo sarebbe una gran cosa.

Innanzitutto il sistema è system agnostic, ovvero non necessita di file da caricare che contengano le regole del sistema che si intende utilizzare (come invece fanno molti programmi, CharTool compreso), ma è totalmente personalizzabile (regolisticamente parlando). Questo consente sia di utilizzare qualunque sistema di gioco (d20 system, d10 system o quel che sia) e consente di modificare una qualunque cosa di tali sistemi come si desidera in modo da poter applicare qualsivoglia houserule.

Il DM (quello che avvia il server al quale tutti si connettono, come in MapTool) fa tutte le scelte riguardo a quali schede saranno visibili e/o modificabili per tutti gli altri giocatori oppure no, e, se modificabili, a quali livelli (questo lo spiego più avanti)

Si inizia con uno spazio vuoto che rappresenta una scheda di un personaggio, e si possono creare più schede (da zero o copiandole da quelle esistenti), che si "accodano" come le schede di Firefox e compagnia. Tutte le schede fanno parte dello stesso file e possono essere anche raggruppate in sottogruppi (ad esempio "schede dei PG", "schede delle guardie del barone", "schede dei Drow di Grandgrack", e così via). Ogni scheda può essere resa visibile o invisibile ai giocatori, come dicevo sopra, ed eventualmente modificabile; oppure si può rendere invisibile/visibile/modificabile un intero gruppo e, se necessario, selezionare le singole eccezioni. Ad esempio, il gruppo "guardie del barone" è invisibile perché si tratta di nemici, ma poi i PG convincono una delle guardie ad unirsi a loro e il DM decide di rendere visibile la scheda di quella guardia specifica.

Ora, quello che segue è pienamente ispirato dal sistema di macro di MapTool, quindi chi lo conosce, insieme con la sua sintassi, magari sarà più agevolato nel farsi un'idea. Come dicevo, ogni scheda inizia come uno spazio vuoto. All'interno di tale spazio, cliccando col destro e scegliendo "crea nuovo box" si apre una piccola finestra di dialogo che chiede:

  • il nome del box (ad esempio "Caratteristiche");
  • altezza e larghezza in pixel;
  • opzioni di invisibilità/visibilità/modificabilità da parte dei giocatori;

tutte cose che potranno essere modificate anche in seguito cliccando col destro sul nome del box.

All'interno del box possono essere create a loro volta delle caselle, sempre cliccando col destro e scegliendo "crea nuova casella", e la finestra di dialogo (sempre ri-editabile in seguito) chiede:

  • il nome della casella, che al contrario di quello del box può essere omesso; semplicemente, se nel nome c'è scritto qualcosa, questo sarà visualizzato, altrimenti nulla. Ad esempio chiamiamo la casella "Forza", in modo da visualizzare poi la scritta "Forza" a sinistra della casella corrispondente. Magari lo spazio di testo del nome può anche essere personalizzato in altezza e larghezza (per questioni di ordine) e anche colore, tipo e dimensione del font. Infine dovrebbe avere anche un'opzione per decidere se il valore "interno" della casella sarà visualizzato o meno. Mi spiego: se nel box dei talenti ho "Arma Focalizzata (Spada Lunga)" (consiglio di dare un'occhiata all'esempio riportato sotto), mi basterà che nella scheda appaia la scritta riportante il nome del talento, non ho bisogno di una casella a fianco che mi dica qual'è il suo valore numerico (spero di essermi spiegato);
  • l'ID della casella, ovvero un valore alfanumerico che rappresenta il vero nome della casella, che è necessario inserire e non sarà visualizzato nella scheda; questo sarà necessario per le caselle con valori derivati (vedi in seguito);
  • il codice, che è il cuore della casella (come nelle macro di MapTool) e che dovrebbe possibilmente supportare, oltre alle normali operazioni matematiche, anche la funzione IF, per creare codici come ad esempio: "if(X > Y): Z = 10; Z = 2" - ovvero, "se X è maggiore di Y, allora Z è uguale a 10, altrimenti Z è uguale a 2". Inoltre deve poter supportare anche valori alfabetici, non solo numerici (faccio sempre riferimento a quello di cui è capace MapTool);
  • altezza e larghezza in pixel, ed opzioni per mettere in file o colonne determinate caselle e distanziarle nei modi desiderati (tutte opzioni di pura forma per avere alla fine una scheda ordinata);
  • opzioni di invisibilità/visibilità/modificabilità da parte dei giocatori;
  • opzione ON/OFF; questa opzione, indipendentemente dalla visibilità o invisibilità della casella, svolge una funzione molto semplice: se impostata su ON il suo valore è quello effettivo, altrimenti il suo valore è considerato pari a zero. Questo è utile per attivare o disattivare modificatori circostanziali, talenti ed altro. Ad esempio, se ho la casella "Arma Focalizzata (Spada Lunga)" in OFF, i miei bonus d'attacco (impostati in base ai codici di altre caselle) sono visualizzati come se io non avessi il suddetto talento (perché il suo valore è tenuto a zero), ma se la metto in ON i relativi bonus d'attacco aumentano di 1 (ovvero il normale valore della casella);

Ora dovrebbe iniziare ad essere chiaro: io creo il box "Caratteristiche", e dentro questo le caselle "Forza", "Destrezza", "Costituzione", eccetera.

Prendendo ad esempio la casella Forza (il cui ID diciamo che sia "For"), nel suo codice scrivo "16" e una volta dato l'ok vedrò nella scheda "Forza 16". Ora creo una casella da metterle di fianco, che sarà quella del modificatore di forza. A tale casella non do alcun nome, in modo che il suo valore compaia subito di fianco a quello della forza senza scritte in mezzo. Le do tuttavia il suo ID (che è necessario) e nel suo codice scrivo: "floor((For - 10) / 2)", ovvero, usando la sintassi di MapTool, ho dato il comando di prendere il valore della casella "Forza" (il cui ID è "For"), sottrarre 10, dividere il tutto per 2 e infine arrotondare per difetto, in modo da avere come valore finale l'appropriato modificatore basato sul punteggio di forza. In qualunque momento potrò cambiare il valore di forza, ad esempio portandolo da 16 a 21, ed il modificatore si adeguerà in automatico.

Da ciò (se non ho dimenticato niente) dovrebbe essere possibile generare qualunque elemento che dovrebbe essere presente in una scheda, per esempio semplicemente cambiando il punteggio di una caratteristica si modificheranno come appropriato il suo modificatore, tutti i tiri per colpire e le prove di caratteristiche collegate ad essa, eccetera eccetera.

L'idea di base è questa, spero di essere stato chiaro e preciso. Se qualcuno dovesse volercisi cimentare io sono disponibilissimo a dare sostegno morale (più che fornire le idee non posso fare, purtroppo). :D

Link to comment
Share on other sites

Sarebbe perfetto, se non fosse l'esatto esempio di ciò che ho scritto che vorrei evitare (contenuti prefabbricati e/o da scaricare e aggiungere, ovvero l'opposto del system agnosticism e soprattutto l'impossibilità di collegare tutti i giocatori in modo che ognuno possa vedere le schede).

Purtroppo tutti i programmi che ho trovato sono di questo genere. A quanto pare tutti trovano più facile inserire vagonate senza fine di dati in rete da scaricare su un treno a binari che avere la totale libertà di azione e movimento al solo prezzo di spendere un minuto a costruirsi la cosa come più preferiscono.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.