giovedì 16 aprile 2009

Labyrinth 0.0.9 - e la luce fu

La programmazione di un RL si sta rivelando un'impresa ardua. In effetti quando si gioca ad un roguelike, si ha l'impressione di utilizzare un qualche cosa di semplice e solo quando si affrontano i problemi per realizzarlo si apprezza veramente il gioco.

Riuscire a far aprire una porta o a far in modo che la luce che circonda mr @ non oltrepassi i muri è un grande risultato, anche se agli occhi dell'utente queste sono cose scontate.

Ecco qui la versione 0.0.9 di Labyrinth: come si può vedere ora i muri non sono più dei semplici cancelletti, ma dei blocchi pieni, le porte sono color legno, mr @ è verde (anche se solo per sfizio) e ci sono creature che girano.

Adesso il personaggio può raccogliere e lasciare a terra ogni tipo di oggetto, inoltre con l'ultima build può equipaggiare la lanterna, ma solo quella. Nelle prossime versioni si potranno equipaggiare la armi, le armature e altri tipi di oggetti.
Ogni oggetto equipaggiato avrà subito influenza sul personaggio.

E' stata implementata anche la prima parte del combattimento: infatti utilizzando l'abilità "fight" è possibile attaccare e uccidere le creature che girano per le stanze. Le creature sono invece ancora inermi.

Direi che è tutto per il momento, ma probabilmente nella prossima settimana ci saranno ancora passi avanti.

martedì 14 aprile 2009

Puntatori e DCurses

Mentre Labyrinth sta arrivando alla versione 0.0.8, sto continuando a leggere il libro Learn To Tango With D. Purtroppo devo confermare le mie prime impressioni: il libro è tutt'altro che esaustivo in molti suoi punti; per esempio i puntatori sono trattati poco e molto molto male, rimandando lo studio a wikipedia (??) e analizzando soltanto le differenze tra i puntatori del D e quelli del C/C++. Tentando già di tirare qualche somma, direi che il libro è più rivolto ai programmatori del C++ che non all'utente in generale; visto che Tango viene referenziata come Developer library ci potrebbe anche stare, ma questa scelta editoriale direi che lascia molto a desiderare.

Ho fatto delle indagini su DCurses chiedendo un help nel canale #d.tango, poichè la versione fornita per Tango è piuttosto datata e non funziona con le ultime versioni. Dopo qualche blando tentativo mi è stato detto (e non da un utente qualsiasi ma da uno che conta diciamo) che Tango e il canale IRC non è pensato per "newbie" e che devo imparare prima a compilare le applicazioni e poi forse riuscirò a far funzionare dcurses.

Stessa storia di quando anni fa chiesi aiuto con Linux. L'ambiente dei programmatori e dei sistemisti (ambiente di cui faccio parte per'altro) è pieno di gente con la puzza sotto il naso.

Vabbeh, chi fa da sé...

giovedì 9 aprile 2009

Labyrint 0.0.4

Ebbene si! Questa settimana il lavoro è stato così intenso da portare labyrinth alla 0.0.3 e alla 0.0.4!

In sostanza è stato implementato l'inventario, che può contenere circa 20-25 oggetti. Mr @ adesso può raccogliere e lasciare a terra qualsiasi oggetto gli capiti sotto i piedi. Il "Drop" deve essere affinato nel senso che, attualmente, se due oggetti vengono lasciati sulla stessa casella, apparirà a video il primo degli oggetti lasciati e non l'ultimo.

Pensavo di passare immediatamente ad implementare l'equipaggiamento, invece dovrò lavorare ancora sull'inventario in modo che mostri tutto lo spazio disponibile e non solo gli oggetti posseduti.

Nel frattempo ho già creato l'oggetto "Globe of Narus", come si evince dalla piccola immagine: man mano che costruirò i vari livelli lo sposterò sempre più sotto.

Un'altra pecca da risolvere per la 0.0.4 è che i due piani di dungeon sono così simili che se un oggetto viene posizionato per il primo, sarà presente anche nel secondo e si rigenererà al ritorno nel primo. Fino ad ora questo mi è tornato comodo per testare l'inventario, ma in settimana conto di risolvere anche questa.

domenica 5 aprile 2009

Classi e livelli

Ho giocato a parecchi roguelike, anche se a una minima parte di quelli che ci sono in giro, e devo dire che quasi tutti seguono più o meno liberamente lo schema delle classi e dei livelli.

Questo accade in maniera più massiccia nei MMORPG, sia in quelli che ho visto, sia in quelli di cui ho sentito parlare, dove sono sempre forti le correnti hack'n'slash e powerplaying (probabilmente perché più commerciali).

Questa soluzione è molto comoda perché consente, in qualche maniera, di alzare il grado di difficoltà del gioco in base al livello, di impostare gli oggetti come di classe e via discorrendo.

Io però ho deciso di non percorrere questa strada e di creare un RL basato sull'incremento delle signole abilità, a libera scelta del giocatore, esattamente come avviene nel mio gdr cartaceo e contando che questo possa divertire di più.

Il problema è che, per come ho intenzione di impostare il gioco, l'hack'n'slash sarà fortemente sconsigliato: arrivare allo sferoide di Narus sarà quindi un compendio di più fattori, dal saper affrontare certe creature al saper evitare i combattimenti troppo esosi, trovando quindi degli escamotage di un certo tipo.

sabato 4 aprile 2009

Lo sferoide di Narus

Come promesso eccomi qui per parlarvi di Narus, meglio conosciuto come lo Sferoide di Narus (Globe of Narus).

Nell'ambientazione di Arcan Myth, il mondo di Endymia, lo Sferoide di Narus è un artefatto perduto dagli inenarrabili poteri.

Le leggende legate a questo mitico oggetto erano innumerevoli, ma nel corso degli ultimi secoli sono state dimenticate e oggi soltanto in pochi sono in possesso di queste informazioni.

Secondo le leggende di origine più antica questo artefatto era in possesso dei primi Re di Endymia, probabilmente quindi elfici, che sarebbero stati resi invincibili dallo stesso. Tuttavia venne ben presto a galla la natura negativa dello sferoide e, per evitare che cadesse nelle mani sbagliate, venne posto in un luogo sicuro.

Altre leggende vogliono che Narus sia andato perduto durante la Guerra dell'Oblio (che sancì la scissione delle razze elfiche) e che da allora non se ne sia saputo più nulla.

Le leggende più recenti avrebbero origine all'inizio della terza era, nei secoli di glaciazione subito dopo la catastrofe, e queste darebbero lo sferoide in mano agli ultimi imperatori Auroriani. In questi Narus sarebbe stato uno dei fautori della catastrofe e della caduta dell'impero.

Maggiori informazioni sul mondo di Endymia le trovate qui.

giovedì 2 aprile 2009

Programmazione Blog

In queste prime fasi il progetto Labyrinth mi sta divertendo molto: sto facendo una cosa che mi piace (un Roguelike) e sto imparando un linguaggio nuovo (il D).

Per questo motivo, ad ogni progresso fatto, starei sempre qui a postare sul blog, quasi a sventolare la bandiera della vittoria. Poiché questo avviene sull'onda dell'entusiasmo, ho deciso di essere più cauto e di impormi un solo post alla settimana riguardante lo sviluppo tecnico (progressi e novità) del gioco: questo post sarà fatto sempre il giovedì sera e riassumerà il lavoro svolto e gli obbiettivi raggiunti durante la settimana.

Comunque in altri giorni della settimana potrebbero esserci dei post riguardanti altri aspetti del gioco: ambientazione, nuove features e idee in generale.

Considerando il post di ieri come quello per questa settimana, vi dò appuntamento a Giovedì prossimo.

mercoledì 1 aprile 2009

Labyrinth 0.0.2 - In giro per la cantina

Ho disegnato due livelli di prova, praticamente identici, collegati da una scala e con delle porte da aprire.

Ora la chiocciolina può andarsene in giro per questi due livelli ad esplorare quello che la circonda, può aprire e chiudere porte e sa scendere e salire le scale. Le manca la parola insomma :D

Ho anche piazzato, per prova, una creatura immobile (simbolo N) ed ho iniziato a scrivere un semplice algoritmo che consenta ad N di inseguire la chiocciolina. Non è un vero e proprio tentativo di implementare la AI, ma si tratta di una prova per capire meglio il problema.

Naturalmente siamo ancora lontani dal combattimento, dall'inventario e tutto il resto. Bisogna avere pazienza.

Nessuna novità su dcurses, mentre mi sono stampato il libro (in inglese) "Learn to Tango with D" che scaricai tempo addietro da un sito di freepress. Ho visto che il libro è a pagamento, quindi forse quando l'ho scaricato io era in fase promozionale. Gli autori sono, almeno credo, i creatori della libreria Tango: Kris Macleod Bell, Lars Ivar Igesund, Sean Kelly e Michael Parker.

Ad un primo sguardo comunque, il libro non mi è sembrato esaustivo in parecchie parti: ad esempio l'installazione del D, di Tango e dei compilatori, è descritta per il solo Windows, mentre dovrebbe comprendere almeno i sistemi linux, specie per la sezione compilatori. Per il momento quindi abbandono l'idea di usare dsss e mi limiterò a DMD che, per'altro, visto che devo compilare si e no 3 script funziona benissimo. Più avanti passerò a dsss.