Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 24/04/2010, à 16:02

doudoulolita

Faire une animation sur la création de jeux vidéo libres

Dans le topic Création de jeu vidéo libre - Appel à candidatures, j'ai découvert le créateur de jeu de Ultimate Smash Friends, Tshirtman.

BiX_smashdown3.png

Voici ce que je lui ai écrit:

doudoulolita a écrit :

Je cherche un jeu que notre Espace Public Numérique pourrait proposer aux jeunes sur Linux, voire les inciter à participer au projet de développement. smile

Mais j'ai du mal à installer Ultimate smash friends chez moi sur Ubuntu Studio Jaunty... mad

Le lien du paquet en .deb sur http://usf.tuxfamily.org/wiki/Download#Requirements ne fonctionne pas.

J'ai finalement trouvé le paquet en .deb sur cette page en suivant le lien indiqué au bas de la précédente (ouf !).
Mais à l'install avec Gdebi, il m'indique qu'il manque python-support.
Pourtant, j'ai vérifié que j'avais python (version 2.6, faut-il la version 2.3 ?) et j'ai installé python-pygame juste avant.

python-support est bien installé (j'ai vérifié dans synaptic), alors ?

C'est le genre de problème qui n'incitera pas les jeunes à se mettre sous Linux, ça, le moindre effort leur est insupportable, les pauvres chéris... cool

La page d'Ultimate-smash-friends destinée aux développeurs fait un peu peur ! Je dois avouer que moi qui aime dessiner (en utilisant Gimp, Inkscape mais je tate aussi de la 3D avec Blender), j'aimerais participer à titre individuel, mais je n'y comprends goutte !

La discussion s'est poursuivie sur Ultimate Smash Friends: un smash bros like en python

Comme le sujet semblait intéresser plusieurs personnes, je propose de continuer la conversation sur la façon de mener cette animation ici.

Voici où m'avait menée ma réflexion:

doudoulolita a écrit :

Animation: programmation

Trouver une animation permettant d'aborder les notions de base de la programmation, outre ses composantes graphiques, me paraît intéressant, à terme. cool

En tout cas, l'idée reste de travailler sous Linux et en logiciel libre. Donc XNA, on oublie, désolée LittleWhite. wink

L'idée d'un saut pourraît être sympa si ce n'est pas trop complexe, mais on pourrait imaginer des animations progressives et variables suivant l'âge, le niveau et le degré de motivation des jeunes.
On a seulement 2 gamins qui pourraient comprendre et apprécier l'aspect mathématique de la programmation , tandis que les autres risquent d'être vite découragés.
Il faudra plus graphique ou plus simple pour ceux-là (même moi, les fonctions Sinus et Cosinus, j'ai oublié et je n'aimais pas ça quand j'étais jeune! wink)

Mais je vois la possibilité d'animation par étapes de plus en plus complexes:

1 - sous Tuxpaint, il y a un des jeux qui permet de réaliser une petite animation en faisant bouger le personnage.
2 - Sous Kturtle, on fait la même chose mais en code pour déplacer la tortue.
3 - Décomposition graphique du saut - Réalisation des images sur Gimp (ou un programme encore plus simple pour les 8-9 ans), Inkscape ou Blender.
4 - Créer un gif animé placé sur un décor (en HTML avec CSS pour le background)
5 - Afficher les images des étapes à l'aide d'une boucle (PHP ?)
6 - Présenter le langage de programmation contenu dans USF et comment ça fonctionne (moteur de jeu et tout ce que je ne connais pas encore...).
7 - Lire et tenter de comprendre une partie de code dans USF correspondant à un saut.

Initiation au Python:
Il y a peut-être plus simple que le saut, pour démarrer ?
Voici les étapes possibles si on veut en arriver là:

1 - Faire glisser le personnage suivant un seul axe.
2 - Puis sur 2 axes (on glisse sur l'axe Y, on saute tout droit sur l'axe Z et on retombe).
3 - Ensuite, on utilise 2 images pour la marche, ou 1 pour le glissement axe Y et 1 autre pour le saut axe Z
4 - Montrer les courbes sinusoïdale d'un vrai saut dans Blender, etc...

Je ne sais pas si Kturtle permet d'initier à ces courbes, mais ce serait peut-être plus simple qu'avec Python, non ?

Python
Je n'ai pas encore mis les mains et la tête dans Python mais je viens de prendre quelques bouquins à la bibliothèque sur le sujet. Je ne connais pour l'instant que des bribes de PHP et me contente d'essais simples (Mod'imprim ou, encore en phase test Multitours).

Je n'ai meme pas encore utilisé pour mes essais une base MySQL, je vais me lancer bientôt (je connais un peu vu qu'on va parfois trafiquer directement dans notre base de donnée au boulot, pour quelques corrections).
J'espère que j'y arriverai en python, et si moi j'y arrive, tout le monde peut y  arriver ! tongue

Faire un jeu texte avec des enfants et des ados me semble impossible dans notre EPN, Tshirtman. Les notres sont difficiles à motiver. mad

Jouer, jouer, jouer, d'accord de leur côté, mais participer à une vraie animation construite et sur une certaine durée c'est beaucoup plus difficile pour notre public. sad

Kturtle

J'ai trouvé moi aussi de mon côté des programmes pour enfants permettant d'apprendre ou tout au moins d'aborder la programmation, basés sur le langage Logo.
Kturtle a effectivement l'avantage d'être très facile à installer (dispo dans les sources de Kubuntu et d'Ubuntu). J'ai plus de mal avec Xlogo ou Tangara.
C'est peut-être un point de départ avant de passer à + compliqué. Mais on m'a dit que Logo était un peu dépassé, dans le genre langage de programmation très accessible. Qu'en pensez-vous ?

Problèmes d'installation
Je confirme que le paquet .deb que m'a proposé Tshirtman ne veut pas s'installer avec Gdebi sur ma Ubuntu Studio Jaunty. Il y a des dépendances brisées me dit-il.

J'essaierai plus tard l'autre solution, mais avec les gamins, faudra bien sûr que ce soit simple à installer, sous Linux comme sous Windows.
Notez que chez nous, les gamins n'ont pas forcément Vista quand ils ont leur propre ordi car ils récupèrent souvent de vieux ordis sous XP ou pire encore. On n'en a aucun qui ait installé Linux pour l'instant, il n'y a qu'à notre EPN qu'ils le voient tourner, et le manque de jeux de haute qualité les fait tiquer.

C'est justement là l'intérêt de travailler un jeu libre avec eux, en plus de chercher d'autres jeux libres plus perfectionnés peut-etre, mais moins faciles d'accès que USF pour des animations sur la programmation et/ou le design de jeux.

En tout cas, ça n'empêche pas de commencer des animations avant que le jeu soit parfait et facile à installer sur toutes les plateformes et versions, puisque nous les animateurs, on peut s'embêter avec une install plus compliquée.
On expliquera que pour l'installer chez eux (pour ceux qui ont un ordi), il faudra attendre un peu que les programmeurs bossent encore.

Mes collègues ont été mis tout récemment sur le coup, lors d'une réunion et je leur ai envoyé les liens seulement hier, donc c'est encore jeune comme projet.

Dernière modification par doudoulolita (Le 24/04/2010, à 16:09)

Hors ligne

#3 Le 24/04/2010, à 16:20

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

littleWhite a écrit :

le problème c'est que l'approche de la boucle est fondamentalement fausse, elle n'a pas de sens dans la réalité d'un jeu vidéo, donc il ne faut pas la présenter à mon avis, ni toute autre solution aussi fausse, avoir expliqué le concept de la boucle de jeu permettrait normalement aux enfants d'en trouver une meilleur (ou moins fausse) directement, autant ne pas les embrouiller.

Bon, je reprendrai les étapes après avoir lu un peu sur la conception de jeux et la programmation, pour ne pas faire d'erreurs.

Mais dans les exemples de Kturtle, j'ai vu un truc qui me semble ressembler:

initialise
répète 3 [
  avance 100
  tournegauche 120
]

Est-ce que ce n'est pas une sorte de boucle ?

Dernière modification par doudoulolita (Le 24/04/2010, à 16:21)

Hors ligne

#4 Le 24/04/2010, à 19:15

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Voici le code que j'ai fait lors d'un essai avec Turtle:

initialise
taillecanevas 300,300
couleurcanevas 125,10,125
lèvecrayon
va 150,120
répète 18 {
baissecrayon
avance 10
lèvecrayon
avance 10
tournedroite 20
}
attends 1
va 20,20
écris "J'ai fait tourner la tortue"
tournedroite 90
avance 200
attends 1
va 60,170
attends 1
répète 18 {
baissecrayon
avance 10
lèvecrayon
avance 10
tournedroite 20
}
va 150,250
tournegauche 90
écris "et de 2 !"
tournedroite 90
avance 100
attends 1
message "C'est fini !"
initialise
taillecanevas 300,300
couleurcanevas 125,10,125
centre

C'est dommage que l'on ne puisse pas enregistrer sous forme de gif animé et que j'aie du mal à ouvrir le fichier .turtle à partir de l'explorateur.

Ce qui est super, c'est que la doc en ligne est en français et très simple à comprendre. cool
Il y a quelques différences en fonction des versions: contrairement à ce quei est écrit sur la doc, je ne peux pas enregistrer comme page html mais comme une image en png.
Mais c'est déjà sympa si on pense à supprimer les dernières lignes du code bas du code (depuis message jusqu'à centre)

cercles.png

Hors ligne

#5 Le 25/04/2010, à 07:35

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Je viens de commencer à apprendre Python en suivant le début du livre "Initiation à la programmation avec Pyton et C++" de Yves Bailly, éditions Pearson (2008).

Sur la capture d'écran ci-dessous, on voit le fichier dans l'explorateur de fichiers, l'éditeur de texte (kate) où on a écrit le programme qu'on a enregistré sous le nom python1.py et la console (toute noire toute triste, pour l'instant sad) où on lance l'interpéteur python puis notre fichier python1.py par cette ligne de commande:

python python1.py

Le résultat s'affiche juste en dessous, dans la console, après avoir appuyé sur la touche "Entrée" du clavier.

p_1er_pas_en_python_600.png

Finalement, ça commence assez facilement (d'autant que je connais déjà certains principes grâce à PHP). Il n'y a rien à installer sous Ubuntu car Python est inclus.

Le résultat peut même être un peu graphique comme on le voit ici, en utilisant tirets et astérisques, entre autres signes.

L'important est de bien écrire les lignes de code dans l'éditeur de texte, d'enregistrer puis de lancer la commande python python1.py dans la console + touche entrée pour voir le résultat.

ENCODAGE
La première ligne indique l'encodage utilisé, ici utf-8

CHAÎNE

Au début, j'ai utilisé des chaines, c.à.d des suites de caractères qu'on met entre guillemets ou entre apostrophes:

ex: "Bonjour, Tshirtman !"

INSTRUCTION print

Pour que cette chaîne s'affiche, on utilise l'instruction print

print "Bonjour, Tshirtman !"

VARIABLES

le jeu est la première variable. On la définit par:

jeu_1 = "Ultimate Smash Friends"

Pour afficher le nom de jeu, je pourrai écrire:

print jeu_1

Le résultat sera:
Ultimate Smash Friends

Si je remplace "Ultimate Smash Friends" par "Kturtle" dans la définition de la variable jeu_1, le résultat sera:
Kturtle

Les personnages sont les autres variables. On les définit par:

perso_1 = "BiX"
perso_2 = "Blob"

Pour afficher le nom des 2 personnages, je pourrai écrire:

print perso_1
print perso_2

Le résultat sera
BiX
Blob

CONCATÉNATION

Je peux mettre tout ça à la suite les uns des autres en utilisant le signe +

print "les personnages de " + jeu_1 + " sont " + perso_1 + " et " + perso_2

résultat:
les personnages de Ultimate Smash Friends sont BiX et Blob

SÉPARATEUR EN TIRETS

Mon programme python1.py est assez complexe car il définit aussi une fonction permettant de faire des lignes de séparation en astériques et en tirets.
Je ne donnerai pas ici tous les détails, trop complexes pour démarrer.

Mais voici comment réaliser une ligne composée de tirets uniquement (ou d'astérisques ou tout autre signe); c'est assez simple. cool
Pour compliquer et parvenir à mon résultat (c'est possible, même sans définir de fonction), vous devrez réfléchir un peu !

Le principe, c'est de multiplier le tiret  par le nombre de fois qu'on veut voir ce tiret apparaître.

Le tiret est en fait une chaine d'1 seul caractère, donc on doit la mettre entre apostrophes au lieu de guillemets.

soit: '-'

Ensuite, on utilise * pour effectuer la multiplication.

Puis on met un chiffre assez grand pour que la ligne de tirets soit assez longue. 80 tirets, c'est pas mal, non ?

Le code sera donc:

print '-'*80

Si on veut changer ce chiffre de 80 par un autre facilement, le mieux serait de le transformer en variable nommée nb_tirets

EXERCICE
Définissez la variable nb_tirets qui représentera le nombre de tirets composant la ligne.
Imaginez la manière de coder pour faire une ligne de 20 tirets, en changeant juste la valeur de la variable.
Puis faites une ligne de 20 astérisques.
Puis concaténez (= aditionnez) les deux.
Répétez 3 fois (on peut multiplier le code précédent par 3 en le mettant entre parenthèses).
Bon codage ! smile

Dernière modification par doudoulolita (Le 25/04/2010, à 12:39)

Hors ligne

#6 Le 25/04/2010, à 10:12

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Mon 2ème essai de code essaie de donner un petit côté graphique qui reprend l'idée des rochers et de la forme des personnages du jeu  Ultimate Smash Friends

Le code est encore bien compliqué car je ne sais pas encore lister automatiquement mes personnages, mais j'utilise des fonctions définies en haut du code, que j'appelle ensuite au sein du programme.

Il y a un petit problème d'encodage des accents quand je regarde ma page de code dans Firefox, mais chez moi, ça fonctionne comme il faut.

p_2eme_pas_en_python_console.png

Tout ça ne bouge pas beaucoup, mais le côté graphique est amené progressivement.

Si on veut faire une ligne de tirets en pouvant changer ensuite le nombre, on met ce nombre comme variable:

nb_tirets = 80
print '-'*nb_tirets

Je rappelle que le tiret doit être mis entre apostrophes puisqu'il s'agit d'une chaine d'un seul caractère.
Il suffira de changer le chiffre 80 par un autre pour avoir une ligne plus courte ou plus longue.

FONCTION

Mais on peut être amené à réutiliser plusieurs fois ce bout de code, en changeant à chaque fois le nombre de tirets, ce qui oblige à redéfinir la variable à chaque fois et à recopier tout ce code, pas évident !

Si on accumule plusieurs instructions pour un même objet et qu'on a besoin plusieurs fois du même bout de code, une fonction sera vraiment très utile. Le programme fera appel à elle chaque fois qu'il en aura besoin puis reviendra dans le cours normal des instructions.

On va donc définir une fonction pour ce bout de code dessinant une ligne composée d'un nombre précis de tirets successifs, ce qui permettra de l'appeler ensuite quand on veut:

def Tirets(nb_tirets):
  chaine_tirets = '-'*nb_tirets
  return chaine_tirets

Ne pas oublier les 2 points après la parenthèse donnant l'argument de la fonction (c.à.d nb_tirets) et les tabulations avant chaine_tirets et return. Ce sont ces indentations (faites avec la touche Tab, dans Kate) qui indiquent que l'on est en train de définir la fonction.
L'instruction return permet de faire un calcul, par exemple, sans l'afficher tout de suite.

Quant on appelle cette fonction Tirets au sein du programme, on note entre parenthèses le nombre de tirets désiré. On doit mettre l'instruction print dans le programme avant le nom de la fonction car l'instruction  return, présente dans la fonction, n'affiche rien. Cela donnera 80 tirets puis 30 tirets:

print Tirets(80)
print Tirets(30)

SUGGÉRER UN ROCHER

Un rocher est constitué du tiret vertical | (touche 6 + AltGr) au début et à la fin, et d'un nombre variable de tirets (touche 6, sans autre touche). La façon de réaliser un rocher est définie dans la fonction Rocher(nb_tirets).

def Rocher(nb_tirets):
  chaine_tirets = '|' + '-'*nb_tirets + '|'
  return chaine_tirets

Je rappelle de nouveau que le tiret et le tiret vertical doivent être mis entre apostrophes puisqu'il s'agit pour chacun d'une chaine d'un seul caractère.

Il faudra bien sûr appeler la fonction Rocher par l'instruction print Rocher(10) ou print Rocher(5) au sein du code en indiquant le nombre de tirets désirés (dans notre exemple: 10 ou 5) comme argument.

ESPACER LES ROCHERS

Entre les rochers, il y a des espaces successifs appelés par la fonction Vide, avec en argument le nombre d'espaces (touche espace du clavier, tout bêtement).

def Vide(nb_espace):
  chaine_vide = ' '*nb_espace
  return chaine_vide

Cette fonction est même plus simple que pour réaliser un rocher ! Il faut juste penser à mettre un espace entre les apostrophes de la chaine.

La 1ère ligne de rochers comprend donc des vides de taille différente et des rochers de taille différente.

print Vide (3) + Rocher(5) + Vide(10) + Rocher(10) + 2*(Vide(5) + Rocher(5)) + "\n"

On note que la succession d'un vide de 5 espaces et d'un rocher de 5 tirets est appelée 2 fois (en multipliant le contenu de la parenthèse par 2) comme ci-dessous:

- Succession d'un vide de 5 espaces et d'un rocher de 5 tirets:

print Vide(5) + Rocher(5)

- La même chose appelée 2 fois:

print 2*(Vide(5) + Rocher(5))

2ème LIGNE DE ROCHERS

Pour la 2ème ligne de rochers, au lieu de changer la taille des vides "à la main", j'ai additionné le chiffre avec un autre au sein de la parenthèse de la fonction Vide, ou soustrait un nombre d'espaces au premier chiffre.

- 1er vide de la 1ère ligne, de 3 espaces:

print Vide (3)

- 1er vide de la 2ème ligne, de 3 espaces supplémentaires, soit 6 espaces:

print Vide (3+3)

- 2ème vide de la 1ère ligne, de 10 espaces.
Note : Pour cet exemple, l'instruction print ne se met que si vous faites l'essai isolé, sinon il faut concaténer avec le symbole + la ligne de code précédente avec celle-ci :

print Vide(10)

- 2ème vide de la 2ème ligne, de 7 espaces en moins, soit 3 espaces restants:

print Vide(10-7)

Il semble logique de ne pas changer la taille des rochers.

SYMBOLISER LES PERSONNAGES

Au-dessus des rochers, on a fait une ligne où chaque personnage est représenté par une lettre, rappelant sa forme dans le jeu.

BiX = O BiX_smashdown3.png Blob = A Blob.png Stick = I Stick-hit1.png

Il y a des vides appelés par la fonction Vide entre les personnages (leur lettre) et un saut de ligne noté "\n" à la fin de la ligne, code que vous avez remarqué seul dans le fichier à d'autres endroits, concaténé en fin de lignes.

print Vide(5) + perso_1 + Vide(15) + perso_2 + Vide(8) + perso_3 + "\n"
print "\n"

Dernière modification par doudoulolita (Le 25/04/2010, à 12:27)

Hors ligne

#7 Le 25/04/2010, à 18:38

psychederic

Re : Faire une animation sur la création de jeux vidéo libres

Si vous savez programmer , vous pouvez faire des programmes dans lequel, il n'y a plus besoin de programmer. (laissons la programmation à ceux que ca interresse des huluberlus comme nous, qui ne serons jamais la majorité de la population :  point)

Pourquoi pas : a la fois du mba vers lua, et du devellopement tout graphique ( comme le jeu spore par exemple et le tout avec les avantages du libre , et d'une base de donnée de ressource libre)

Par exemple, dans un premier temps utiliser syntensity, ou refaire un "jeu complet" mugen like avec paintown, c'est peut être ce que cherche les gens : et c'est à leur portée.

( je note aussi qu'il manque aussi une partie scenario, que j'essairai de compléter )

http://doc.ubuntu-fr.org/developpement_de_jeux_video


Le monde du libre. Ubuntu :Ca rame ? | Installer un logiciel ? Avec Synaptic- Ubuntu Tweak. Msn ?

Hors ligne

#8 Le 26/04/2010, à 07:55

tshirtman

Re : Faire une animation sur la création de jeux vidéo libres

@doudoulolita: eh ben! sacré démarrage smile heureux de voir que je t'inspire, j'ai un peu survolé tes explications, tu semble prendre les choses dans le bon sens smile bonne continuation smile

@psychedric: bizarrement les tentatives pourtant souvent réalisées par des programmeurs très compétends, de créations de langages tout graphiques, n'ont rien donné de très utilisable, en effet, exprimer la même chose avec des boutons et des graphiques qu'avec des mots clées et des suites d'ordres, s'avère être contre productif, il est vrai que la majeur partie de la population ne sera jamais développeur, mais ça ne vient pas du langage utilisé, en fait, il semble qu'on puisse aisément déterminer qui sera potentiellement programmeur et qui ne le sera pas, par un simple test, avant même d'avoir enseigné les bases… ça peut paraitre élitiste, mais c'est malheureusement le cas, enfin être formé à la programmation semble être absoluement insuffisant pour s'assurer d'être un vrai développeur…

http://www.codinghorror.com/blog/archives/000635.html
http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html
(et dans les deux, une bonne myriade de liens très instructifs)

Hors ligne

#9 Le 16/05/2010, à 17:39

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Merci pour les liens que j'irai voir prochainement. cool

Dans mon optique, il ne s'agit pas que tous les jeunes et toutes les personnes à qui nous proposerions une telle animation deviennent de vrais développeurs.

Le but du jeu est juste d'aborder, de faire découvrir la programmation pour que les jeunes comprennent de quoi il s'agit, et qu'ils puissent voir si ça leur plaît vraiment (au cas où ils rêvent de créer des jeux vidéos).
Il y a aussi la partie graphique, dans un jeu vidéo qui peut être abordée en participant au développement d'un jeu comme Ultimate Smash Friends

Sorlo_g_walk1.png <- Sorlo
Aujourd'hui, j'ai montré Ultimate Smash Friends et mon personnage Sorlo à mon neveu qui vient tout juste d'avoir 11 ans et cela lui a donné envie d'en créer un lui aussi.

Mon neveu dessine plutôt bien et à plein d'idées. Il adore utiliser ma tablette graphique et commence à s'habituer à Gimp (il a Photoshop sur Mac, chez lui, mais il n'y fait pas beaucoup d'ordi). Aujourd'hui, il a griffonné quelques croquis très sympas et il ne parvenait plus à s'arrêter tellement ses idées fusaient !
Comme quoi, un gamin motivé peut partir dans des directions très intéressantes et même s'il ne va pas jusqu'au bout dans la mise au propre, ses idées peuvent être reprises par les adultes s'il est d'accord.

C'est sans doute plus complexe pour aborder la programmation, mais les petits logiciels comme Kturtle qui permettent de s'y initier sont déjà bien pour les plus jeunes, et quelques essais permettent de voir si on veut s'y coller ou pas quand on est plus âgé.

L'idéal serait d'avoir à un moment un vrai développeur qui vienne faire une intervention, mais il doit être en mesure de se mettre à la portée des jeunes, ce qui n'est pas si facile.
Ce qui semble évident pour un adulte peut en effet paraître totalement incompréhensible à un enfant.

Même en bases informatique, on voit aussi des adultes peiner devant des choses qui nous semblent aller de soi.
L'autre jour, une dame d'environ 60 ans me disait que pour elle, le clic droit ne voulait pas dire cliquer avec le bouton droit mais cliquer en allant tout droit ! Elle s'était même disputée avec son fils à ce sujet... lol

Hors ligne

#10 Le 16/05/2010, à 18:38

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Problème pour installer Syntensity sous Ubuntu Jaunty! sad

Je vais chercher d'autres choses, j'ai vu aussi la possibilité de faire de la programmation en python avec Blender.

Mais je dois bien sûr trouver quelque chose de simple en vue de mon projet d'animation.

Hors ligne

#11 Le 16/05/2010, à 19:07

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Pour MyPaint, on ne peut pas installer le paquet mypaint comme indiqué dans les pré-requis de la doc d'Ubuntu (lien mort et pas trouvé dans les dépots)
Une fois l'install' effectuée, il s'ouvre mais me signale une erreur de programmation. Je ferme cette fenêtre, histoire de lui clouer le bec, et j'essaie de dessiner un peu mais la fenêtre d'erreur revient toutes les 10 secondes... sad

Hors ligne

#12 Le 17/05/2010, à 23:00

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

En langage python, pour que le joueur puisse entrer une donnée, voici le code à taper dans un simple éditeur de texte :

print "Joueur n°1, tapez votre pseudo: ",
pseudo1 = raw_input()
print "Bienvenue à", pseudo1, "dans Ultimate Smash Friends, vous êtes le joueur n° 1 !"

L'instruction print permet l'affichage de la chaîne de caractère de la 1ère ligne. On se rappelle que ces chaines sont mises entre guillemets.

raw_input() permettra d'entrer la donnée pseudo1 dans le programme pour l'utiliser par la suite.
Nous l'afficherons dans une phrase grâce à la 3ème ligne. Celle-ci insèrera cette donnée pseudo1 entre 2 chaines de caractères (toujours entre guillemets, souvenez-vous !).

La virgule derrière la question, dans le code, permet que votre réponse reste sur la même ligne que la question. Idem pour les virgules avant et après pseudo1

Enregistrez sous le nom de progpseudo.py dans un dossier nommé programmes. Remplacez par le nom de votre propre programme et de votre propre dossier s'il est différent, bien sûr wink

Ouvrez la console (Konsole ou Terminal).
Placez vous dans le bon dossier grâce à la commande cd suivie du chemin du dossier (change directory = changer de répertoire). Ex:

cd /home/laurence/programmes

Tapez sur la touche Entrée du clavier pour entrer dans le répertoire demandé.

Ecrivez ce code à la suite dans la console pour appeler votre super programme:

python progpseudo.py

Tapez sur la touche Entrée pour lancer le programme.

La console affiche alors la 1ère ligne, à laquelle vous devez répondre.
Répondez puis validez avec la touche Entrée.

La console affichera ensuite votre réponse à l'intérieur de la phrase appelée par la 3ème ligne de code.

entree_donnee.png

Cette image montre à la fois le code écrit dans l'éditeur de texte et le résultat dans la console. N'oubliez pas que je n'ai tapé mon nom qu'une fois dans la console et nulle part dans le code !

Si vous copiez-collez ces 3 lignes de codes en dessous des précédentes et que vous remplacez le chiffre 1 par le chiffre 2, vous pourrez aussi demander son pseudo au joueur n°2 et l'afficher pareillement. Essayez ! smile

Demandez ensuite le prénom des 2 joueurs puis arrangez-vous pour l'afficher dans une phrase du type:
Le pseudo de Laurence est Doudoulolita tandis que le surnom de Jean est Patouille.

N'hésitez pas à inventer d'autres questions et d'autres phrases pour vous amuser. cool

Dernière modification par doudoulolita (Le 17/05/2010, à 23:40)

Hors ligne

#13 Le 17/05/2010, à 23:51

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

print "Joueur n°1, combien de points de vie avez-vous ?",
nb_points1 = int(raw_input())
print "Joueur n°2, combien de points de vie avez-vous ?",
nb_points2 = int(raw_input())

print "Au début du jeu,", pseudo1, "a", nb_points1, "points de vie,", pseudo2, "en a", nb_points2, "."

print "Il y  a", \
      nb_points1 + nb_points2, \
      "points de vie en tout."

int(raw_input()) permet d'entrer un chiffre que l'on pourra réutiliser dans un calcul, comme ici avec nb_points1 + nb_points2. Notez qu'il y a 2 parenthèses fermantes à la fin, une pour fermer raw_input, une pour fermer int. Mais n'oubliez pas d'ouvrir les parenthèses avant de les fermer ! wink

On note les \ avant et après le calcul, et les espaces pour indenter les 2 dernières lignes (c'est à dire les décaler  vers la droite). Ne pas utiliser la touche Tabulation car il me semble que ça pose problème.

Le programme suivant se base sur cet exemple mais l'addition (ici: 5+6 = 11) est placée avant le nombre de points de chaque joueur. Il réutilise aussi le code appris précédemment.
Cliquez sur l'image de la console pour voir le code utilisé (écrit dans l'éditeur de texte, donc)

progpseudo_ex_console.png

Bon, dans un jeu, on ne choisit pas soi-même ses points de vie, mais vous pouvez prendre un dé pour décider de votre réponse ! smile

Quant au nombre de joueurs, si vous le choisissez plus élevé que le nombre choisi par le programmeur pour l'instant (ici je n'en ai prévu que 2...), vous n'aurez pas de questions pour les joueurs 3, 4, etc. hmm

A vous de coder pour prévoir 4 joueurs, comme dans le vrai jeu d'Ultimate Smash Friends ! cool

Dernière modification par doudoulolita (Le 20/07/2010, à 18:02)

Hors ligne

#14 Le 27/06/2010, à 12:26

arturototo

Re : Faire une animation sur la création de jeux vidéo libres

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaj'y voit plus claire maintenant mercie!!!!!!


Artur MOUKHAMEDOV

(11 ans)

Hors ligne

#15 Le 27/06/2010, à 12:29

arturototo

Re : Faire une animation sur la création de jeux vidéo libres

je comprend bien mieu


Artur MOUKHAMEDOV

(11 ans)

Hors ligne

#16 Le 27/06/2010, à 15:05

tshirtman

Re : Faire une animation sur la création de jeux vidéo libres

lol, t'as le même avatar que Kanor, je t'ai pris pour lui au début, comme il fait aussi du python ^^, mais ça m'étonnait qu'il ait appris un truc juste là tongue.

Hors ligne

#17 Le 12/07/2010, à 11:01

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Mon premier atelier sera sur Blender les 19 et 20 juillet de 14 à 16h à l'Espace libre 13.1.
Au programme: création d'une petite barque et intégration dans un fond en vue de créer un décor pour le jeu Ultimate Smash Friends.
Deuxième atelier sur la programmation python (B.A.BA) les 22 et 23 juillet de 14 à 16h. Un mini-script python pour Blender trouvé sur Internet complétera quelques exercices en mode texte.

Dernière modification par doudoulolita (Le 12/07/2010, à 12:47)

Hors ligne

#18 Le 12/07/2010, à 12:45

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Voici une idée de ce que je souhaite réaliser avec les participants à mon atelier Blender du 19 et 20 juillet 2010 (pour adultes et jeunes à partir de 15 ans):
Les participants réaliseront une barque sur Blender.
Elle est modélisée avec des extrusions, le modificateur Miroir et des redimensionnements utilisant le PET (Outil d'Edition Proportionnelle).
Il faudra placer lampe et caméra pour voir la barque de profil.
On apprend aussi à utiliser le mode points, le mode arêtes et le mode faces, ainsi que l'outil Couteau (K), et à choisir un rendu en png avec un fond transparent (RGBA).
Enfin, on ajoute à la barque un matériau marron et une texture bois.

barque_texturee2.png

Puis, si on a le temps, les participants insèreront l'image rendue en plusieurs exemplaires avec Gimp sur une image de fond (trouvée sur internet). Ils ajouteront le personnage Sorlo pour se donner une idée de la taille que doit avoir la barque. On utilisera donc l'outil de recadrage, les calques et l'outil de redimensionnement.

decor_mer_avec_perso2.jpg

L'image de fond provient de http://commons.wikimedia.org/wiki/File: … rfeurs.jpg

Dernière modification par doudoulolita (Le 12/07/2010, à 12:56)

Hors ligne

#19 Le 12/07/2010, à 13:37

tshirtman

Re : Faire une animation sur la création de jeux vidéo libres

Oula, l'idée est intéressante mais assez perturbante du point de vue perspective ^^.

Hors ligne

#20 Le 20/07/2010, à 17:19

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Comme je l'ai marqué sur l'autre topic sur USF, je n'ai pas eu grand monde à mon animation.

Sur les 5/6 inscrits, seulement 2 se sont présentés, un jeune de 15 ans gentil mais qui croit que ça lui sera facile de devenir testeur de jeux, et un adulte qui s'intéressait en fait à la retouche photo sur Gimp. hmm

Le jeune a quand même commencé un petit iceberg en vue d'en faire un élement de décor pour USF, avec Blender; ma barque ne le motivait pas beaucoup (et pourtant, sur le plan didactique, il y avait plus à apprendre !) hmm

Pour une animation de 2x2h, on ne peut de toute façon pas faire un truc très travaillé.
Je voulais surtout leur apprendre à modéliser et texturer la barque et j'ai un peu vite fait l'insertion sur le fond, sans trop me prendre la tête dessus, j'avoue !

L'idéal serait en fait de "fabriquer la mer" avec Blender ou en tout cas de mieux placer les barques sous la camera pour avoir une perspective correcte, effectivement (mais comment placer des repères fiables ?).

Il faudrait aussi mettre quelques vagues en bas des barques pour les faire flotter en utilisant une copie du calque et un masque de calque.

Mais travailler sur un décor "à plat" (et non un truc en hauteur) n'était peut-être la meilleure idée pour un décor de jeu 2D.

Le jeune qui a fait l'iceberg pendant l'animation voudra sans doute faire aussi la mer avec Blender ou avec Gimp et là, je dois dire que je n'ai pas encore étudié la question de la profondeur. On se retrouvera aussi avec un problème de perpective.

En fait, la question que je me posais avant de concevoir cette animation, c'était de savoir si je choisissais le thème du décor et que je l'imposais à tous (plus facile avec un groupe de personnes au-delà de 4 ou 5) ou si je partais des idées des participants, ce qui implique qu'ils se mettent d'accord et pour moi, de m'adapter à un truc qu'on n'a pas testé avant.

Dans l'un comme l'autre cas, j'ai fait une erreur en oubliant un des principes de base du jeu, qui fonctionne en 2D et dont le décor doit se travailler sur l'axe Z de Blender ! sad

J'espère avoir un peu de monde Jeudi et vendredi pour la programmation, mais si besoin, je m'adapterai aux personnes présentes.

De toute façon, la préparation de ces ateliers m'a permis d'acquérir des petites bases sur Python et j'ai même fait un essai de Pygame grâce à des tutos sur le web, donc ce n'est pas du temps perdu. cool

Je me suis aussi acheté le bouquin "The blender Gamekit", en anglais. A suivre...

Dernière modification par doudoulolita (Le 20/07/2010, à 17:56)

Hors ligne

#21 Le 20/07/2010, à 17:44

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Je me suis amusée à faire encore d'autres petits essais en python en mode texte mais je voulais passer au côté graphique.
Dans le livre "Initiation à la programmation" d'Yves Bailly, qui m'a servi de base, les exemples sont donnés avec la bibliothèque Qt.

Pour ma part, j'ai préféré choisir Pygame comme dans le jeu Ultimate Smash Friends

J'ai trouvé des tutos intéressants pour python avec Pygame (en anglais)
J'ai suivi les 2 premiers tutos, très simples, de pygame-tutorial et un autre pour apprendre à incorporer une image . Mon code n'est pas super mais ça affiche quelque chose ! big_smile
Je suppose qu'une fonction pour les rectangles serait bien ou même peut-être existe-t-il quelque chose de "tout fait" dans Pygame. Les chiffres entre parenthèses indiquent d'abord la couleur de la ligne en mode RVB, puis les coordonnées des points de début et de fin (en pixels).
Pour trouver les codes de couleurs, choisir une couleur dans le sélecteur de couleur de Gimp et noter les chiffres R,V et B indiqués sur la droite du sélecteur de couleur.

Capture_pygame1.png

Ce que le livre d'Yves Bailly m'a fait comprendre, c'est que pour créer un jeu en python, par ex., il faut d'abord exprimer clairement les choses et définir objets et actions du jeu (en français, tout bêtement !).
En les exprimant clairement et de manière détaillée, on voit plus rapidement comment travailler et structurer le code qu'on fera par la suite.

Un simple mouvement d'un des éléments du décor nécessite de définir les coordonnées de cet objet, de définir ses modalités de déplacement, d'indiquer ce qui provoque ce déplacement (touche de clavier, par ex); le fait qu'il ait une certaine vitesse implique le temps, et donc peut-être un chronomètre, etc!

Dernière modification par doudoulolita (Le 20/07/2010, à 18:16)

Hors ligne

#22 Le 20/07/2010, à 18:30

tshirtman

Re : Faire une animation sur la création de jeux vidéo libres

Ce que le livre d'Yves Bailly m'a fait comprendre, c'est que pour créer un jeu en python, par ex., il faut d'abord exprimer clairement les choses et définir objets et actions du jeu (en français, tout bêtement !).
En les exprimant clairement et de manière détaillée, on voit plus rapidement comment travailler et structurer le code qu'on fera par la suite.

tout à fait, c'est vrai pour tout type de programmes, et les jeux ne font pas exceptions, mieux on sait ce qu'on veux faire (et ce n'est pas facile) plus on a de chance de le faire correctement!

smile

un jeune de 15 ans gentil mais qui croit que ça lui sera facile de devenir testeur de jeux,

c'est facile, sauf si tu veux que ce soit un vrai métier…

Dernière modification par tshirtman (Le 20/07/2010, à 18:34)

Hors ligne

#23 Le 20/07/2010, à 21:40

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Pour un jeune, je pense que les logiciels libres et en particulier les jeux libres leur offrent une chance formidable de s'entraîner et de vérifier leur motivation au cas où ils souhaiteraient faire de leur passion un métier.

Tester, développer, c'est quand même plus facile dans ce cadre qu'au sein d'une entreprise très fermée, non ?

Le problème de certains ados, c'est qu'ils pensent que pour être testeur, il suffit juste de jouer et que ce sera des jeux qui les passionnent alors qu'un simple tour sur les forums au sujet de ce métier (ou de cette activité, si on préfère) montre le contraire.

Mais que les ados rêvent, c'est normal. Après, s'ils veulent vraiment réaliser leur rêve, il leur faudra se confronter à la réalité et prouver leur motivation pour pouvoir vivre de leur passion.

Je dis ça alors qu'ado, je rêvais d'être styliste chez Jean-Paul Gaultier, et que je me suis retrouvée quelques années plus tard simple patronnière dans le Sentier (ceux qui connaissent Paris savent dans quelles conditions on y travaille le plus souvent)... wink

Hors ligne

#24 Le 19/08/2010, à 06:18

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

J'ai oublié de dire ici que je n'ai pas eu beaucoup plus de monde pour l'atelier programmation. Un adulte qui pensait qu'il s'agissait de faire des bases de données (et dans son cas, un simple tableur comme calc devait lui suffire, à mon avis), le jeune qui était là pour Blender et deux autres plus jeunes encore.

Les jeunes ont eu du mal à s'intéresser à Ultimate Smash Friends et à python ! sad
Celui de 15 ans m'a montré RPG maker dont pour ma part je ne raffole pas mais qui a amusé les autres pour créer des décors très facilement.

Le côté programmation des persos sur RPGmaker n'est pas si évident que ça en a l'air, j'ai eu ensuite du mal à reproduire ce que m'avait montré le jeune, qui pourtant semblait super simple. hmm

Ce que je n'aime pas dans ce programme, c'est le côté "déjà tout fait" que les jeunes, eux, aiment beaucoup.
Ce qui est plutôt pratique, c'est la simplicité de création des décors qui peut plaire aux plus jeunes pour les amener ensuite vers plus de programmation avec les personnages.

Je ne sais pas si ce type de jeu permettant de créer un jeu existe en logiciel libre et a ce côté facile et convivial qu'aiment les jeunes.

Jusqu'ici nos recherches en matière de jeux intéressants sont un peu stériles. J'ai voulu mettre Yo frankie sur les ordis du boulot et ça ne fonctionne pas alors que chez moi ça marche.
C'est sans doute nos ordis du boulot qui pèchent quelque part. J'ai en effet Ubuntu Lucid Lynx comme au boulot mais ma config est supérieure.

Dernière modification par doudoulolita (Le 19/08/2010, à 06:29)

Hors ligne

#25 Le 19/08/2010, à 06:27

doudoulolita

Re : Faire une animation sur la création de jeux vidéo libres

Par hasard, tout récemment, j'ai découvert le jeu Plee the bear mais pour contribuer, c'est encore plus difficile car c'est en python C++.
Les tutoriels sont par contre très bien documentés et le jeu présente une cohérence intéressante et un mini scénario.:)
A titre perso je vais continuer à apprendre python et pygame. Je verrai plus tard si je peux réunir des jeunes adultes et des ados motivés pour un autre atelier.

Dernière modification par doudoulolita (Le 19/08/2010, à 06:31)

Hors ligne