[Bennu] Come strutturare un programma ?

Spazio dedicato al linguaggio BennuGD per programmare videogiochi sulle nostre openconsole
Post Reply
User avatar
gigios
Newser OC.it
Newser OC.it
Posts: 851
Joined: 4 May 2011, 9:08
Console open: Wiz; Caanoo
Location: Lombardia

[Bennu] Come strutturare un programma ?

Post by gigios »

Essendo alle prime armi con Bennu vorrei dei consigli da persone sicuramente più esperte di me nell'uso di Bennu ;)

Premessa, scusate la lunghezza del post :oops:

Attualmente le prove da me effettuate sono tutte legate al progettino TextBinaryClock partito da un'idea di Zip
Ora la mia gestione non prevede processi 'paralleli' che normalmente vengono utilizzati in Bennu ma si compone del solo processo principale, il quale si occupa di chiamare eventuali funzioni per elaborare dati.
La mia intenzione, sempre nell'ottica di capire come utilizzare meglio Bennu, è quella di aggiungere un paginetta di informazioni e per far questo, nello stesso 'stile' attuale non è un problema ma vorrei provare a capire come meglio strutturare il tutto in ottica 'Bennu'.

Praticamente vorrei capire come normalmente un progetto medio può essere strutturato, ovvero quale sia la migliore struttura di un programma anche semplice.

Io da quello che ho capito, mi aspetto che ci sia il processo principale che gestisca l'esecuzione dei sotto processi, e i processi secondari eseguono il 'lavoro'.
Guardando alcuni esempi in Bennu ho però visto che spesso il processo principale serve solo ad avviare un processo secondario, il quale poi può terminare, ad esempio avviano un altro processo, per poi essere ricaricato al termine del processo chiamato, praticamente una specie di ping pong tra processi.

Riassumendo, nel caso del progetto TextBinaryClock in cui lo scopo principale è solo visualizzare l'ora, le strade da poter percorrere, o meglio quelle che credo d'aver capito io, sono sostanzialmente 3.
  1. Continuare sulla strada attuale (ma non mi permetterebbe di apprendere nuove funzionalità di Bennu :P)
  2. Avere il processo main in loop infinito che si occupa di controllare una variabile 'fase' per avviare/chiudere processi secondari (ho il dubbio se deve gestire anche i tasti adibiti al cambio di questa variabile fase). Questo forse è la soluzione leggermente più complessa ma forse più 'ordinata'.
  3. Gestire il main come semplice avvio del processo principale il quale controlla i tasti e avvia il processo secondario (pagina info) chiudendosi. La pagina info a sua volta riavvia il processo principale alla sua chiusura. Sicuramente questa è forse la soluzione più semplice di uso dei processi non paralleli.
Ora chiedo a voi esperti :mrgreen:, la mia lista è corretta, ed eventualmente quale è la strada 'opportuna' da utilizzare anche per futuri progetti, o ho preso dei grossi 'abbagli'?
Image
User avatar
Zip
Site Admin
Posts: 3101
Joined: 3 May 2011, 21:03
Console open: Attuali Caanoo , Wiz, dingoo a320 (possedute Wiz, s7100B, s5110, s7300B, OpenPandora)
Location: Sicilia
Contact:

Re: [Bennu] Come strutturare un programma ?

Post by Zip »

io farei cosi (premetto che sicuramente una sistemazione piu ordinata e performante sicuramente ci sara)

Code: Select all

processo principale
Begin
     processo orologio();
     loop
       if key pressed "start"
        processo info();
        until Premuto=1
       end
     end
end


processoorologio
begin
cose che permettono visualizzare ora
end

processo info
begin
putscreen eccetera
end
User avatar
gigios
Newser OC.it
Newser OC.it
Posts: 851
Joined: 4 May 2011, 9:08
Console open: Wiz; Caanoo
Location: Lombardia

Re: [Bennu] Come strutturare un programma ?

Post by gigios »

Ciao Zip ;)
Io ho già implementato una soluzione simile alla tua, salvo che non controllo che il tasto rimanga premuto ma attendo proprio che venga premuto un altro tasto per tornare alla pagina 'principale'.

Tutto funziona, salvo ora mettere correttamente i testi da visualizzare :P , solo che volevo capire anche nell'ottica di un progetto più complesso se esiste una 'metodologia' o se di volta in volta ci si inventa nuove alternative :lol:

Se riesco cerco di sistemare il tutto questa sera x rilasciare questa nuova versione e poi eventualmente ci si organizza per vedere come strutturare il seguito 8-)

Nel frattempo se altri hanno voglia di condividere le loro esperienze su come organizzare un programma in Bennu, penso che possa servire come spunto di partenza per apprendere cose nuove o alternative sull'uso di Bennu.
Image
User avatar
Zip
Site Admin
Posts: 3101
Joined: 3 May 2011, 21:03
Console open: Attuali Caanoo , Wiz, dingoo a320 (possedute Wiz, s7100B, s5110, s7300B, OpenPandora)
Location: Sicilia
Contact:

Re: [Bennu] Come strutturare un programma ?

Post by Zip »

io in quel poco che ho fatto ho strutturato sempre tutto cosi
per chiudere processi su usa "break;"

per Bomb john ho strutturato 1 processo per il menu, che a sua volta apriva processi diversi a seconda si quale scelto, esempio se fai start parte Livello1();
dentro livello1 ci sono tutti i processi dei personaggi tipo BJ(); nemico(); eccetera
e credo per i platform si debba fare cosi, visto che anche negli esempi addirittura le piattaforme mobili (quelle che salgono e scendono) sono considerate processi..
penso che consumi molta memoria un processo con tanti processi dentro bisognerebbe trovare un altra soluzione se c'e.

(ho appena spedito la wiz lo provero su windows ;P)
User avatar
gigios
Newser OC.it
Newser OC.it
Posts: 851
Joined: 4 May 2011, 9:08
Console open: Wiz; Caanoo
Location: Lombardia

Re: [Bennu] Come strutturare un programma ?

Post by gigios »

Come sempre il 'confronto' con altre persone può essere costruttivo come in questo caso ;)
(ho appena spedito la wiz lo provero su windows ;P)
Nooooo :shock: !!! Mi hai lasciato solo :cry:
Ora a chi potrò chiedere sostegno in chat di notte :geek: :?:

Spero ti arrivi presto il tuo nuovo acquisto, se l'hai già fatto ;)

Edit:
Normalmente per lavoro utilizzo uno strumento per gestire le modifiche apportate ai sorgenti, utile se dopo alcune modifiche non funziona più nulla si può tornare indietro ad una versione precedente (ovviamente tutto si può fare anche con semplici file zip).
Il sistema utilizzato è SVN tramite l'utility TortoiseSVN, utility free che si integra con Esplora Risorse, e che permette di fare "Check Out" (prelievo da un server, che può essere anche sul PC locale, dei sorgenti), "Commit" (operazione opposta al Check Out, ovvero salvare nel repository le modifiche apportate al sorgente), etc.
Nell'ottica di condividere i sorgenti per lavorare in più persone questo strumento potrebbe essere utile, in internet ho trovato un servizio, sempre gratuito, che permette la creazione di repositories senza limitazioni (o almeno attualmente non le ho trovate).
Prova a dargli un'occhio se può essere utile, ovviamente per progetti semplici si può sempre lavorare con i files zip ;)

Free & Private Subversion Hosting
TortoiseSVN

Progetto TextBinaryClock (attualmente è una prova, versione 0.6.1)

Come vedi ho provato a creare il repository per il progettino TextBinaryClock (al momento impostato in lettura per tutto ma in scrittura solo da me).
Normalmente SVN viene suddiviso in 3 sottocartelle:
Trunk = Cartella normale di lavoro dove normalmente si continua a salvare le modifiche
Tags = Cartella dove normalmente vanno messe le versioni rilasciate
Branches = Cartella simile al trunk dove normalmente si effettuano modifiche/correzioni su vecchie versioni.

Forse al momento è ancora troppo ma nell'ottica di un eventuale progetto condiviso da più elementi del forum potrebbe essere utile.
Last edited by gigios on 14 Jun 2011, 14:57, edited 1 time in total.
Image
User avatar
Zip
Site Admin
Posts: 3101
Joined: 3 May 2011, 21:03
Console open: Attuali Caanoo , Wiz, dingoo a320 (possedute Wiz, s7100B, s5110, s7300B, OpenPandora)
Location: Sicilia
Contact:

Re: [Bennu] Come strutturare un programma ?

Post by Zip »

vabbe rzz ha ancora la wiz ;)
e in chat mi trovi lo stesso =P solo che non posso testare nulla per ora
ancora non ho acquistato niente altro, vedo se riesco a trovare un occasione di un caanoo nel frattempo finisco di raccogliere i fondi ;)
User avatar
RZZ
Moderatore Supremo
Posts: 710
Joined: 4 May 2011, 20:11
Location: Udine

Re: [Bennu] Come strutturare un programma ?

Post by RZZ »

io nel mio gioco ho faatto così

il main ha un loop che fa partire il menu.
una volta usciti dal menu parte il livello.
il livello fa partire tutti i processi (nemici, fondali, proiettili)
il main rimane in esecuzione e si occupa di controllare le variabili che portano alla fine del livello, in pratica numero di vite. quando le vite vanno a zero il loop ricomincia.
Se sia il modo migliore non lo so , mai il ragionamento mi sembra lineare e funzionante

@ Zip: posso esprimere il mio dissenso alla vendita del Wiz ? :D
ormai anche io non lo uso più in favore del Caanoo, ma non è un banale gameboy, sono console "rare" mi dispiacerebbe venderla.
Image
User avatar
gigios
Newser OC.it
Newser OC.it
Posts: 851
Joined: 4 May 2011, 9:08
Console open: Wiz; Caanoo
Location: Lombardia

Re: [Bennu] Come strutturare un programma ?

Post by gigios »

Sicuramente il ragionamento è lineare.

Come accennavo all'inizio ci sono sicuramente varie metodologie per giungere alla stessa conclusione, volevo solo capire quale è eventualmente la più diffusa ;)
Image
User avatar
Zip
Site Admin
Posts: 3101
Joined: 3 May 2011, 21:03
Console open: Attuali Caanoo , Wiz, dingoo a320 (possedute Wiz, s7100B, s5110, s7300B, OpenPandora)
Location: Sicilia
Contact:

Re: [Bennu] Come strutturare un programma ?

Post by Zip »

OT
@ Zip: posso esprimere il mio dissenso alla vendita del Wiz ? :D
ormai anche io non lo uso più in favore del Caanoo, ma non è un banale gameboy, sono console "rare" mi dispiacerebbe venderla.
non ho cash non sono ancora riuscito a trovare un lavoro estivo e volevo il caanoo questo è l'unico metodo :(
ormai non possiamo fare piu niente e stata spedita ;)
fine OT
Farox
Cavaliere OC.it
Cavaliere OC.it
Posts: 812
Joined: 4 May 2011, 20:48
Console open: GP2X-F200 bianca, Caanoo (bianca),
Pandora (First Batch 256MB RAM) nera,
JXD S7300B nera, Rpi model B
Location: Umbria
Contact:

Re: [Bennu] Come strutturare un programma ?

Post by Farox »

Off Topic
RZZ wrote:io nel mio gioco ho faatto così

@ Zip: posso esprimere il mio dissenso alla vendita del Wiz ? :D
ormai anche io non lo uso più in favore del Caanoo, ma non è un banale gameboy, sono console "rare" mi dispiacerebbe venderla.
Anche per me è cosi con la mia F200 ...cè l'ho da piu di tre anni ormai e ogni tanto la accendo ma oramai le mie attenzioni vanno ad altro (Pandora.. :mrgreen:) ...e cmq per il momento non mi sogno neanche di venderla.
Addirittura potrei tentare ancora qualche port...sicuramente in momenti (lavorativi ) piu calmi cioè dopo l'estate/autunno.
Image
Post Reply