Autore Topic: Consiglio su un progetto  (Letto 743 volte)

Offline Sasa

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Consiglio su un progetto
« il: 15 Maggio 2014, 21:22:21 CEST »
0
salve a tutti, ho in mente di creare un giochino di logica simile a quelli 100 doors, can you escape, 100 floor, insomma di quel genere con scenari dove ci sono oggetti da trovare, ovviamente con idee tutte innovative ed aggiunte interessanti..

ora ho un dubbio.. questo gioco potrei crearlo sia con libGdx (utilizzando gli sprite per le varie immagini) oppure creando una classe differente per ogni livello da utilizzare con un layout apposito per ogni classe, usando delle immagini situate nello schermo che funzioneranno come una sorta di button..

la prima dovrebbe essere migliore dal punto di vista delle prestazioni, però la seconda è molto più facile e veloce da realizzare.. voi che mi consigliate su come procedere?

Offline Twist3rEv0

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
    • Giulio Web
  • Dispositivo Android:
    Samsung Galaxy S4
  • Play Store ID:
    Giulio Giarratana
  • Sistema operativo:
    Windows 8.1, Xubuntu 14
Re:Consiglio su un progetto
« Risposta #1 il: 16 Maggio 2014, 12:26:24 CEST »
0
Ciao,
potrei forse consigliarti libgdx, sul web dicono che è un ottima soluzione per sviluppare giochi anche poco più complessi.  :-) Altrimenti potresti, come dici tu, utilizzare la seconda opzione ovvero quella della semplice "sovrapposizione" di immagini (da quello che ho capito io), tipo un immagine di un personaggio su un widget. Questa tecnica la usai assieme a dei colleghi universitari per sviluppare Risiko in Java (per PC ovviamente), un gioco richiesto come esercizio dal prof del corso di Programmazione. Mi ricordo che su questo gioco usai la grafica javax.swing e devo dirti che sinceramente è venuto carino. Quindi da una mia esperienza personale, un gioco fatto in questa maniera con android potrebbe essere una soluzione alternativa ma solo se è un gioco piccolo, se vuoi creare qualcosa di più complesso o a pagamento, meglio usare le libgdx a questo punto.  ;-)

Offline Sasa

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Consiglio su un progetto
« Risposta #2 il: 16 Maggio 2014, 16:21:01 CEST »
0
si esatto è una sorta di sovrapposizione, dove dell'immagini fanno da background mentre altre piccole immagini fanno da punti dove premere per risolvere gli enigmi..

il gioco non dovrebbe essere molto grande, anche perchè il gameplay sarà molto semplice.. e alcune ambientazioni e oggetti saranno simili tra loro.. il mio dubbio era per la lunghezza del gioco.. non vorrei che inserendo troppi livelli si abbiano effetti indesiderati col metodo della sovrapposizione, il problema del libGdx è che con l'idea che ho crearlo in libGdx mi richiede un bel pò di tempo in più..

Offline Twist3rEv0

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
    • Giulio Web
  • Dispositivo Android:
    Samsung Galaxy S4
  • Play Store ID:
    Giulio Giarratana
  • Sistema operativo:
    Windows 8.1, Xubuntu 14
Re:Consiglio su un progetto
« Risposta #3 il: 16 Maggio 2014, 18:41:40 CEST »
0
libGdx richiede sicuramente tempo dato che devi praticamente programmare tutto, dal sistema di input alle collision (da quello che so io).
Per la sovrapposizione, non dovresti incontrare problemi se man mano fai diversi livelli di gioco, magari ogni livello lo fai in una activity diversa e ogni volta che passi un livello, l'activity del livello precedente la "distruggi" col finish(). Con il risiko in java SE ogni JFrame lo distruggevo quando poi non mi serviva più, cosi almeno c'era un minore spreco di risorse.
Altrimenti si potrebbe usare anche una sola activity per ogni livello anche se questa soluzione risulta complessa perchè poi devi rendere le immagini dinamiche che cambiano ad ogni livello e devi anche occuparti di distruggerle quando poi non servono più.  ;-)

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Consiglio su un progetto
« Risposta #4 il: 17 Maggio 2014, 13:55:02 CEST »
0
Altrimenti si potrebbe usare anche una sola activity per ogni livello anche se questa soluzione risulta complessa perchè poi devi rendere le immagini dinamiche che cambiano ad ogni livello e devi anche occuparti di distruggerle quando poi non servono più.  ;-)
Questo è il modo corretto secondo me perché altrimenti ti ritrovi a gestire 100 activity.  :-(
Dovrebbe scriversi un semplice sistema per caricare il livello al volo, poi se ci sono dei bug edita solo quel file di livello.

Offline Twist3rEv0

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
    • Giulio Web
  • Dispositivo Android:
    Samsung Galaxy S4
  • Play Store ID:
    Giulio Giarratana
  • Sistema operativo:
    Windows 8.1, Xubuntu 14
Re:Consiglio su un progetto
« Risposta #5 il: 17 Maggio 2014, 17:24:20 CEST »
0
Questo è il modo corretto secondo me perché altrimenti ti ritrovi a gestire 100 activity.  :-(
Dovrebbe scriversi un semplice sistema per caricare il livello al volo, poi se ci sono dei bug edita solo quel file di livello.
Infatti come soluzione sarebbe ideale se deve andare a creare più di 50 livelli di gioco,  :-o però ha i suoi pro e contro. Come dici tu deve fare in modo di creare un sistema che carica ogni livello in modo veloce e che non va a prosciugare memoria e cpu, non è abbastanza semplice ma neanche tanto difficile. Un'idea sarebbe quella di creare una classe che gestisce i livelli del gioco, poi ogni livello del gioco è un'estensione di questa classe. In questo modo dovrebbe non incontrare molti bug e sarebbe facile la modifica del codice.  ;-)

Offline Sasa

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • Mostra profilo
Re:Consiglio su un progetto
« Risposta #6 il: 17 Maggio 2014, 20:04:13 CEST »
0
esatto.. quello che avevo in mente era di creare una classe registro dove si collegano tutti i livelli, e con questa classe oltre a gestire i livelli salverà e caricherà i dati di gioco.. poi ora che mi hai fatto pensare al finish chiudendo le activity che non servono più non dovrebbe dare problemi..
l'unica cosa che devo rivere è il salvataggio e il caricamento dei livelli, visto che ancora non ho trovato una guidaXD

Offline Twist3rEv0

  • Nuovo arrivato
  • *
  • Post: 44
  • Respect: 0
    • Mostra profilo
    • Giulio Web
  • Dispositivo Android:
    Samsung Galaxy S4
  • Play Store ID:
    Giulio Giarratana
  • Sistema operativo:
    Windows 8.1, Xubuntu 14
Re:Consiglio su un progetto
« Risposta #7 il: 18 Maggio 2014, 14:56:46 CEST »
0

l'unica cosa che devo rivere è il salvataggio e il caricamento dei livelli, visto che ancora non ho trovato una guidaXD
Se hai letto il libro "Android 3 guida per lo sviluppatore" dovresti aver incontrato un capitolo dove parlava proprio su come salvare determinati dati e impostazioni dell'applicazione, senza intasare la sd card di file esterni.  :-) Comunque, con questa tecnica si possono anche salvare le impostazioni dell'app (le classiche opzioni) e caricarli automaticamente ad ogni esecuzione.
Appena trovo qualche guida, te la linko  ;-)
« Ultima modifica: 18 Maggio 2014, 14:58:24 CEST da Twist3rEv0 »

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Consiglio su un progetto
« Risposta #8 il: 19 Maggio 2014, 08:43:54 CEST »
0
Se l'idea è quella di fare una cosa "semplice" si possono utilizzare dei trucchi.
Esempio... ogni livello ha uno sfondo.
Allora nell'apk ci infili i files sfondo_1 sfondo_2... sfondo_100.
Se il file non esiste è l'ultimo livello.

Similarmente ci infili dei files per gli elementi elemento_1_1 elemento_1_2 ... elemento 1_5
Quando non hai più elementi gli elementi di quel livello sono finiti.

Per il posizionamento fai dei file xml/json/test chiamati proprieta_1_1 poprieta_1_2... proprieta_1_5 e ci metti quello che vuoi, fondamentalmente il posizionamento dell'oggetto e se ci sono dati che possono servirti a livello di gioco metti pure quelli.

Se li metti in assets puoi addirittura metterli tutti sotto una cartella. Quindi avrai una cartella level1 con dentro
sfondo
elemento_1
elemento_2
properieta_1
properieta_2
...

E altre cartelle level2 level3.. level100.

Per implementare la logica, considerando che xml o json non sono linguaggi di programmazione è possibile che tu debba implementarti la logica del livello a mano. Ma va beh meglio fare 100 metodi, uno per ogni livello, che 100 activity.

 :-)