Mon premier jeu !

50 views
Skip to first unread message

manatlan

unread,
Nov 24, 2009, 8:06:28 AM11/24/09
to freebox-elixir
Voilà, c'est fait à la hache, mais c'est fait ...

Et apparemment, je suis le premier ...

Je vous laisse deviner le type de jeu. C'est disponible ici :

http://www.manatlan.com/files/simon.edj

Il suffit de le déposer tel quel sur le hdd de la freebox, puis de le
selectionner pour le lancer.
C'est très simple, pas besoin de doc ;-)

Ce soir, je le sonoriserai, et je changerai le background horrible ;-)

PS : j'ai pas testé la finale sur la freebox (cause elle était
squatté), donc faut être indulgent ;-)

manatlan

unread,
Nov 24, 2009, 12:27:00 PM11/24/09
to freebox-elixir
Vous auriez pu me dire qu'il y avait un bug lors de la saisie des
touches ;-)
c'est maintenant corrigé, et c'est jouable ... je vais aller faire
qques parties dans mon sofa ;-)

Vincent Barrier

unread,
Nov 25, 2009, 5:39:06 AM11/25/09
to freebox...@googlegroups.com
http://www.universfreebox.com/article9724.html ;=)

Vincent Barrier
Univers Freebox.

2009/11/24 manatlan <mana...@gmail.com>:

manatlan

unread,
Nov 25, 2009, 5:53:43 AM11/25/09
to freebox-elixir
> http://www.universfreebox.com/article9724.html;=)
> Vincent Barrier
> Univers Freebox.

Merci ! c'est sympa ...
ça lui donne effectivement un peu plus de visibilité ;-)
(dommage que la version sonorisée déconne encore actuellement ;-( )

Damien

unread,
Nov 25, 2009, 6:41:23 AM11/25/09
to freebox-elixir
Salut,
Super !!
Peux-tu faire un tutorial de comment réaliser un jeu ?
En se basant sur ton "Simon" comme modèle ?
Merci

Romain Amaranthe

unread,
Nov 25, 2009, 8:20:46 AM11/25/09
to freebox-elixir
Salut,

Comment puis je faire pour l'essayer sur pc? Avec edje_viewer?

manatlan

unread,
Nov 25, 2009, 8:38:48 AM11/25/09
to freebox-elixir
Une version sonorisée (quand même plus pratique, pour un simon)
http://www.manatlan.com/files/simon.zip

> Peux-tu faire un tutorial de comment réaliser un jeu ?
> En se basant sur ton "Simon" comme modèle ?

Malheureusement, il n'y a pas grand chose de plus à dire que dans le
tutorial officiel (http://elixir.freebox.fr/?section=documentation)
au lieu d'avoir un carré qui bouge, j'ai 4 carrés fixes
avec un simple mask (image trouée) par dessus (donc dans un layer
supérieur) pour donner l'illusion du classique simon.
Après, c'est peu ou prou la même gestion de touches que dans
simple.js ...
et une cinématique "joue/rejoue" (organisé par des timers et des
switchs).
Aussi, je me suis inspiré des exemples de jeux :
http://code.google.com/p/freebox-elixir/source/browse/#svn/trunk/jeux,
pour y tirer la façon de builder un edj (en mattant les makefiles),
pour y prendre la gestion du sons, ainsi que l'affichage de textes/
images (via les edc).
(J'ai même pu prendre du code JS de ma version web http://fr.ibraining.com/simon/,
puisque elixir se code en js)

J'ai un peu honte même, du code js ... il y aurait pas mal de boulot
pour le rendre présentable ;-) ... sinon, ce serait déjà fait.

Mais de là à faire un tutoriel sur "comment réaliser un jeu" ... j'ai
pas cette prétention ;-)

Cependant, j'ai déjà pratiquer du SDL (via pygame), et suis donc un
peu habitué à organiser du code de jeu. Mais bon la base de
"simple.js" est déjà une bonne base.

manatlan

unread,
Nov 25, 2009, 8:40:49 AM11/25/09
to freebox-elixir
> Comment puis je faire pour l'essayer sur pc? Avec edje_viewer?

Si tu es sous linux, et que tu as installé elixir (et tout qui va
bien)

tu lances, en ligne de commande : "elixir simon.edj" ... et ça se
lance ...
(note que j'ai implémenter une façon d'y jouer sur PC, en utilisant
les touches Z,E,S & D ... ceci était surtout fait pour tester sur la
machine de dev)

Cedric BAIL

unread,
Nov 25, 2009, 8:50:49 AM11/25/09
to freebox...@googlegroups.com
2009/11/25 manatlan <mana...@gmail.com>:

J'ai pris un peu le temps de regarder le code de ton exemple. Tu
devrais regarder un peu du cote de edje pour toute ton animation, car
franchement tu as complexifie pas mal ton code javascript.

Avec edje, tu pourrais utiliser edje_object_signal_emit pour
declencher le debut de l'animation et enlever tout le code lie a ca de
ton javascript (Ca enlevera aussi une bonne partie du code pour gerer
la creation des objets). Si j'ai le temps cet apres midi, je te
fairais un exemple de edje qui fait ca.
--
Cedric BAIL

Romain Amaranthe

unread,
Nov 25, 2009, 9:06:32 AM11/25/09
to freebox-elixir
> J'ai pris un peu le temps de regarder le code de ton exemple. Tu
> devrais regarder un peu du cote de edje pour toute ton animation, car
> franchement tu as complexifie pas mal ton code javascript.

Comment as tu fait pour retrouver les sources js? Avec edje_decc, je
ne retrouve que le .edc.

manatlan

unread,
Nov 25, 2009, 9:20:05 AM11/25/09
to freebox-elixir
avec edge_decc, pareil, je n'ai eu que le edc, le bg.png et un
"build.sh" (qui recompile le edj ? cependant si y a pas le js, je me
demande comment ça peut marcher ?!!)

manatlan

unread,
Nov 25, 2009, 9:21:20 AM11/25/09
to freebox-elixir

> Avec edje, tu pourrais utiliser edje_object_signal_emit pour
> declencher le debut de l'animation et enlever tout le code lie a ca de
> ton javascript (Ca enlevera aussi une bonne partie du code pour gerer
> la creation des objets). Si j'ai le temps cet apres midi, je te
> fairais un exemple de edje qui fait ca.

ah oui, serait très curieux de voir ça ...
(j'ai vu des edje_object_signal_emit dans les exemples de jeux, mais
j'ai pas tout suivi)

Cedric BAIL

unread,
Nov 25, 2009, 10:39:13 AM11/25/09
to freebox...@googlegroups.com
2009/11/25 Romain Amaranthe <rhu...@hotmail.com>:

eet -x simon.edj "elixir/main" simon.js

--
Cedric BAIL

osveta

unread,
Nov 25, 2009, 2:03:30 PM11/25/09
to freebox-elixir
Simplement bravo et merci !

pas que je sois un fan de simon, mais par le fait que certain commence
à bosser pour nous autres utilisateurs mais néanmoins Geek .
De plus à une époque lointaine je programmais sous basic (cpc 464 en
1988)

Par contre j ai une machine sous ubuntu je vais tester, prendre un
programme et le bidouiller....aie de longues soirées à prévoir!

Cedric BAIL

unread,
Nov 25, 2009, 4:14:21 PM11/25/09
to freebox...@googlegroups.com
2009/11/25 manatlan <mana...@gmail.com>:

Alors juste quelque commentaire un peu globaux.

Tout d'abord les background, meme avec de l'alpha, il vaut mieux les
declarer en LOSSY, ca evite que le fichier edj genere n'est une taille
colossal. En gros, utiliser la directive COMP quand c'est quelque
chose qui va attirer le regard, ca vaut le coup.

Ensuite, il vaut mieux gerer un maximum d'objet et d'animation
(d'effet) dans le edje. Ca limite le nombre de calcul dans le JS,
diminue le temps d'initialisation et en plus ca permet de plus
facilement changer le design de l'appli. Si tu veux voir la
difference, j'ai mis en fichier joinds une serie d'image que tu peux
utiliser pour changer le look de ton appli sans toucher a une seule
ligne de ton JS. L'idee derriere cette technique, c'est qu'on peut
proposer un theme plus ou moins complexe en fonction de la machine sur
laquelle tourne elixir sans redevelopper la logique du jeu.

J'ai aussi diminue la zone ou se trouvait le texte. Car a chaque fois
que tu le changes, tu vas declencher une mise a jour de tous les
objets couverts. En mettant une zone qui couvre tout l'ecran, tu vas
forcer une mise a jour de tout l'ecran alors que ce n'est pas
necessaire. Bon ici, ca n'impact pas vraiment les perfs, mais dans un
jeu plus complexe, ca vaut le coup :-)

Si tu veux comprendre l'enchainement des signaux edje, j'ai laisse un
appel a edje_object_signal_callback_add en commentaire. Enfin si tu
veux voir comment le framerate impacte les animations edje, tu peux
jouer avec ecore_animator_frametime_set (Les animators sont des
especes de timer qui arrivent tous au meme moment a interval regulier,
ce qui est pratique quand on veut que toutes les animations soient
synchronise :-) ).

Voila, c'est un truc vite fait. N'hesite pas a me poser des questions.
--
Cedric BAIL

background.jpg
bleu.png
jaune.png
rouge.png
vert.png
Simon.edc
Simon.js

manatlan

unread,
Nov 25, 2009, 5:56:51 PM11/25/09
to freebox-elixir
> > ah oui, serait très curieux de voir ça ...
> > (j'ai vu des edje_object_signal_emit dans les exemples de jeux, mais
> > j'ai pas tout suivi)
>
> Alors juste quelque commentaire un peu globaux.

déjà, merci à toi d'avoir pris tout ce temps pour me faire de l' "aide
sur mesure/adapté".
pour "ma défense" , il est vrai que pour releaser un simon vite
fait ... j'ai de loin pas plonger dans les doc, et pu appercevoir les
subtilités d'edge. Je n'ai fait que du hack ...
maintenant, grace à ton post, je vois/comprends bien les subtilités
d'edge, et autres briques d'enlightment.

> Tout d'abord les background, meme avec de l'alpha, il vaut mieux les
> declarer en LOSSY, ca evite que le fichier edj genere n'est une taille
> colossal. En gros, utiliser la directive COMP quand c'est quelque
> chose qui va attirer le regard, ca vaut le coup.

en fait, la directive LOSSY est là pour compresser (lossy avec
perte ?)
moi j'avais pris COMP, car c'est ce que je trouvais en général dans
les exemples ;-)
en plus, ça m'aurait permis de consommer moins de BP sur mon site (un
gae free) ... (1go today) ;-)

> Ensuite, il vaut mieux gerer un maximum d'objet et d'animation
> (d'effet) dans le edje. Ca limite le nombre de calcul dans le JS,
> diminue le temps d'initialisation et en plus ca permet de plus
> facilement changer le design de l'appli. Si tu veux voir la
> difference, j'ai mis en fichier joinds une serie d'image que tu peux
> utiliser pour changer le look de ton appli sans toucher a une seule
> ligne de ton JS. L'idee derriere cette technique, c'est qu'on peut
> proposer un theme plus ou moins complexe en fonction de la machine sur
> laquelle tourne elixir sans redevelopper la logique du jeu.

très interessant, je vais plonger dans ton edc demain pour
comprendre ...
là, je l'ai juste fait tourner localement, et effectivement les fade-
in/out le font carrément.
tout en coûtant moins cher au js. sympa !
le principe de séparation forme/contenu est bien vu.

> J'ai aussi diminue la zone ou se trouvait le texte. Car a chaque fois
> que tu le changes, tu vas declencher une mise a jour de tous les
> objets couverts. En mettant une zone qui couvre tout l'ecran, tu vas
> forcer une mise a jour de tout l'ecran alors que ce n'est pas
> necessaire. Bon ici, ca n'impact pas vraiment les perfs, mais dans un
> jeu plus complexe, ca vaut le coup :-)

c'est clair ...
pour ma part, je n'avais même pas chercher à comprendre comment
définir une zone qui n'englobait pas la totalité.
j'avais juste jouer avec les params pour que ça s'affiche où je
voulais.

> Si tu veux comprendre l'enchainement des signaux edje, j'ai laisse un
> appel a edje_object_signal_callback_add en commentaire. Enfin si tu
> veux voir comment le framerate impacte les animations edje, tu peux
> jouer avec ecore_animator_frametime_set (Les animators sont des
> especes de timer qui arrivent tous au meme moment a interval regulier,
> ce qui est pratique quand on veut que toutes les animations soient
> synchronise :-) ).

je jette un coup d'oeuil demain.

> Voila, c'est un truc vite fait. N'hesite pas a me poser des questions.

les images que tu as fournie ... tu ne les a quand même pas fait pour
moi ? (ce serait vraiment trop du sur mesure)
(peut être, préparez vous un simon ? (no soucis))
je tenterai bien, un simon, avec ces ressources ... mais bon ... ce
serait pas vraiment self-made ... ça serait pas pareil.
(et niveau légalité ? ... c'est des ressources "free.fr")

encore merci

> Cedric BAIL
>
>  background.jpg
> 98KViewDownload
>
>  bleu.png
> 49KViewDownload
>
>  jaune.png
> 43KViewDownload
>
>  rouge.png
> 37KViewDownload
>
>  vert.png
> 40KViewDownload
>
>  Simon.edc
> 4KViewDownload
>
>  Simon.js
> 7KViewDownload

Cedric BAIL

unread,
Nov 26, 2009, 4:34:10 AM11/26/09
to freebox...@googlegroups.com
2009/11/25 manatlan <mana...@gmail.com>:

>> > ah oui, serait très curieux de voir ça ...
>> > (j'ai vu des edje_object_signal_emit dans les exemples de jeux, mais
>> > j'ai pas tout suivi)
>>
>> Alors juste quelque commentaire un peu globaux.
>
> déjà, merci à toi d'avoir pris tout ce temps pour me faire de l' "aide
> sur mesure/adapté".
> pour "ma défense" , il est vrai que pour releaser un simon vite
> fait ... j'ai de loin pas plonger dans les doc, et pu appercevoir les
> subtilités d'edge. Je n'ai fait que du hack ...
> maintenant, grace à ton post, je vois/comprends bien les subtilités
> d'edge, et autres briques d'enlightment.

Oula, pas besoin de te "defendre". C'est plutot sympa d'avoir un premier jeu.

>> Tout d'abord les background, meme avec de l'alpha, il vaut mieux les
>> declarer en LOSSY, ca evite que le fichier edj genere n'est une taille
>> colossal. En gros, utiliser la directive COMP quand c'est quelque
>> chose qui va attirer le regard, ca vaut le coup.
>
> en fait, la directive LOSSY est là pour compresser (lossy avec
> perte ?)

Oui, c'est ca. A noter, que le LOSSY de edje gere la composante alpha.

> moi j'avais pris COMP, car c'est ce que je trouvais en général dans
> les exemples ;-)
> en plus, ça m'aurait permis de consommer moins de BP sur mon site (un
> gae free) ... (1go today) ;-)

Clairement :-)

Oula, non, je suis trop mauvais pour faire le moindre dessin :-) C'est
notre infographiste qui m'avait fait ca en prevision de la sortie. Car
ca faisait partie des petits sympa qui pouvait etre fait rapidement et
facilement. Ca peut aussi etre une bonne source pour un tutorial
simple. D'ailleur pour ceux que ca interresse, j'ai aussi les
graphismes d'un mastermind.

> (peut être, préparez vous un simon ? (no soucis))

Nop. Je prepare autre chose :-)

> je tenterai bien, un simon, avec ces ressources ... mais bon ... ce
> serait pas vraiment self-made ... ça serait pas pareil.
> (et niveau légalité ? ... c'est des ressources "free.fr")

Yep, c'est du fait maison. Tu peux en faire ce que tu veux.
--
Cedric BAIL

lineplus

unread,
Jan 6, 2010, 3:04:21 PM1/6/10
to freebox-elixir
Bonjour,
Quand je fais elixir simon.edj, j'ai ça :

Registering loader: 'edje'.
Registering loader: 'text'.
Registering loader: 'eet'.
Registering security: 'cmp'.
Unregistering security: 'cmp'.
Registering security: 'remote'.
Unregistering security: 'remote'.
Registering security: 'let'.
Registering bindings: 'ecore-con'.
Registering bindings: 'ecore-job'.
Registering bindings: 'evas'.
Registering bindings: 'file'.
Registering bindings: 'ecore'.
Registering bindings: 'ecore-evas'.
Registering bindings: 'dir'.
Registering bindings: 'edje'.
Registering bindings: 'elixir'.
Registering bindings: 'eet'.
looking for bindings: elixir => 0xa7d0e0.
chdir to `.`.
Trying: 'eet' with 'simon.edj' [1 < 1 < 3].
sign init
Trying compiled version.
Failed.
looking for bindings: evas => 0x97c310.
looking for bindings: ecore => 0x683160.
looking for bindings: ecore-evas => 0x6de1e0.
looking for bindings: edje => 0xa54a4c.
looking for bindings: mix => (nil).

Je dois réinstaller Elixir ? Ou j'ai des libs pas installées ?

Merci d'avance,
Lineplus.

lineplus

unread,
Jan 7, 2010, 11:57:33 AM1/7/10
to freebox-elixir
J'ai installé le paquet de dev de SDL Mixer et maintenant j'ai une
erreur en plus qui s'affiche :

/home/marin/Bureau/simon/simon.edj:285: ReferenceError: Mix_OpenAudio
is not defined

lineplus

unread,
Jan 7, 2010, 11:57:42 AM1/7/10
to freebox-elixir

lineplus

unread,
Jan 7, 2010, 12:02:33 PM1/7/10
to freebox-elixir
Ah, la version sans son marche, ça vient donc de mixer. Je dois
réinstaller Elixir pour qu'il prenne en compte mixer ?

Cedric BAIL

unread,
Jan 7, 2010, 12:05:08 PM1/7/10
to freebox...@googlegroups.com
2010/1/7 lineplus <marin...@gmail.com>:

> Ah, la version sans son marche, ça vient donc de mixer. Je dois
> réinstaller Elixir pour qu'il prenne en compte mixer ?

Si tu as installe SDL_Mixer apres Elixir. Oui, il faut recompiler
elixir pour qu'il detecte et installe le binding SDL_Mixer.
--
Cedric BAIL

lineplus

unread,
Jan 7, 2010, 12:39:39 PM1/7/10
to freebox-elixir
Merci, j'ai installé SQLite au passage, ensuite, j'ai téléchargé
Elixir, le ./configure ne signalait rien de mauvais, mais quand j'ai
fait le make, j'ai eu droit à quelques jolies insultes du
compilateur :

ecore_module.c: In function ‘elixir_ecore_thread_run’:
ecore_module.c:908: error: too few arguments to function
‘ecore_thread_run’
make[5]: *** [ecore_module.lo] Erreur 1
make[5]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src/
modules/bindings/ecore »
make[4]: *** [all-recursive] Erreur 1
make[4]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src/
modules/bindings »
make[3]: *** [all-recursive] Erreur 1
make[3]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src/
modules »
make[2]: *** [all-recursive] Erreur 1
make[2]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24/src
»
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /home/marin/Bureau/elixir-0.1.24 »
make: *** [all] Erreur 2

Cedric BAIL

unread,
Jan 7, 2010, 12:51:46 PM1/7/10
to freebox...@googlegroups.com
2010/1/7 lineplus <marin...@gmail.com>:

Ta version des EFL est soit trop recente, soit trop vieille par
rapport a ta version des EFL. Si tu as recupere les EFL sur le SVN,
alors utiliser la version SVN de elixir. Si tu as recupere les
packages sur la page google, alors utilises la versions package de
elixir.
--
Cedric BAIL

lineplus

unread,
Jan 7, 2010, 1:42:33 PM1/7/10
to freebox-elixir
Merci, ça marche :) .
Reply all
Reply to author
Forward
0 new messages