Le retour des bubbles

Je voudrais intégrer un jeu du genre ‘bubble shooter’ dans l’hubibox. Mais cette fois-ci la réalisation est plus complexe. J’avais déjà travaillé sur ce type de jeu bien avant le projet, avec moins de connaissances du langage d’ AgkGameKit, puis j’ai abandonné. C’est une reprise de la méthode initiale, à savoir traduire un code existant en JavaScript, une bonne galère aussi. J’ai donc repris l’exemple de code d’un site et tutoriel internet et je l’adapte tant bien que mal. L’algorithme n’est pas des plus faciles à s’approprier en ce qui me concerne. Je teste énormément de parties pour espérer qu’elles veuillent bien fonctionner correctement. J’y suis depuis quinze jours.

Le 22.07.2019, première intégration dans le programme de l’hubibox. Après avoir buté de nombreuses heures sur la mise en place et le débogage des algorithmes du tutoriel, j’ai fini par créer le mien. Pas parfait, mais il se rapproche de ce que j’espérai réaliser. Je vais fignoler l’intégration petit à petit.

Comment une nouvelle partie est ajoutée au programme de l’Hubibox

Dans un premier temps, je réfléchis à l’algorithme du programme et effectue des recherches. Ensuite je commence à produire les premiers graphismes. Ils sont dérivés des précédents, pour coller à l’aspect général.

Ces éléments en main j’écris la structure de base du code de cette partie qui est directement incluse dans le code existant de l’Hubibox. Je tends alors de plus en plus vers mon idée en écrivant de plus en plus des lignes de code. Je teste petit à petit le fonctionnement, débusque les bugs les plus déroutants. Trouve des solutions pour un bon fonctionnement de l’ensemble. Généralement je peaufine ou j’ajoute des graphismes.

J’essaye toujours d’aller à l’essentiel. Je suis seul pour réaliser mon idée, et souvent de nombreuses heures sont nécessaires. J’entrecoupe souvent ces séances de réalisations. C’est mon véritable boulot qui fait la coupure. Et au final certaines journées sont très longues. Le tout est de pouvoir terminer l’idée, la partie concernée. De nombreux développeurs amateurs se lancent des défis trop importants et ne terminent jamais leur projet.

La musique est produite en cours de réalisation. Elle aide et encourage la création. Une fois écrit le code est à tester de nombreuses fois. L’ordinateur insulte de ses messages signalant les erreurs. Le débogage n’est pas facile, comprendre ce qui cloche et converser avec un ordinateur demande beaucoup de pratique et de sang-froid. Cette étape fastidieuse est plus agréable lorsque la musique est en place. Dans d’autres parties comme les diaporamas je produis la musique à la fin.

Tout ce temps passé, est du temps de ma vie. Et j’ai beaucoup de choses à faire. Ce ne semble pas être un gros projet et pourtant il consomme des heures. Comme c’est le travail d’une seule personne. Il me ressemble. Un programme d’auteur.

Volconian

Ce petit jeu de tir utilise les courbes de Beziers pour décrire la trajectoire des ennemis. Cette fois j’ai du inclure un mode ‘édition’ pour les définir. La courbe se déforme en déplaçant les points rouge et bleu qui correspondent aux points de contrôle. Chaque ennemi possède une courbe pour son entrée dans la zone et jeu, puis celle qui correspond à ‘son attaque’ vers le joueur.

L’archive est téléchargeable ici

Le Raspberry 4 est sorti

La célèbre ‘carte ordinateur’ est mise à jour et je la testerai en embarquant le programme de l’Hubibox. Le processeur central est plus rapide, le processeur vidéo également, mais ce qui m’intéresse plus particulièrement c’est la Ram. Ainsi j’ai opté pour une carte de 4 Go contenue dans un petit boitier. Elle est déjà en rupture de stock. Je l’ai commandé en vue de tests en septembre. Le programme ne lisait pas les vidéos sur les précédentes versions. Espérons que je trouverai une solution pour combler cette lacune.

Galanian

Cette partie a débuté au 7 juin.

Le petit jeu de tir embarqué dans l’Hubibox contient de nombreuses lignes de code. Après cette phrase importante d’écriture et design, je corrige peu à peu les bogues, c’est assez fastidieux, voire peu intéressant et chronophage. Je le teste aussi sur la borne avec le joystick sous Linux. Finalement le plus simple c’était les graphismes et la musique !

Le 17 juin, le design s’est amélioré et ne devrait plus changer. Les bases sont pourvues de canons et les ennemis possèdent des déplacements plus fluides.

Malgré mes idées, je me limite à un projet le plus basique possible. Je souhaite en priorité corriger les bugs. Ainsi le niveau du jeu est généré aléatoirement et contient 8 bases ennemies à détruire. Il serait possible de réaliser des niveaux progressifs mais je m’économise du temps.

J’ai extrait uniquement cette partie du programme et elle est téléchargeable ici

Vous devez extraire et placer le dossier ‘galanian’ dans ‘Mes Documents’ pour que le programme trouve les données graphismes et sons et fonctionne correctement. Lancez le programme galanian.exe. Le code source est inclus.

Retour sous Android

J’ai repris une grande partie du code de la borne, zut, l’Hubibox pour changer l’accès au dossier des données. De ce fait elle fonctionne également sous Android. Cette version est similaire à la version Windows en ce qui concerne la lecture des vidéos (oui çà fonctionne !). Je l’ai testé sur ma box Android Ugoos 2Go de Ram qui est connectée à ma TV. Le dispositif de pointage est la souris-télecommande sans fil. Pour cette configuration j’ai désactivé les passerelles bluetooth écrite en c++ (pas de Robot ou Boite à cadeaux). C’est assez véloce.

J’ai également testé sur une Box Android sur laquelle était installée une des premières versions. Et tout fonctionne à merveille.

Tranquille.

Cette semaine j’étais en vacances. Un peu mes grandes vacances avant le début de la période estivale qui promet d’être dense au boulot.

J’ai renommé mon projet de ‘La Borne’ en ‘HubiBox’. Je trouve cela plus fun et plus personnel. C’est une période tranquille. L’envie c’est de relâcher pour mieux y repenser ensuite. Je n’ai pas à présenter et exploiter de contenu en ce moment.

Depuis plusieurs mois j’ai envie d’intégrer le tout à nouveau dans une petit box. Je regrette juste que la solution de développement n’intègre pas mieux la lecture intégrée des vidéos sous linux. Appeler un logiciel tiers (même libre) fonctionne mais est beaucoup moins esthétique et satisfaisant.

Rotule rotation horizontale.

Je réalise une rotule automatique pour mon trépied vidéo. L’idée est de réaliser un rotation horizontale souple. Une Arduino nano est couplée à un servomoteur. Un module bluetooth permet l’utilisation de mon téléphone portable en sans fil pour commander la rotation. Le tout est alimenté par un bloc de piles.

Le 09.05.2019

Finalement la solution du servomoteur ne convenait pas . Le couple était largement satisfaisant mais le déplacement était trop trop rapide. Impossible de ralentir tout en conservant un mouvement souple. Du coup virage vers une autre solution:

J’ai remplacé le servomoteur par un moteur continu et sa roue (en jaune). Au dessous de la plaque pivotante – sur laquelle est placée le caméscope – se trouve une poulie de diamètre plus important. Le mouvement est fluide. J’ai la place de poser mon téléphone qui commande le dispositif sans fil. La je suis dans l’attente de la livraison d’un bloc de 6 piles et d’une vis de fixation pour le caméscope.

Du côté de Linux

J’ai changé le système d’exploitation de l’ordinateur du meuble. J’ai opté pour du Linux, plus précisément Ubuntu. La raison de ce changement est la fin des mises à jour de sécurité et du support de Windows 7 en janvier 2020. Du coup, j’ai évidemment testé le programme de la borne.

Déjà, j’ai été surpris de l’évolution des interfaces graphiques de Linux. Gnome se rapproche du traditionnel bureau de Windows 7. Le programme fonctionne parfaitement, enfin presque. Une fois de plus, la lecture des vidéos est problématique.J’ai adapté le code pour pouvoir lancer un programme externe : VLC. Impossible d’inclure les vidéos au plus près du programme comme c’est la cas sous Windows. C’est moins propre, mais ça fonctionne. Ubuntu est une distribution gratuite au contraire des systèmes Windows.

Tout le reste fonctionne bien. Ensuite il faudrait écrire une version linux des programmes passerelles en c++ qui communiquent avec la BorneBox ou le BorneBot. Ce qui relève d’un nouveau challenge. Et je me pose la question si j’investis du temps ou pas la dessus.