mardi 24 août 2010

Construct

Construct est un logiciel d'assistance à la création de jeux 2D qui est open source et gratuit.
Vous pouvez créer aisément des jeux et applications gérées par DirectX 9.c (uniquement) pour l'affichage, la gestion des entrées, l'audio et à peu près tout ce que DirectX peut gérer sur l'ordinateur.
Pour l'utilisateur final, on créé un fichier .exe qui peut intégrer tous les fichiers ressources utilisés par l'application ou bien disposés en arborescence de dossiers.

Ce qui rend Construct différent à mon sens c'est son système de programmation évènementielle et visuelle. On me parlera d'autres logiciels de game-making. Les rares que j'avais testés par le passé n'étaient pas aussi aboutis ou ne permettaient à mon sens pas assez de personnalisation et avaient une approche trop compliquée pour que je préfère y passer du temps plutôt qu'apprendre les bons vieux C/C++.

Mais là quand j'ai lancé Construct et que j'ai commencé à bidouiller un peu dedans, mon savoir en programmation m'a directement servit et je me suis retrouvé avec un outil qui se plaçait entre l'abstrait et le concret. La parfaite interface entre ma conception et le jeu fonctionnant à l'écran sur mon ordi.
Après tout n'est pas rose non plus ^^

Depuis trois semaines que j'y suis je ne dirais pas que je en suis un spécialiste ni que j'en ai fais le tour. J'ai pu un peu m'habituer à ses inconvénients et il faut être honnête, il y en a.
Certaines actions lourdes à réaliser à la souris alors qu'on pourrait les faire au clavier en 2 fois moins de temps, ce n'est pas un logiciel stable à 100%, j'ai régulièrement des glitchs graphiques qui me laissent cependant le temps de sauvegarder, quitter, relancer et continuer mon projet. Aujourd'hui j'ai rencontré un bug qui semble un peu plus grave, à un moment de mon programme, je tente d'assigner une valeur à une variable privée, mais ce n'est pas la bonne variable qui se voit attribuée au final. ARGH !
Bug report, et pis bon, j'ai déjà un work around. C'est pas forcément très élégant, mais pour le hobbyiste que je suis, ça va. Et le jeu est jouable, donc c'est le principal.

C'est le gros point essentiel sur Construct à mon goût. En trois semaine d'utilisation "intensive", jamais je ne me suis retrouvé bloqué. J'ai un projet lancé en extreme programming (c'est à dire à l'arrache sans vraiment poser tout le concept sur le papier) qui a vu ses fonctionnalités s'ajouter au fur et à mesure et qui est toujours fonctionnel, gérable (même si les grosses prises de tête commencent à arriver ^^) et que je peux lancer pendant 1/2h pour tester mes 50 waves de mutants :)

Et quand j'ai eu des soucis ou que je devais simplement apprendre l'interface et la philosophie d'utilisation du soft, je suis allé sur le wiki et j'ai suivi les tutoriels de base. Si vous vous décidez à utiliser ce soft, prenez les tutos les uns après les autres, lisez-les biens, ils sont très à assez commentés pour être vraiment utiles.
Par la suite vous pourrez vous perdre sur le forum qui s'avère plutôt actif bien qu'encore confidentiel.

C'est là le dernier point. Ma surprise de voir que cet outil plutôt performant et bien fichu n'est pas plus répandu et plus utilisé. Franchement, plutôt que d'apprendre le C de manière rébarbative, voilà une manière visuelle et gratifiante (je fais mon code, je clique sur un bouton, j'ai ma fenêtre qui se lance et je joue à mon jeu. Et ça marche et c'est joli :) ) d'apprendre la réflexion du développement. Après le reste n'est que langage :D

Je n'ai pas été très structuré ni même effleuré la richesse de Construct dans cet article. J'avais juste envie de faire une tite mise à jour de ce blog rapide et en même temps faire de la pub à cet excellent programme.
J'y reviendrai de toute façon. :D

jeudi 29 avril 2010

Développement multimédia utilisant OpenGL et la librairie SDL

Quand j'étais petit, mes parents avaient un TO8 et pour pouvoir jouer à un jeu sur cette machine là, il fallait soit lui faire lire une cassette audio pendant plus d'une demi-heure, soit entrer en mémoire une longue liste de commandes qui, correctement tapées, donnait un jeu lorsqu'on exécutait le code.
Ce furent mes premiers pas en programmation et ma découverte du langage basic.
Plus tard, j'ai découvert le Visual Basic, une autre forme de basic mais adapté au système de fenêtres de Windows. J'ai bidouillé assez longtemps en auto-didacte avec, avant d'arriver en BTS informatique et d'y apprendre les bases académiques de la programmation.
Par la suite je me suis mis au PHP, développant des sites sans lendemain tout à la main.
Puis j'ai tenté la migration vers le C/C++ toujours en auto-didacte. J'ai lu divers tutoriaux et polycopiés d'université mais je trouvais ça plutôt obscur, pas engageant.
Puis je suis tombé sur les tutoriaux du site du zéro plutôt connus, et plutôt bien foutus qui pris uns par uns et revus plusieurs fois m'ont permis d'enfin arriver obtenir un programme éxécutable. ^^
Ce n'est pas encore un programme complet, mais des premiers jets. Il n'empêche qu'ils procurent la joie et la sensation d'accomplissement que ressens tout créateur lors du processus de création ^^

Voilà après cette petite introduction de mon parcours en terme de développement et pour dire donc qu'il s'agit bien d'un statut amateur/hobbyiste, j'en arrive enfin au but premier de cet article qui était de poser quelques liens que j'ai obtenu lors de mes recherches d'informations concernant le développement avec la librairie SDL et l'affichage de rendu en openGL.


Au départ j'avais trouvé aussi ce petit tuto concernant l'utilisation d'openGL afin de réaliser une appli 2D.
Il est loin d'être complet mais peut avoir son utilité.

Il permet de se rendre compte que même si l'on va "simplifier" l'affichage à l'écran, il faudra tout de même passer par les objets "complexes" d'OpenGL.
Le but du jeu donc, pour afficher une image à l'écran est de créer un Quad OpenGL et d'y appliquer notre image en tant que texture.
La profondeur du cube n'est pas prise en compte (on est en "2D" l'affichage sera donc une vue "fixe"). En fait on créé une scène 3D et on "triche" sur le positionnement de la caméra pour rendre l'effet aplatit.


Ensuite j'ai trouvé OSDL - Une librairie en développement qui à terme devrait permettre de programmer des jeux 2D facilement à l'aide d'openGL. Je ne me suis pas servi de la librairie mais de la documentation (en anglais principalement) fournie sur le site. La plupart des questions et interrogations que j'avais (l'utilisation de surfaces SDL afin de texturer les Quads OpenGL, utilisation de FrameBuffer, l'initialisation/organisation/gestion de l'affichage) y sont traitées et du code semblant fonctionner est fourni. La doc renvoie vers de nombreux liens qu'il est intéressant de consulter aussi.

Gérer l'affichage de l'application avec OpenGL est tout de même quelque chose d'assez tendu. Il est évidemment conseillé de passer par les fonctions SDL si votre jeu doit avoir un aspect simple. Mais pour le projet que j'ai en tête, les performances et les possibilités offertes par la SDL m'incitent plutôt à passer par OpenGL.
Je m'oriente aussi actuellement vers une librairie supplémentaire AGAR, un GUI supportant openGL et SDL.
Je ne me suis pas encore penché trop en profondeur sur celui-ci dans la mesure où je n'ai pas trouvé de lib précompilée (code::blocks) pour lui.

Il va falloir me pencher sur ce "lourd" problème en tant qu'auto didacte sous windows n'ayant pas encore saisi toutes les subtilités de la compilation de librairie. ^^

WebStrip - Premières Planches


Voilà quelques planches du WebStrip que j'ai "créé" avec l'aide en vannes de Melmoth et Vermine, mes comparses du TriumVirat ^^

C'est surtout pour s'amuser, je ne sais pas si il y aura une publication régulière ou même extérieure à ce blog.
Enfin voilà si jamais vous tombez sur ces quelques planches et que cela vous amuse n'hésitez pas à poster un commentaire, et peut-être que d'autres suivront ;)




jeudi 22 avril 2010

TrackMania

J'ai été longtemps un joueur de TrackMania. Je dois dire que le jeu à finit par me lasser, et surtout j'avais atteint ma limite de progression.
Ce qui m'a fait tenir longtemps aussi c'était la création de circuits. J'en ai créé pas mal qui ont eu un certain retentissement au sein de la communauté "FS" (Full Speed) du jeu.

Le Full Speed c'est lorsque tout le circuit passe sans jamais lâcher l'accélérateur ni presser les freins et essayer de perdre le moins de vitesse possible (pas de dérapages donc dans la plupart des cas). Cela nécessite de sacrés trajectoires et d'avoir le coeur accroché par moment, car j'aimais les circuits qui speedent :D
Des "tricks" permettent de parfaire les records :)
Ce style de conduite est en opposition à la Tech qui est basée essentiellement sur les dérapages.

Vous pouvez trouver mes circuits sur TMX. N'hésitez pas à les awarder si vous les aimez, ça me fait toujours plaisir et je continues à passer régulièrement sur ces pages. Je sors quelques circuits de temps à autres, mais j'avoues que je pratique beaucoup moins.

Vous pouvez voir mes circuits sur mon compte dailymotion. (Vous pourrez y trouver aussi mes premières vidéos pour Toribash).


A Speed Arena
envoyé par Kyatric. - Regardez les tests, les trailers et les solutions complètes de jeux vidéo.