A downloadable game for Windows

Pitch :

  Un casse-brique ? Pas tout à fait. Un flipper ? Presque, mais pas vraiment ! Yakyu est un jeu à l'ambiance zen japonaise, qui se trouve à la croisée du casse-brique, du flipper et du baseball. Attention, votre concentration devra être de mise si vous souhaitez pouvoir renvoyer la balle comme il faut. Vous apprécierez les différents niveaux au gré des estampes et de la musique traditionnelle du Japon, ainsi que l'éditeur de niveau intégré, pour pouvoir affronter vos propres créations !

  A brick breaker ? Not quite. A pinball ? Almost, but not quite ! Yakyu is a game with a Japanese zen atmosphere, which is a cross between brick-breaker, pinball and baseball. Be careful, your concentration will be needed if you want to send the ball back properly. You will enjoy the different levels with traditional Japanese prints and musics, as well as the integrated level editor, so you can play against your own creations !


Présentation du projet :

(project presentation)

  Cher/chère visiteur(euse), voici mon troisième jeu vidéo, Yakyu, un casse-brique revisité en 2D réalisé en deux semaines (courant décembre 2021) avec le fameux framework MonoGame (le descendant de XNA), et son langage de programmation C#. Là encore, mis à part l'API de Monogame, le jeu est en « pure code ». J'avais envie, pour cette troisième création, d'un jeu plus reposant que les deux premiers qui eux ne manquaient pas de tension. Le casse-brique se prêtait plutôt bien à cette volonté, mais il me fallait une idée un peu originale : intégrer une physique pour la balle propre au flipper, ainsi qu'une batte presque aussi capricieuse que dans la vie réelle. Là encore, je dois avouer être satisfait du résultat. Ce n'est évidemment pas le jeu de l'année, mais j'aime l'atmosphère qui s'en dégage et j'ai toujours plaisir à y rejouer. De plus, le défi pour moi était de réussir à reproduire des angles de rebonds sur la batte qui soient légèrement contre-intuitifs, pour que le joueur ait plus ou moins l'impression de manipuler une vraie batte de baseball, sans pour autant que la difficulté soit impossible. J'ose croire être parvenu à remplir cet objectif.

Ce projet de jeu m'a permis d'apprendre plusieurs choses. Tout d'abord, j'ai pu apprendre le langage C# qui est l'un des langages les plus utilisés dans le milieu de la programmation de jeux vidéo. J'ai découvert ce qu'était un langage avec un typage fort (ce qui n'était pas le cas pour mes deux précédents projets qui étaient en Lua, un langage impératif non typé, et en JavaScript, un langage objet mais au typage très faible), et donc faire un pas supplémentaire dans l'apprentissage du fonctionnement de la machine tout en comprenant l'intérêt d'avoir différents niveaux d'encapsulation de ses variables, pour l'organisation de son propre code d'une part, mais certainement aussi pour le travail de programmation en groupe. De même ai-je pu approfondir ma pratique de la programmation orientée objet en faisant usage de l'héritage, de l'implémentation d'interfaces, ainsi que du polymorphisme et de la surcharge que permet le C#. J'ai également eu l'occasion de découvrir et de mettre en pratique mes premiers design paterns, comme par exemple celui du « game state » (rendant possible le passage rapide d'une scène à une autre) ou encore le « service locator » (permettant d'aller chercher une variable normalement inaccessible sans avoir à la faire passer en argument à chaque étage de notre structure). Les différents niveaux du jeu sont tous chargés depuis un fichier texte (.txt) extérieur, et j'ai apprécié mettre en pratique cette ingéniosité permettant de créer un niveau appuyant sur quelques touches de notre pavé numérique. Enfin, ce projet m'a permis de créer une physique pour la balle et ses rebonds, pour ses collisions avec la batte, mais aussi particulièrement pour la cohérence de celles avec les briques, car il m'a fallu ruser en créant deux hitboxes anticipatives, l'une verticale, l'autre horizontale.

Réaliser ce jeu, tant concernant la programmation que la dimension artistique (le choix des estampes, le choix et le mixage des effets sonores, les feux d'artifices de l'écran de victoire), fut pour moi un réel plaisir qui put parfois s'apparenter à celui que procure la méditation. J'espère avoir réussi, un temps soit peu, à transmettre cet esprit dans l'expérience ludique offerte au joueur.

Je profiterai de ces lignes pour remercier David Mekersa pour son enseignement sur son école en ligne « Gamecodeur », ainsi que toutes les personnes qui sans me connaître m'ont tendu la main, ou m'ont tout simplement offert la chance d'aller à la rencontre de leur passion. Je remercierai aussi mon amie dessinatrice Lara Cougot qui a eu la gentillesse de bien vouloir me dessiner la batte de baseball ainsi que les briques, et je n'oublierai pas non plus Menerv (voir sa page Itch.io [-ici-]) pour son aide à l'installation infernale de VisualStudio et Monogame, et pour son amitié.

Je te remercie cher/chère lecteur(rice), pour ta curiosité et ton attention, je te souhaite bon jeu, et j'espère que celui-ci te plaira.


  Dear visitor, here is my third video game, Yakyu, a 2D brick-breaker revisited in two weeks (during December 2021) with the famous Monogame framework (the descendant of XNA), and its programming language C#. Again, except for the Monogame API, the game is in "pure code". I wanted, for this third creation, a more relaxing game than the first two, which were not lacking in tension. The brick-breaker lent itself rather well to this desire, but I needed an original idea : to integrate a physics for the ball specific to pinball, as well as a bat almost as capricious as in real life. Here again, I must admit that I am satisfied with the result. It's obviously not the game of the year, but I like its atmosphere and I always enjoy playing it again. Moreover, the challenge for me was to manage to reproduce angles of bounces on the bat that were slightly counter-intuitive, so that the player would feel more or less like handling a real baseball bat, without making the difficulty impossible. I dare to believe that I succeeded in achieving this goal.

I learned several things from this game project. First of all, I was able to learn in depth the C# language which is one of the most used languages in the video game programming world. I was thus able to discover what a language with strong typing was (which was not the case for my two previous projects which were in Lua, a non-typed imperative language, and in JavaScript, an object language but with very weak typing), and thus to make an additional step in the machine functioning learning while understanding the interest to have different encapsulation levels of our variables, for our own code organization on the one hand, but certainly also for the work of programming in group. I was also able to deepen my practice of object-oriented programming by making use of inheritance, interface implementation, as well as polymorphism and overloading that C# allows. I also had the opportunity to discover and put into practice my first design paterns, such as the "game state" (which allows a quick switch from one scene to another) or the "service locator" (wich allows to get a normally inacessible variable without having to pass it as an argument to each level of our structure). The different levels of the game are all loaded from an external text file (.txt), and I enjoyed to put into practice this ingenuity to create a level by pressing a few keys on our numeric keypad. Finally, this project allowed me to create a physics for the ball and its bounces, for its collisions with the bat, but also particularly for the coherence of those with the bricks, because I had to create two anticipatory hitboxes, one vertical, the other horizontal.

Making this game, as much for the programming as for the artistic dimension (the choice of the prints, the choice and the mixing of the sound effects, the fireworks of the victory screen), was for me a real pleasure that could sometimes be compared to the one provided by meditation. I hope to have succeeded, for a while, in transmitting this spirit in the game experience offered to the player.

I will take advantage of these lines to thank David Mekersa for his teaching on his online school "Gamecoder", as well as all the people who, without knowing me, have reached out to me, or simply offered me the chance to meet their passion. I would also like to thank my drawing friend Lara Cougot who was kind enough to draw me the baseball bat and the bricks, and I won't forget Menerv (see his Itch.io page [-here-]) for his help with the infernal installation of VisualStudio and Monogame, and for his friendship.

I thank you dear reader, for your curiosity and your attention, I wish you a good game, and I hope you will like it.


Musiques :

(musics)

- Goryō – Kaidan 怪談 (album)


Sources :

  Toutes les sources sont disponibles sur la page GitHub du jeu.

  All sources are available on the GitHub page of the game.

https://github.com/KairosGames/Yakyu

Download

Download
Yakyu.zip 38 MB

Install instructions

  Pour pouvoir lancer ProjectBrickBreaker.exe, vous devrez laisser Windows installer .NET sur votre ordinateur.

  In order to launch ProjectBrickBreaker.exe, you will have to let Windows install .NET on your computer.

Leave a comment

Log in with itch.io to leave a comment.