NJine

Discussioni su qualunque linguaggio di programmazione o engine
Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

NJine

Messaggio da Jak »

Immagine
Come avrete notato il mio avatar nomina un certo NJine (che in teoria dovrebbe essere letto "engine")
NJ sta per Nocche-Jak da cui è venuto fuori il marchio NJGames e visto che suonava bene ne ho fatto il mio ufficiale poichè nocode il suo ce l'ha già.
In questo progetto il lavoro lo faccio praticamente tutto io tuttavia anche nocode ha la sua parte di lavoro fornendomi aiuto con texture, modelli, testing e robe di vario genere.

Ma lasciamo questi dettagli e passiamo al fulcro dell'argomento, "cosa è l'NJine".
Inizialmente non doveva essere rivelato niente a nessuno fino a qualcosa di concreto e leggermente testabile/guardabile così da evitare i "problemi di vapore" ma appena nocode ha formato quell'immagine non ho resistito :mrgreen:

L'NJine è ufficialmente un creatore di giochi molto simile a game maker però concentrato esclusivamente sul 3d.
La mia scelta è dovuta da tanti fattori molti dei quali sono i pareri dei vari utenti di GMI.
Probabilmente vi romperà sentire tutta la storia ma è per far capire il perchè delle mie varie scelte visto che in un topic in cui avevo chiesto consigli a riguardo le vostre risposte erano propense a tutta un'altra direzione.

Inizialmente l'NJine era nato come sotituto personale di game maker con qualche cambiamento personalizzato per renderlo più veloce/potente e sopratutto multipiattaforma... questo fino all'arrivo di game maker studio.
Game maker è un'ottimo programma, probabilmente il top per fare giochi bidimensionali, il suo punto di forza è la semplicità di utilizzo permettendogli di avere la sua fetta tra i nuovi engine graficamente superpompati come UDK con un semplice tool per giochi bidimensionali.
Tuttavia game maker ha un punto debole, molti utenti avanzati voglio fare il cosiddetto "passaggio al 3d" cercando di utilizzare al meglio il d3d o dll quali ultimate 3d o gmogre.
Da questo punto nasce l'illuminazione, da una parte game maker con semplicità e giochi 2d, dall'altra engine professionali per fare giochi 3d di ultima generazione dedicati a chi è esperto nel settore e provvisto di computers ultimo modello. Scegliendo una parte o l'altra mi metterei sempre a confronto con qualcosa di probabilmente imbattibile sotto tutti gli aspetti fu così che in breve tempo abbandonai l'idea di fare un qualcosa di personale...
Arrivarono nel frattempo nuovi utenti su GMI che per quanto all'inizio sembravano dei gasati si sono rivelati gente con voglia di fare e capacità superiore alla media(considerando che il 99% degli utenti fa fatica con le icone...) Paro di gente come prometeo ed enick che, per quanto non sono all'altezza di gente esperta del forum, hanno imparato molta roba in poco tempo ed hanno dimostrato una incredibile voglia di fare sotto qualunque difficoltà. Concentrandomi su questi due esempi(poichè li ho seguiti da vicino) prometeo ha sbattuto la testa per imparare ad usare il d3d prima del previsto quando ancora faceva fatica ad usare le icone, ma è riuscito tuttavia ad ottenere ottimi effetti grafici ed IA attraverso peripezie riguardanti le limitazioni e difficoltà del d3d. Enick invece è passato anch'esso a dover risolvere i problemi del d3d nonchè anche i problemi di gmogre tra le varie limitazioni e bug dovuti al porting che gli hanno dato/stanno dando non pochi problemi.
Molti altri utenti hanno provato a "passare di categoria" cercando di imparare ad usare la grafica tridimensionale, guidox, nocode, ecc ma senza troppo successo, poichè da una parte game maker è pensato esclusivamente per il 2d quindi per usare il 3d bisogna fare delle considerazioni che in genere con game maker non si fanno come il disegno manuale anzichè automatico e l'uso della terza coordinata oppure la mancanza completa di interfaccia, anche con le varie dll la situazione è simile vista la scarsa usabilità di game maker al di fuori del 2d.
Dall'altro lato si ritrovano ad usare engines professionali con un sistema di utilizzo completamente differente nonchè ben più difficili rendendo il salto veramente troppo grande.
Lavorando con questi utenti o anche solo leggendo i loro problemi su questo forum credo di aver capito cosa è che veramente manca, cosa veramente vuole un programmatore di medio livello per fare quello che vuole fare.
Ciò a cui punto è che l'engine possa essere iniziato ad essere usato da qualcuno che ha da poco smesso di usare le icone quindi più semplice possibile,

Nasce così l'idea dell'NJine, un creatore di giochi che prende la grafica tridimensionale e la rende semplice come game maker(o quasi, è pur sempre una coordinata in più da gestire) integrandosi perfettamente col programma.

Per ora l'engine è ancora in alto mare per una beta testabile tuttavia ho deciso/risolto gran parte della roba su carta quindi il lavoro difficile è fatto, ora manca solo la parte "lunga".
Ma parliamo ora più dettagliatamente di questo motore.

L'NJine, come ho già detto, è ufficialmente un sostituto di game maker riscritto interamente da zero in c++ usando le librerie grafiche opengl. Il mio intento è quello di renderlo il più possibile semplice e veloce rendendolo più adatto possibile ad un programmatore di basso livello quindi cerco di utilizzare il meno possibile librerie professionali di vario genere e di rifarmi tutto da me così da avere più controllo possibile su ciò che sto facendo, tuttavia le utilizzerò specialmente dove ancora non sono molto esperto in quel campo, attualmente utilizzo freeglut(finestre), glew(estensioni opengl) e zlib(per comprimere i file così da far pesare meno le risorse), e probabilmente(quindi non sicuro) userò una libreria per l'audio(da decidere) e physX per la fisica e gestione delle collisioni.

Inizialmente svilupperò solo per windows ma sto cercando di evitare come la peste ogni riferimento a windows poichè il mio intento è avere un programma multipiattaforma che possa essere usato su svariati OS e perfino dispositivi mobili.

Cominciamo a dare alcuni dettagli un po più precisi.
-L'interfaccia: la pecca più grande di game maker riguardante il 3d(ma anche il 2d solo che avendo meno problematiche si sopravvive anche con un'interfaccia più limitata e banale) è sicuramente la mancanza completa di interfaccia. La progettazione di mondi e visione delle varie risorse è impossibile senza che ci si faccia un buon editor personalizzato che rende comunque le cose più difficili da utilizzare vista la scarsa versatilità nella memorizzazione dei dati di game maker nonchè è difficile crearlo un'editor personalizzato richiedendo molto più tempo per farsi una libreria di funzionalità piuttosto che fare il gioco vero e proprio.
Lavorando con prometeo, massimo ed altri ho capito quanto invece sia importante avere una buona e completa interfaccia grafica così che il grafico possa gestire da se gran parte delle cose senza necessariamente chiedere aiuto al programmatore o imparare a programmare.
Uno che sa programmare avrà difficoltà ad aiutare un grafico e viceversa quindi l'obiettivo è quello di lasciare il più possibile che ognuno faccia quello che sappia fare meglio cercando di evitare il più possibile di interferire con il lavoro degli altri membri.
Un grafico che programma qualcosina va anche bene ma cosa necessaria è che si sappia arrangiare in qualche modo.
Di conseguenza ho intenzione di fare un'approccio più visivo quindi ad esempio scegliendo un modello fra molti utilizzando la preview piuttosto che il nome, stessa cosa con le texture, materiali ecc.
Anche nella creazione dei codici ho intenzione di mettere la possibilità di scegliere le varie risorse tramite interfaccia così da evitare di doversi riguardare ogni volta una lista infinita di risorse(ricordatevi che nel 3d saranno facilmente molte di più come quantità rispetto al 2d) dove magari avete nominato ognuna "alberoA, alberoB, alberoC, alberoEcc" e doverci giocare per accorgersi dell'errore.
L'interfaccia è quindi una cosa molto importante e probabimente una delle cose che cambierò maggiormente rispetto a game maker nonchè la cosa più difficile ed ancora meno studiata dell'engine a livello di struttura interna anche se ho già delle idee piuttosto chiare del risultato finale.

-La grafica: Un'altro punto fondamentale di un motore è senza dubbio la grafica. Tuttavia non aspettatevi cose tipo questa
Spoiler
Immagine
Ma neanche lontanamente :lol:
Poichè fare una buona espandibilità grafica è molto difficile per ora farò degli effetti preimpostati, voi semplicemente per ogni materiale dovrete scegliere gli effetti da usare, le texture, i vari parametri del materiale ecc.
Vorrei tanto fare una cosa espandibile con tanto di shader personalizzati tipo ogre ma è una cosa troppo lunga e complessa e per ora preferisco avere qualcosa di utilizzabile.
Non aspettatevi quindi niente di più complesso di bumpmap od offset mapping per ora, tuttavia è sicuramente più di quanto potete fare con game maker, anche usando dll come gmogre, senza sbatterci la testa ed imparare gli shader.
Cercherò comunque di fare un sistema più flessibile possibile in modo da darvi costanti aggiornamenti per nuovi effetti e forse un giorno la possibilità di una maggiore personalizzazione dei materiali, magari con un sistema simile a quello ad icone di UE3 così da darvi una certa flessibilità pur tenendo conto di valori predefiniti. :sisisi:

-Il codice: Per quanto riguarda il codice ho intenzione di prendere molto spunto dalla semplicità del gml ma facendo qualche leggero cambiamento per renderlo più veloce da eseguire e da scrivere.
A parte qualche aggiunta come una maggiore possibilità nell'uso degli array non ho intenzione di cambiarlo moltissimo tranne due semplici punti:
-Avrà una struttura più rigida quindi non a scelta come game maker dove potrete fare castroni di vari linguaggi, se decido di metterci i ; ci devono andare altrimenti non ci devono andare, fine. Questo a mio parere non farà altro che ridurre il numero di errori sintattici da parte degli utenti nonchè sarà più facile aiutarsi a vicenda senza mescolamenti tra il linguaggio più comodo per ognuno.
-Avrà la tipizzazione dei dati quindi ogni variabile dovrà avere un tipo impostato all'inizio dall'utente. Probabilmente alcuni di voi che si erano interessati al topic stavano già imprecando all'idea di ciò ma la mia scelta è giustificata da molti fattori. Un motivo è probabilmente quello di evitare errori dovuti alla differenza dei tipi, in parole più semplici capita molto spesso che utenti inesperti facciano casino tra numeri e stringhe provocando molto frequentemente errori. Con i tipi di dati scelti fin dall'inizio non ci saranno problemi di confusione di questo genere. Altro motivo, forse anche il più importante, è quello dell'interfaccia. Grazie ai tipi dei dati posso offrire molti aiuti nel code editor con un sistema simile all'intellisense di visual studio. Potrete avere sempre sott'occhio il tipo di dato, le sue caratteristiche, le funzioni utilizzabili, le variabili degli altri oggetti e molto altro. Insomma sviluppare il codice con le variabili tipizzate provoca meno errori, un codice più pulito e velocità nella scrittura. Tutto di guadagnato :sisisi:

Il codice è studiato per essere semplice e compilabile, tuttavia non ho alcuna intenzione di studiarmi l'asm e farmi un compilatore, specialmente vista la mole del programma.
La mia intenzione è quella di fare una specie di linguaggio semiinterpretato, in una maniera simile al java. Ancora non ho ben deciso come svilupparlo se compilare proprio in un linguaggio a basso livello come il java oppure tenere in memoria informazioni relative ai vari elementi del codice così da renderne forse anche più veloce l'esecuzione.
Non pretendo di raggiungere prestazioni simili al java tuttavia la struttura molto semplice e poco personalizzabile del linguaggio(che come ho detto è molto simile al gml, niente classi o cose strane definibili dall'utente, è un vero e proprio linguaggio di scripting) lo renderà veloce da interpretare quindi non si sa mai :sisisi:
Un'opzione suggeritami da slascio è stata quella di convertire il linguaggio in c++ quindi di compilarlo. Tuttavia anche se ciò rende più veloce e semplice da creare il sistema preferisco il linguaggio interpretato.
Un gioco in sviluppo necessita di molto testing e molto spesso poche modifiche apportate cambiano notevolmente il risultato finale, di conseguenza compilare per ore il tutto per ogni piccola modifica renderebbe snervante produrre qualcosa con il mio engine. Lo sviluppo sarebbe infinitamente più lento. Altro motivo infine è il doversi adeguare con i vari compilatori lasciando del lavoro da svolgere da parte dell'utente per le varie piattaforme anzichè un semplice launcher, uno per ogni piattaforma, che darà gli stessi risultati finali. Ultima cosa è la possibilità di poter modificare/aggiungere le varie risorse direttamente dal gioco anche se non ho intenzione di fare cose come execute_string() che rendono più complesso e buggabile il tutto, al massimo permetterò di cambiare/aggiungere eventi/oggetti/script.
Detto ciò a mio parere è sicuramente meglio fare un linguaggio interpretato(o meglio semiinterpretato) che, per quanto sia più lento e necessita di più lavoro da parte mia, offre una notevole quantità di vantaggi. Dopotutto essendo semiinterpretato non sarà lento come game maker ed ho intenzione di aggiungere un po di sintassi per velocizzare l'utilizzo di grosse moli di dati e per un linguaggio pensato allo scopo di esecuzione di eventi di vario genere la lentezza non si nota. Già non si nota con game maker se non per cose complesse che prevedono grosse quantità di dati come una struttura alla minecraft o motori di vario genere, qui prometto prestazioni sicuramente migliori. La sintassi più rigida e controllata solo una volta permetterà anche di avere una minore necessità di controllo degli errori del programmatore, che a mio parere rallenta moltissimo game maker, quindi non è un buon punto di riferimento per capire le prestazioni finali, solo il tempo potrà dirlo.



-La struttura interna:
Scendiamo quindi un po più nel dettaglio a vedere come ho pensato di gestire le varie parti del programma e darvi un'idea più dettagliata di ciò che ho in mente. Pensandoci bene sto post rischia di diventare 10 volte più lungo se scrivo tutto di tutto quindi cerco di limitarmi a dire i punti fondamentali, i dettagli li dirò solo a richiesta.

Il programma utilizzerà opengl 3.2, cosa significa ciò? Significa che se la vostra scheda video non supporta opengl 3.2 o superiore non potrete utilizzare il mio programma. Se avete una radeon dovete possedere almeno una ati radeon hd serie 3000. Dalla 2000 in giu è possibile che non sia compatibile tuttavia cè la possibilità che schede video che supportano opengl 3.0, 3.1 possano supportare opengl 3.2 ad eccezzione di certe limitazioni come il numero di texture units che potrebbe dare problemi.

"OMG! OMG!!! Quindi io non posso usare il tuo programma perchè ho una scheda troppo vecchia?"
Esatto, mettiti il cuore in pace.
"OMG! OMG!!! Ma quindi netbook e cellulari che hanno una shceda video non proprio potente non potranno utilizzare il tuo programma?"
E' qui che ti sbagli ;)
Da opengl 3.0 in poi è entrato in atto il cosiddetto "deprecation model" che indica l'eliminazione di numerose vecchie funzionalità.
Con opengl 3 e 4 le vecchie funzionalità esistono ancora ma sono sconsigliate da utilizzare in quanto entro breve tempo verranno completamente eliminate e non sarà più possibile far girare vecchi programmi.
Io chiaramente preferisco tagliare fuori quei pochi che hanno una scheda video dell'anteguerra piuttosto che ritrovarmi con un programma inutilizzabile.
In secondo luogo dispositivi mobili di vario genere usano opengl es 2 che equivalgono ad opengl 3 con l'eccezione che sono già state eliminate le funzioni deprecate quindi se usassi le vecchie funzionalità non potrei più avere il supporto a cellulari di ultima generazione.
Sarò presuntuoso, ma io voglio guardare al futuro. ;)
"OMG! OMG!!! Ma così facendo non appesentirai il tutto? Poi sui pc scrausi non funge più niente"
E qui ti sbagli di nuovo. Le nuove funzionalità non sono necessariamente poichè nuove, anzi!!! Le prestazioni aumenteranno notevolmente rispetto ad un sistema che utilizza il vecchio modo di fare nel campo della grafica.
"OMG! OM..."
Zitto! so quello che faccio!
Attualmente l'NJine lo svilupperò usando opengl 3.0 tuttavia per molte cose come il wireframe o il billboarding devo usare i geometry shader presenti solo da opengl 3.2 in poi(anche se è possibile usarli tramite alcune estensioni quindi potrebbe avere una discreta compatibilità con opengl 3.0 lo stesso)

Attualmente l'NJine è ancora in una fase primitiva, per ora sto cercando di farmi la libreria delle varie funzionalità che per ora testerò usando il c++ quindi il linguaggio di scripting sarà il lavoro finale in quanto si dovrà adattare alla struttura del resto del programma per poter essere utilizzato al meglio.
Una beta testabile sarà godibile tra parecchio tempo tuttavia vi terrò aggiornati su qualche risultato "guardabile" quindi senza possibilità di metterci le mani voi.

Il mio obiettivo è quello di fare un nuovo programma per lo sviluppo di giochi tridimensionali che prende spunto dalla semplicità di game maker e spero di portarlo su varie piattaforme.
Sono ancora indeciso sulla "licenza" che avrà questo programma fatto sta che il lavoro è immenso e lunghissimo e, almeno per ora, lo sto facendo interamente da solo. Detto ciò il programma è pensato per essere venduto, non nego che voglio guadagnarci sopra. Tuttavia è possibile che faccio una cosa simile a game maker con lite e pro edition, oppure programma gratuito se non vendete il gioco, a pagamento(soldi o percentuale) se mettete in vendita, oppure sarà da comprare e basta. Ancora non ho deciso che formula utilizzare e credo che sia inutile pensarci ora sappiate solo che non dimentico quindi mi sembra ovvio che coloro che mi aiuteranno nello sviluppo o nel testing o in qualche modo riceveranno una copia gratuita. Magari estendibile a tutti i gmitaliani così mi fate pubblicità :lol:

Tralasciando questo discorso io ho le idee ben chiare su cosa sto facendo ma chiaramente se avete idee su come migliorare il programma in qualche modo son ben disponibile ad ascoltare le vostre richieste. Ovviamente non ora visto che non sono sceso molto nel dettaglio e non avete idea di come verrà fuori il programma tuttavia se avete qualche suggerimento abbastanza generale o domande dite pure.

Avrei ancora moltissime/troppe cose da dire quindi ho deciso di fermarmi qua se non delucidazioni a richiesta.(qua sul topic intendo, non via pm, non vorrei ripetere mille volte le stesse cose :lol: )

Il programma è nato dalle vostre richieste e dalle vostre problematiche che io ho assimilato, molti di voi mi hanno aiutato indirettamente finora quindi sentitevi pure partecipi di dire la vostra. Come ho detto questo programma è pensato per essere semplice ed utilizzabile da chiunque quindi ogni richiesta è ben accetta.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
guidox
GMI Honor
Messaggi: 5765
Iscritto il: 26/07/2009, 17:23
Specialità: programmazione
Uso: GM:Studio 1.4 Android
Località: Marche
Contatta:

Re: NJine

Messaggio da guidox »

Ho letto tutto. :mrgreen:
OK ora vado a lavoro... sta sera ti dico di più...
Immagine

Immagine

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: NJine

Messaggio da Tizzio »

letto il romanzo :)
Appena lo finisci, lo compro volentieri.

Avatar utente
enick
GMI VIP
Messaggi: 3749
Iscritto il: 26/06/2011, 19:34
Specialità: 39dll e 3D
Località: Sardegna
Contatta:

Re: NJine

Messaggio da enick »

uff .. letto tutto :lol: sappi che da me otterrai tanti consigli illuminanti , almeno quando ci sarà qualcsa di concreto su cui ragionare :rockrock:
Nicola porcu(Sardegna)
ImmagineImmagine
Immagine
Are you sleeping?
[email protected]

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: NJine

Messaggio da Jak »

Xeryan ha scritto:Il vantaggio di usare C++ per fare un linguaggio interpretato rispetto a GM oltre all'IDE 3D ?
Bè, non è il fatto che uso il c++ che cambia, come ho detto è il modo in cui ho intenzione di interpretare il tutto(semiinterpretato).
I vantaggi reali rispetto a game maker non sono molti tranne il fatto che appunto è studiato per il 3d e quindi non si avranno problemi con calcoli matematici di vario genere, collisioni, grafica ecc
Quindi avrai molte funzionalità che ti daranno supporto su esso.
Xeryan ha scritto:OH PORCA PALETTA!
Così mi piaci 8)
Xeryan ha scritto:Un gioco 3D ha bisogno di prestazioni eccellenti, anche con GM più o meno doveva ricompilare ogni volta che esce un errore, quindi...
Ecco, questo è un buon punto che ho tralasciato per via del post troppo baronesco.
La mia intenzione è quella di fare un sistema MOLTO simile a quello di gmogre(e praticamente qualunque altro engine professionale) dove la grafica sarà interamente gestita dal mio motore, a voi spettano solo settaggi vari, posizionamento degli oggetti, ecc
NON SARA' POSSIBILE IN ALCUN MODO DISEGNARE MANUALMENTE quindi scordatevi funzioni come draw_vertex()
Al massimo penserò a qualche ibrido per l'HUD ma dovrò studiarlo bene.
Tutti i vari calcoli per gestire la grafica, che fidatevi se vi dico che nel 3d è mooolto più difficile da gestire partendo dalla base rispetto al 2d, saranno svolti dal mio motore quindi z ordering, frustum culling, ecc non dovrete mai preoccuparvi di nulla(o quasi)
Tutto ciò che spetta al linguaggio è appunto lo scripting quindi il codice del gioco ma per il resto penserà a tutto il mio motore in c++ di conseguenza le prestazioni saranno elevatissime.
Quante volte vi è capitato di eseguire script kilometrici con game maker senza gestire la parte grafica? La maggior parte dei giochi anche con un'IA abbastanza complessa sono abbastanza semplici e spesso quasi irrilevanti dal punto di vista di prestazioni già con game maker.
E' proprio per questo che voglio garantire un buon supporto agli array e strutture dati così da non dover usare eccessivamente il codice interpretato e lasciar lavorare quello compilato.

Secondo me il tutto è fattibilissimo anche tenendo una struttura ad oggetti(che pensandola bene non viene fuori così pesante come sembra anzi, ho trovato delle buone tecniche :D ) con linguaggio interpretato con un codice molto lungo e pesante perfino su dispositivi mobili.

Il lavoro più grande è sempre stato quello da parte della grafica e memorizzazione dei dati e per questi due campi ho intenzione di dare più aiuti possibile per evitare di metterci mano tramite lo scripting.
Un'esempio? Calcoli su aree usando gli array, ingrandimento di array a gruppi di celle varie e molto altro.

Come ho detto ho studiato a lungo su carta le varie problematiche e proprio quando stavo per arrendermi alle prestazioni mi è arrivata(più volte) l'illuminazione :sisisi:

Come ultima cosa posso dire solo... eddai, lo sapete che con le prestazioni sono maniacale 8)

@tutti gli altri: grazie per il sostegno e per aver letto tutto. Sopratutto te enick, non sai quanto mi hai dato, specialmente supporto morale, senza nemmeno saperlo grazie a leggenda.
Pensavo che gmogre tutto sommato fosse quasi perfetto invece tu mi hai spronato a partorire... questo :mrgreen:

PS: Lo screen più aggiornato:
Spoiler
Immagine
Che pretendete? :lol:
Non avete idea di quanto ho lavorato per imparare calcoli matriciali, tecniche del 3d, problematiche e robe di vario genere :paura:
Quello che vi sembra poco in realtà è moltissimo.

PPS: Si quello che vedete è antialiasing
PPPS: Darò il supporto al 3d anaglifico 8)

EDIT: Per grafica di qualità bassa non intendo una schifezza ovviamente. Considerate che questa immagine è un normale modello texturato con una luce direzionale calcolata per vertice
Spoiler
Immagine
Un buon modello sa superare le limitazioni della grafica ;)
Immaginatevelo con luce per pixel, ombre e bump mapping :metalgo:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
guidox
GMI Honor
Messaggi: 5765
Iscritto il: 26/07/2009, 17:23
Specialità: programmazione
Uso: GM:Studio 1.4 Android
Località: Marche
Contatta:

Re: NJine

Messaggio da guidox »

Jak io vedo molto vapore nell'aria... spero di sbagliarmi... la determinazione c'è, ma ora vogliamo i fatti :!:

Ovviamente io come tua fonte di ispirazione mi merito una versione pro gratis. 8)
Ahn, ricorda il supporto online... :sisisi:
Immagine

Immagine

Avatar utente
civic71
GMI Advanced
Messaggi: 2210
Iscritto il: 23/10/2003, 17:31
Specialità: Risotto con zucchine
Uso: GM:Studio 1.4 Pro
Località: Jesolo (venezia)
Contatta:

Re: NJine

Messaggio da civic71 »

Bene , spero che per ottobre e o novembre ( il periodo in cui avro tempo libero ) sia disponibile una beta :D

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: NJine

Messaggio da Jak »

civic71 ha scritto:Bene , spero che per ottobre e o novembre ( il periodo in cui avro tempo libero ) sia disponibile una beta :D
Ne dubito, tuttavia un'alfa o un qualcosa di godibile in qualche maniera spero di si.
Come ho detto il lavoro è già tutto organizzato ma sarà luuuuuuuuuuuungoooooo. :paura:
guidox ha scritto:Jak io vedo molto vapore nell'aria... spero di sbagliarmi... la determinazione c'è, ma ora vogliamo i fatti :!:
I fatti ci sono già, solo che ognuno separatamente valgono ben poco.

Ciò che mi preoccupa non è tanto la difficoltà(è alle mie possibilità, ne sono sicuro) quanto la quantità. Cè veramente tanta roba da fare e questo caldo non aiuta :paura:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
NeatWolf
Membro super
Messaggi: 684
Iscritto il: 03/08/2011, 12:09
Specialità: Programmazione
Località: Oristano, Sardegna, Italia
Contatta:

Re: NJine

Messaggio da NeatWolf »

Letto il megapost.

Domanda: quale sarà il target? Visto intendi commercializzarlo già da ora, quale fetta di mercato non ancora soddisfatta pensi di voler attirare? Quale sarà il costo per copia, e quale sarà il gioco "paragone", l'aspettativa massima che un utente può pensare di raggiungere con gran sforzo? Come si colloca tra gli engine/sandbox esistenti, e di che fascia (passatempo, intermedio, medio/pro)?

Se toglierai totalmente la possibilità di lavorare con le trianglestip e tutte le primitive base, mi raccomando, che non manchi un particle system degno del nome!

E il post processing?

Per il resto, la determinazione sarà chiave, quindi in bocca al lupo :cappa:
Spoiler
Se sarà ragionevolmente costoso e pratico ed espandibile, e darà garanzia di supporto e sviluppo, magari potrei pensare di svilupparci Adon 2, visto che ora l'obiettivo è passare se non al 3D, quantomeno al 2.5D :P
Spoiler
Nota a margine: si, la precisione ed esser descrittivo va bene, ma lanciare un prodotto che dovrebbe essere user-friendly presentandolo con un mezzo romanzo è un po' una contraddizione in termini, una schematizzazione e successivo approfondimento forse renderebbe la cosa più "appetitosa", ecco. Una garanzia circa il fatto che è l'utente è al centro dell'attenzione, e non il contrario. Just saying. ;)
Info: Immagine FB | G+ | A.D.O.N. Project | Videos:YT

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: NJine

Messaggio da Jak »

NeatWolf ha scritto:Nota a margine: si, la precisione ed esser descrittivo va bene, ma lanciare un prodotto che dovrebbe essere user-friendly presentandolo con un mezzo romanzo è un po' una contraddizione in termini, una schematizzazione e successivo approfondimento forse renderebbe la cosa più "appetitosa", ecco. Una garanzia circa il fatto che è l'utente è al centro dell'attenzione, e non il contrario. Just saying. ;)
Questo non è un sito o una presentazione ad un prodotto completo. E' un'esposizione degli interessati sui dettagli di come svolgerò il tutto. Volevo parlare di come ho pensato di svolgere meccanismi interni e tutto ma chiaramente una volta finito saranno cazzi miei. Più che altro so che siete dei curiosoni quindi volevo espormi il perchè delle mie scelte, cosa che una volta finito non importerà più a nessuno.
Più che altro cerco anche eventuali consigli quindi esporre l'idea più dettagliata possibile migliorerà lo sviluppo. :sisisi:
NeatWolf ha scritto:Se toglierai totalmente la possibilità di lavorare con le trianglestip e tutte le primitive base, mi raccomando, che non manchi un particle system degno del nome!

E il post processing?
Anche questa è una gran parte del lavoro. I sistemi particellari sono un'altro dei motivi per cui voglio il geometry shader ma allo stesso tempo sarà dura renderlo potente e flessibile.
L'idea è di fare un sistema di disegno simile ad ogre, lascierò la possibilità di lavorare con le primitive base ma in livello più limitato. Intendo dire che farò i "movable objects" come ogre che alla fine non sono altro che dei modelli strutturati per essere veloci da modificare(ma più lenti da disegnare) inoltre ovviamente la possibilità di modifica a mano della geometria è praticamente ovvia.
Il postprocessing così come i vari shader per ora non saranno proprio il top level, non mi sono mai allontanato molto con la grafica proprio per la mancanza di un buon motore di supporto.
Inizialmente partirò con un semplice per pixel lighting e piano piano espanderò le capacità grafiche dell'NJine una volta finito.
NeatWolf ha scritto:quale sarà il target? Visto intendi commercializzarlo già da ora, quale fetta di mercato non ancora soddisfatta pensi di voler attirare? Quale sarà il costo per copia, e quale sarà il gioco "paragone", l'aspettativa massima che un utente può pensare di raggiungere con gran sforzo? Come si colloca tra gli engine/sandbox esistenti, e di che fascia (passatempo, intermedio, medio/pro)?
Il target a livello di prezzi lo voglio tenere molto basso.
Tra poca gente che spende molto o tanta gente che spende poco preferisco la seconda, sia per farmi strada tra i megaengine pompatissimi attuali, sia perchè non mi sembra giusto togliere a qualcuno il piacere di utilizzare qualcosa di bello. Come inizio penso che terrò prezzi alla game maker, dai 20$ ai 50$(che se non sbaglio sono 16-40 euri dubito salirò di più al'inizio) se non meno durante la fase di beta. Non mi interessa diventare ricco, basta quel poco per tirare avanti magari sviluppando solo questo progetto per ora.
Ci sarebbero anche le royalty quindi tutto completamente gratuito e vi mangio un po di quattrini quando guadagnate quindi abbastanza indolore considerando che se non guadagnate niente i non becco niente ma non penso di fare così, meglio un guadagno sicuro considerando il pubblico che voglio attirare.

Il livello di complessità dell'NJine voglio tenerlo più basso possibile tuttavia non ho intenzione(almeno per ora) di mettere icone o cose simili per il codice. Diciamo utente di game maker intermedio che usa da poco tempo il codice. Dopotutto il 3d per quanto lo rendo facile è un lavoro lungo e con molti più settaggi da fare del 2d di conseguenza un minimo di skill ci vuole.

Il linguaggio di scripting sarà forse leggermente più complesso del gml per via della tipizzazione delle variabili e che queste variabili possono essere anche risorse, nodi, oggetti e quant'altro quindi il "." si userà molto di più per cambiare le caratteristiche delle varie cose ma a parte questo il resto sono solo aggiunte e qualche eventuale leggero cambiamento sintattico ma siamo la.
che su "principiante, intermedio, medio, pro" la fetta di utenza che supporterà è "intermedia" più che per la semplicità il problema è proprio che il 3d è più lento da sviluppare essendoci più fattori da gestire(anzichè solo sprite abbiamo modelli, textures e materiali per esempio).

La semplicità è uno dei motivi per cui sono indeciso se usare physX, sarà belo ma ho sentito dire che è complesso. Devo ancora vederlo per bene(ho solo guardato gli esempi dell'sdk) quindi non so a che livello di difficoltà lo posso portare.
Le collisioni 3d sono una delle cose principali che possono rendere un motore difficile da usare quindi su questo punto per ora posso solo sperare. :paura:


Ah dimenticavo di rispondere prima. Ho intenzione ovviamente di tenere aggiornato il programma anche perchè sono sicuro che si può fare ancora moltissimo dal momento in cui uscirà la primissima versione, se riesco a diciamo "vivere di rendita"(impresa mi sa impossibile purtroppo ma la speranza è l'ultima a morire) prometto di lavorarci giorno e notte per renderlo migliore. Non ho intenzione di far uscire nuove versioni da comprare ogni due secondi, aggiornamenti gratuiti. :sisisi:
L'eventuale NJine 2 per ora non ci penso e verrà solo dopo che avrò fatto GROSSI cambiamenti al programma quindi dopo svariato tempo.
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: NJine

Messaggio da Jak »

Il lavoro continua!
Seppur con molte peripezie e pause riflessione/mancanza voglia/lavori forzati ormai direi di aver deciso una buona gestione per l'utilizzo e la modifica delle texture.
Poichè attualmente il mio scopo è ottenere una buona, semplice e flessibile libreria in c++ per poter fare facilmente degli aggiornamenti nonchè creazione dell'ide e interprete del codice il lavoro è molto minuzioso.
Attualmente riesco a caricare con successo bmp e tga, almeno per le impostazioni più usate quindi bmp 3 a 24 bit e tga a 24/32 bit con riconoscimento di inversione dei dati ma senza compressione.
Il lavoro per fare i miei loader è stato duro ma come ho detto il mio obiettivo è quello di staccarmi il più possibile da librerie esterne.
Alla fine dovrei usarne comunque per caricare i png(che a guardare il wiki ho tremato al solo pensiero da quanto son complicati :paura: ) ma visto che in genere finisco sempre tra problemi della libreria di implementazione ecc per ora ho preferito farmi questi due loader personali(che caricano quindi anche il canale alfa grazie a tga) che si adattano alle mie attuali esigenze di testing e modifica talvolta radicale della struttura interna.

Ho quindi abbastanza deciso come strutturare il mio formato di file per le texture(compresso ovviamente, peserà all'incirca come i png) che conterrà anche varie impostazioni della texture come il mipmap, il filtering ecc :sisisi:
Attualmente sto finendo di codare quella che credo sia la versione definitiva di classe/file delle texture dopodichè passerò alla geometria ed i materiali(bestemmierò per questi cambiando ogni due minuti l'idea di come strutturarli, ne sono sicuro :lol: ), a quel punto potrò finalmente iniziare a fare un po di testing ed a buttare giu una qualche base.
Dopo materiali e mesh penso che sarà l'ora di fare le varie funzionalità del motore per quanto riguarda gestione finestre, input, log per il debug ecc e questo sarà un lavoro abbastanza lungo tuttavia sarà una buona base per il testing quindi arriveranno i primi screenshot.

Il passo successivo sarà sviluppare l'interfaccia per l'interprete e poi l'interprete vero e proprio ed infine l'ide. Questi ultimi due lavori saranno i più lunghi ma dopo avrò finalmente finito un qualcosa di parecchio difficile da usare(in quanto mancheranno molte funzionalità e gestione delle collisioni) ma sarà una base testabile.

Per ora il lavoro si sta rivelando più difficile del previsto più che altro perchè, partendo da 0, devo stare bene attento fin da subito a non commettere errori a livello di logica interna del motore(non come bug ma quanto ad interfaccia, quella del codice intendo) per evitare problemi in futuro e ciò è difficile da fare senza avere le idee chiare di come sarà la struttura finale. Ogni cambiamento porta ad altri cambiamenti e quindi ad un'ulteriore revisione.
Tuttavia si sta comunque rivelando intrigante quindi anche se non ci lavoro tanto quanto pensavo(per sfinimento) guidox può portare quanta iella vuole ma io continuerò a produrre!!! :rockrock:

Qualche screen del loader(non ho ancora finito il load/save del mio formato file quindi dovrete aspettare)
Spoiler
Immagine
Immagine
Immagine
Immagine
Immagine
Notare "Nehe's texture mapping tutorial", poichè non avevo voglia di fare chissà che per il rendering rischiando di fare errori ho usato quel tutorial(leggermente modificato) per il rendering :lol:
Vi assicuro comunque che il loading è interamente fatto da me.

PS: Posso darvi quel programma se volete ma dubito che vi interessi così tanto guardare un programma che carica qualche bmp e tga in nemmeno tutte le loro varianti ma solo quelle più usate. :roll:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: NJine

Messaggio da Tizzio »

Cambiare il caption no, vero? 8)

Comunque non osare fare come ogre che legge solo .mesh o formati propri, se no lo puoi buttare nel cesso quel programma :mrgreen:

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: NJine

Messaggio da Jak »

Tizzio ha scritto:Cambiare il caption no, vero? 8)
Si potevo farlo ma ero concentrato alla parte difficile e non ho badato a simili sciocchezze :lol:
Tizzio ha scritto:Comunque non osare fare come ogre che legge solo .mesh o formati propri, se no lo puoi buttare nel cesso quel programma :mrgreen:
Cioè come fa praticamente ogni fottuto engine(lo fa UE, lo fa cryengine, lo fanno tutti) :roll:
Ogre sembra complicato perchè è un motore a se stante ma non dimenticare che io ho il vantaggio dell'interfaccia.
Il motore del gioco supporterà SOLO ED ESCLUSIVAMENTE i miei formati proprietari, perchè? Leggerezza e semplicità, pensate che noia a dover caricare manualmente le varie risorse con tutte le "centinaia di migliaia di kilometri quadrati" di impostazioni senza contare che a parte texture e mesh cè molta altra roba che richiederà comunque un formato proprietario.
Tuttavia tramite l'IDE ed il programma di sviluppo sarà possibile caricare vari formati file tramite i miei importer che al momento della "compilazione"(per così dire) del gioco verranno convertiti automaticamente nel mio formato proprietario per la risorsa.
Ogre ha il formato proprietario ed ognuno deve arrangiarsi a farsi il converter, io ho il mio formato proprietario ma allo stesso tempo vi do dei converter appositi fatti da me.

Infine questi formati offriranno una minima protezione per chi non ha il mio programma e potrei anche criptarli con password quindi oltre alla semplicità ed alla leggerezza ci sarà anche la protezione delle risorse :roll:

Grazie per avermelo detto. Ormai avevo finito tutto e mi mancava solo di fare il load/save del mio formato file quando mi hai ricordato che sarebbe una buona idea aggiungere dati riguardanti la protezione(sarà un bool password/non password) all'header anche se per ora forse non li utilizzerò(ma anche si) :sisisi:

Formati proprietari rulez :metalgo:

PS: aggiungiamoci ovviamente anche i tempi di caricamento molto veloci in quanto non ci sarà assolutamente nulla da convertire ma semplicemente copia dei dati in memoria. :D
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
NeatWolf
Membro super
Messaggi: 684
Iscritto il: 03/08/2011, 12:09
Specialità: Programmazione
Località: Oristano, Sardegna, Italia
Contatta:

Re: NJine

Messaggio da NeatWolf »

Jak ha scritto:Il motore del gioco supporterà SOLO ED ESCLUSIVAMENTE i miei formati proprietari, perchè? Leggerezza e semplicità, pensate che noia a dover caricare manualmente le varie risorse con tutte le "centinaia di migliaia di kilometri quadrati" di impostazioni senza contare che a parte texture e mesh cè molta altra roba che richiederà comunque un formato proprietario.
Si, ok, protezione, rapidità, etc. in fase di distribuzione ci sta.
Ma in fase di sviluppo ogni import sarà da fare a manella a riga di comando col converter o si autoreimporterà le risorse come in Unity?
Info: Immagine FB | G+ | A.D.O.N. Project | Videos:YT

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: NJine

Messaggio da Jak »

NeatWolf ha scritto:Ma in fase di sviluppo ogni import sarà da fare a manella a riga di comando col converter o si autoreimporterà le risorse come in Unity?
Non riesco a capire sta frase :fapensare:
Provo a dare un po di delucidazioni random su come è la mia idea(cambiabile in qualunque momento finchè non lavoro con l'ide quindi fate bene a domandare).
Il motore supporterà solo risorse fatte con il mio formato, in fase di sviluppo tramite l'ide alla fine potrete solo caricare risorse di vari formati i quali, al momento del caricamento, verranno anche automaticamente convertiti nel mio formato proprietario.
Fulcro di tutto il sistema per farvi comprendere tutto è che voi non maneggerete mai le risorse esterne manualmente in alcun modo, tutto sarà gestito tramite l'ide con la quale importerete/esporterete le varie risorse usando i miei importer, eccetto ovviamente i file veri e propri ma in genere ci metterete mano solo come file in se quindi importarli da un progetto ad un'altro, caricarle online ecc.

L'import in fase di sviluppo sarà fatto come quegli screen cioè "scegli il file da importare"->"fatto". Internamente salverà la risorsa con il mio formato nella directory del progetto. Niente menate a riga di comando anche se rilascerò delle dll per permettervi di fare i vostri importer personali accedendo ai dati della texture(tra l'altro ho già fatto le funzionalità per la modifica delle texture e lettura/scrittura dei pixel specifici(con aggiornamento solo alla fine di tutto il lavoro per le prestazioni) che vi darà pieno controllo sulle risorse ma chiaramente sarà lento in quanto queste funzionalità saranno usate da un linguaggio interpretato quindi sconsigliabile da usare ingame.

Internamente non sono proprio converter, semplicemente io ho la mia memoria della texture standard nel motore ed importo/esporto tra i vari formati basandomi su questi dati interni. Nulla mi vieta di poter far si che anche il motore importi direttamente le texture di vario genere(senza conversione->caricamento bensì caricamento diretto come faccio ora), la mia scelta di usare "solo" i formati proprietari è per semplificare il tutto all'utente(in quanto contiene tutte, o quasi, le informazioni sulle caratteristiche della risorsa e quindi evita codice extra al momento del caricamento ingame)ed evitare il più possibile eventuali errori/problemi in release.


Mi piacerebbe sentire che ne pensa baron di tutto ciò, almeno per quanto riguarda il mio sistema di gestione più che per l'idea di fare un motore di giochi.


EDIT: Forse ho capito che intendi neat. Non preoccuparti, niente converter esterni anche se ci saranno, ho intenzione di fare come game maker che dentro all'exe ha i suoi bei gmspr per gli sprite ma per caricarli crei un nuovo sprite schiacci "load" e scegli il file. Una cosa del genere :roll:
L'idea è quella della semplicità, non voglio che l'utente passi da un programma all'altro per gestire le risorse.
In fase di sviluppo avrai a disposizione tutti gli importer ed exporter che vuoi ma in release utilizzerò il mio formato e basta(utilizzabile anche in fase di sviluppo ovviamente)

La maggior parte delle risorse tuttavia non esistono(materiali, path, ecc) e quelle saranno caricabili/salvabili solo tramite formati proprietari ma comunque utilizzabili come banalissimi file(bè, sono file che ti aspettavi :lol: )
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
NeatWolf
Membro super
Messaggi: 684
Iscritto il: 03/08/2011, 12:09
Specialità: Programmazione
Località: Oristano, Sardegna, Italia
Contatta:

Re: NJine

Messaggio da NeatWolf »

Jak ha scritto:
NeatWolf ha scritto:Ma in fase di sviluppo ogni import sarà da fare a manella a riga di comando col converter o si autoreimporterà le risorse come in Unity?
Forse ho capito che intendi neat. Non preoccuparti, niente converter esterni anche se ci saranno, ho intenzione di fare come game maker che dentro all'exe ha i suoi bei gmspr per gli sprite ma per caricarli crei un nuovo sprite schiacci "load" e scegli il file. Una cosa del genere :roll:
L'idea è quella della semplicità, non voglio che l'utente passi da un programma all'altro per gestire le risorse.
In fase di sviluppo avrai a disposizione tutti gli importer ed exporter che vuoi ma in release utilizzerò il mio formato e basta(utilizzabile anche in fase di sviluppo ovviamente)
Bòn, l'idea dei 700 converter esterni mi terrorizzava :lol: Non sapevo se parlassi di converter(programma) o di Converter(classe). Unity ha una funzione utile di "update", anche "live", per cui ogni risorsa rimane associata al suo/ai suoi file sorgente, basta solo un tasto per aggiornare le risorse (operazione comune se stai testando/aggiornando le evoluzioni della stessa risorsa), te ne suggerivo subdolamente l'implementazione.
Info: Immagine FB | G+ | A.D.O.N. Project | Videos:YT

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: NJine

Messaggio da Jak »

Un pulsante di update automatico delle risorse?
Bella idea anche se non mi sembra molto utile nonchè è lento nel ricaricare tutto, tanto vale riaprire il progetto :roll:

Ho finito di collaudare il mio sistema di textures. Ho due progetti, uno che è l'njine vero e proprio e questo che è un castrone dove ci ho buttato alcuni file dell'njine per collaudarli in maniera visiva, cioè vedere il risultato vero e proprio, il vero progetto è tutto teorico con qualche cout alla console per il test ma ovviamente non ti mostra i risultato finale quindi mi è toccato fare il miniprogetto visuale.

Se volete provarlo...
http://depositfiles.com/files/sa8emzepa

Ha un po di files bmp, tga e njt(le mie textures) di esempio ma nulla vi vieta di farne altri.
All'avvio chiede di aprire un file, premendo control potete salvare un file mentre con shift ne caricate un'altro.
E' possibile ci sia qualche bug nella gestione delle finestre di richesta di save/load poichè le sto utilizzando con del codice un po buttato la giusto per provare.

Comunque scusa, effettivamente tra importer, exporter, converter, loader ecc non si capiva più niente :lol:
Ti assicuro che non ci sarà niente di diffile, sarà come usare questo programma, selezioni il file ed hai fatto tutto :sisisi:

Come potete notare i file njt sono leggeri come un png(anzi più leggeri in quanto mi pare abbiano meno header) e contengono varie informazioni sulla textures, supportano l'alfa e le animazioni e possono anche essere cubemap o altro(seppur non ho ancora fatto il codice nell'njine ma in teoria il formato file dovrebbe essere completo e rilevare/salvare tutto) quindi direi che è tutto di guadagnato :sisisi: .

Se vogliamo essere precisini il mio file contiene:
-header di 4 lettere NJTX(se aprite con blocco note le potete vedere) per essere sicuri che il file sia corretto.
-versione del file per updates futuri
-numero frames(o facce della cubemaps, possono essere interpretate in vari modi chiaramente)
-larghezza
-altezza
-grandezza dei dati compressi
-numero canali utilizzati in opengl(quindi non influiscono sul peso, sono robe interne ingame)
-tipo di texture(2d, 3d, cubemap, spheremap ecc)
-ripetizione della texture(attiva, disattiva, altre chicche)
-numero di mipmaps
-interpolazione
-utilizzo criptatura(un banale check, ovviamente non salvo la password nel file sennò addio protezione :roll: )
-dati del file(sempre compressi che male non fa)

Quindi cè proprio di tutto e di più :sisisi:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: NJine

Messaggio da Tizzio »

più leggeri di un png?
:| è compresso.

Jak
Admin
Messaggi: 12355
Iscritto il: 19/08/2009, 16:20
Specialità: Programmazione 3D
Uso: GM:Studio 2
Contatta:

Re: NJine

Messaggio da Jak »

Tizzio ha scritto:più leggeri di un png?
:| è compresso.
:hum:
Che intendi?
anche il mio formato è compresso, con la stessa identica compressione usata nei png(quindi abbastanza buona, molto veloce e lossless cioè senza perdita di dati).
E' praticamente un png con qualche chicca in più.

Il formato png ha l'header pesante poichè è flessibile e pensato per la retrocompatibilità(una nuova versione funge sui vecchi loader, ovviamente senza le nuove caratteristiche) mentre il mio è concentrato con l'header ciucciato al limite.

Tutti i miei file di risorse saranno compressi, anche fossero semplici script. :sisisi:
Time to feel, time to believe
Dare to see what may come of our future
Lift your head, broaden your gaze
Speak your mind and your thoughts they will follow you

Avatar utente
Tizzio
GMI Honor
Messaggi: 5836
Iscritto il: 29/06/2010, 23:43
Specialità: programmazione
Contatta:

Re: NJine

Messaggio da Tizzio »

allora...figo.

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 12 ospiti