<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Bonjour,<br>
</p>
<p>J'ai été particulièrement discret depuis plusieurs mois. Ce n'est
pas
un signe de désintérêt pour ce projet même plutôt l'inverse.</p>
<p>En fait, comme vous l'imaginez, de nombreux utilisateurs nous
demandent une version tablette de GCompris et j'ai essayé
d'évaluer
les différentes possibilités techniques nous permettant d'y
arriver. Malheureusement, Gtk+ la technologie de base sur laquelle
nous sommes basés n'offre pas de moyen simple de faire une version
tablette.</p>
<p>Les principales exigences pour moi est d'être capable d'avoir un
code de base unique qui nous permettrait de cibler à la fois les
PC de
bureau et les tablettes.</p>
<p>Après avoir examiné différentes options, je me suis positionné
sur
<a
href="http://qt-project.org/doc/qt-5.0/qtquick/qtquick-index.html">Qt
Quick</a> [1]. C'est une technologie moderne basée sur un
langage
descriptif innovant appelé QML qui permet de décrire l'interface
utilisateur et Javascript pour coder la logique du jeu. Il est
également
possible de développer la partie non graphique de l'application en
C++
avec Qt.</p>
<p>Qt Quick est basé sur un graphe de scène OpenGL qui permet de
créer
des shaders et des particules pour faire des effets graphiques et
obtenir des animations fluides.</p>
<p>Afin de valider ce choix, j'ai fait un prototype et cela m'a
convaincu que c'était une approche pertinente pour GCompris. Même
s'il
s'agit d'une nouvelle technologie, la courbe d'apprentissage est
acceptable, avec très peu de code vous pouvez créer une activité.
Dans
mon test, il faut environ la moitié de lignes de code pour faire
la
même activité en Qt Quick que ce que nous faisions en Python, tout
en
améliorant la qualité graphique.</p>
<p>La mauvaise nouvelle c'est que ce n'est pas compatible avec la
version actuelle de GCompris et cela nécessite une réécriture
complète. Tout ce que nous pouvons garder est la logique de jeu,
les
réglages, les textes, les traductions, les graphismes et les sons.</p>
<p>Je viens de publier la
version <a href="https://github.com/bdoin/GCompris-qt">GCompris-qt
sur
GitHub</a> [2] et j'ai mis à jour
la <a href="http://gcompris.net/wiki/Developer%27s_corner">page
de
développement</a> [3] afin de donner quelques points de départ
pour compiler
cette version vous-même.</p>
<p>Pour ceux qui ne veulent pas compiler, vous pouvez regarder la
<a href="https://www.youtube.com/watch?v=cHFteAemeLo">petite vidéo</a>
[4].</p>
<p>Un autre point important, n'étant pas basée sur Gtk+ cette
nouvelle
version ne peut pas être hébergée par Gnome comme nous avions
l'habitude de le faire. Aussi, nous ne pouvons pas participer au
Google Summer of Code sous l'égide de Gnome. J'ai donc inscrit
GCompris pour la session à venir du GSoC et Frederico Goncalves
Guimaraes a accepté d'être le co-mentor officiel.</p>
<p>Si vous êtes intéressé à aider GCompris, je vous encourage à
apprendre Qt Quick et participer au portage de certaines
activités. C'est une bonne occasion d'apprendre une nouvelle
technologie tout en faisant quelque chose d'utile. Je dois encore
affiner et documenter le processus pour créer une nouvelle
activité,
mais ce n'est pas très complexe.</p>
<p>GCompris Gtk+ existe depuis 14 ans. Il est vrai que la migration
va
prendre du temps, probablement plusieurs années, mais c'est
quelque
chose que nous devons faire si nous voulons rester pertinent dans
les
années à venir.<br>
</p>
<p>Bruno.<br>
<br>
[1] <a class="moz-txt-link-freetext" href="http://qt-project.org/doc/qt-5.0/qtquick/qtquick-index.html">http://qt-project.org/doc/qt-5.0/qtquick/qtquick-index.html</a><br>
[2] <a class="moz-txt-link-freetext" href="https://github.com/bdoin/GCompris-qt">https://github.com/bdoin/GCompris-qt</a><br>
[3] <a class="moz-txt-link-freetext" href="http://gcompris.net/wiki/Developer%27s_corner">http://gcompris.net/wiki/Developer%27s_corner</a><br>
[4] <a class="moz-txt-link-freetext" href="https://www.youtube.com/watch?v=cHFteAemeLo">https://www.youtube.com/watch?v=cHFteAemeLo</a><br>
<br>
</p>
</body>
</html>