top of page
Super Hot Car Game! Unity3D
04:36

Super Hot Car Game! Unity3D

The project I chose to do with the Unity game engine is called Super Hot Car Game. Sources of inspiration and approach Passionate about cars and racing car games like Need For Speed or Gran Turismo, I wanted to show my skills both on the graphic and computer side. Indeed, coming from a background in 3D computer graphics and an engineering school, I decided to use my technical knowledge to the maximum in order to create a 3D application interactive exhibition covers some of the chapters studied at the CNAM in UE MUX205. The concept that is put forward in this video game is to be able to drive a vehicle using a physical Thrustmaster-type steering wheel and an integrated pedal system. As for the transmission, it is an automatic transmission mode without a shift lever. Tools and technologies used It is a 3D video game created as requested with the Unity 3D game engine. As mentioned above, I used a plugin called GIC Controllers that allows you to manipulate "Steer Wheel Force Feedback" joysticks in the Unity engine. Regarding the 3D models, I used the Unity Asset Store where I was able to find the Road Architect asset that allows you to create road generators. Thanks to this asset, I was able to draw a 3D race track. I also created a heighmap in photoshop that I then exported to Unity to draw the terrain. As for the vehicles, I "designed" them myself from existing primitives in Unity. Regarding the props (grass, vegetation, barriers, tunnels, traffic lights, traffic signs...), I found them in Unity Asset Store and integrated them into my 3D scene. Finally, regarding the LODS (trees), I already had ready-made tree generators that I found in unity asset store and that I integrated into my 3D scene. Regarding the textures, I used the unity asset store and the CG Texture site. In some cases, I've had to retouch certain textures in photoshop. I'd like to point out that I did a general baking of the whole scene in order to pre-calculate the shadows, and used global illumination in order to have realistic effects. I am aware that what was required was simply the implementation of a prototype but I wanted, as mentioned before, to use my graphic skills on this project. I worked a lot on the rendering, the lighting, pushed the quality settings to the maximum to increase the realism of my scene as much as possible. This also posed difficulties regarding the rendering of the project in the form of a video capture as requested. Indeed, by pushing the settings to the maximum, the video quality took on more weight, but it was required to render a capture of less than 70 MB, which was problematic. As a result, it forced me to make a shorter video. GamePlay In terms of gameplay, the experience is pretty fun! Particular care must be taken when the user is cornering, as the car can skid quickly. With the use of a wheel controller force feedback type steering wheel, I tried to set up a system that allows the user to feel the sensations like in a real video game simulator with the forces, haptics (resistance effects), power steering, steering wheel vibrations when the driver is driving on a bumpy road. The user also has a speed limiter, which is useful when the track is congested. A powerful braking system is also offered so that it does not hit other vehicles and loses points as a result. The difficulty in this game is to try to dodge as much as possible the other vehicles and obstacles present on the track, otherwise the user loses time and risks losing points too. In conclusion, I tried to develop a real racing car game simulator, an experience that I would say I would say a lot, both as a developer and as a player, a simulator in which I hope the user will experience sensations. Which is the whole point of the game!
projet Musical interactif Magic Piano  avec Processing + Mode OpenGL
14:24

projet Musical interactif Magic Piano avec Processing + Mode OpenGL

Le projet que j'ai choisi de réaliser se nomme Magic Piano. Sources d'inpiration et démarche Je me suis inspiré de jeux comme Electroplankton et d'autres encore qui font partie de la catégorie des jeux video interactifs musicaux. Etant donné que je suis issu d'une formation en école d'ingénieur ainsi que d'une formation en école d'infographie 3D, j'ai décidé d'utiliser un maximum de mes connaissances techniques à la fois sur le plan graphique et sur le plan informatique pour explorer la question de l'interaction d’un utilisateur avec une animation et du son. Technologies C'est un petit jeu vidéo en 3D basé sur l'API OpenGL et intégré directement dans processing. Pour cela, j'ai modélisé entièrement tous les modèles 3D puis je les ai exportés dans mon application OpenGL avec processing grâce au convertisseur de données SAITO capable de lire des fichiers .obj et d'afficher des triangles à l'ecran. Règles de jeu L'objectif de ce jeu est de faire tomber la clé de sol dans chaque trou des blocs circulaires de touches de piano. Il faut éviter de tomber sur la zone rouge qui est une zone interdite pour l'utilisateur. Sinon, il faut recommencer tout le niveau. Il faut donc arriver jusqu'au dernier bloc de touches de piano tout en bas de l'écran sans toucher la moindre zone rouge (il ya au total 12 blocs à franchir). Dans chaque niveau, il y a un fragment du célèbre morceau de musique du groupe rock Evanescence "My immortal" que j'ai interprêté moimême au piano. Tous les fragments de musique sont bien évidemment dans l'ordre. Le but étant de d'accéder à chaque niveau et de découvrir tous les fragments de musique. Lorsque tous les niveaux seront débloqués alors vous aurez réussi à reconstruire integralement le morceau de musique "My immortal" du groupe Evanescence. Quand vous débloquez un niveau, un menu s'affiche indiquant "you are the winner!". Il faudra alors cliquer en haut à gauche de l'écran sur le bouton menu principal pour ouvrir les autres niveaux. Dans le menu principal, tous les niveaux contiennent un fragment de la musique "My immortal". De toutes les manières vous ne pouvez pas débloquer le niveau suivant tant que vous n'avez pas résussi à atteindre le dernier bloc de touches de piano tout en bas de l'écran. Vous ne pouvez pas non plus retourner à un niveau précédent si celui-ci a été validé. Les niveaux déjà réussis apparaitront sous la forme de boutons grisés lorsque vous passerez le curseur de souris sur ces boutons dans le menu principal. Game Play D'un point de vue fonctionnel, au niveau game play, il faut pour jouer appuyer sur les touches du clavier flèche gauche et flèche droite, ce qui permet de faire tourner les blocs de touches de piano circulaires qui sont tous orientés de manière aléatoire. Lorsque la clé de sol n'est plus en collision avec le bloc de touches de piano cicrculaire, vous tombez dans un trou et vous vous retrouvez dans un autre bloc de touches de piano circulaire. Pendant que la clé de sol tombe, le son se coupe puis reprend uniquement quand la clé de sol touche les blocs de touches de piano circulaire. Vous pouvez tout à fait tomber sans toucher plusieurs blocs de touches de piano à la fois. Ce jeu impose donc d'avoir beaucoup de réflexes car lorsque la clé de sol tombe à grande vitesse, il faut faire attention à la manière d'orienter les blocs pour ne pas faire tomber la clé de sol dans la zone rouge. A vous de jouer et de débloquer tous les niveaux pour reconstruire intégralement "My immortal".
Océan ultra réaliste Blender Evee
00:11

Océan ultra réaliste Blender Evee

Court-métrage: animation d'un océan réaliste réalisé dans le cadre de mon cursus en école d'ingénieur. L' objectif de ce mini workshop était de présenter un sujet pour expliquer aux youtubers une technique de notre choix avec l'utilisation de Blender. J'avais donc choisi le thème de la réalisation de vagues réalistes en Blender 2.91. Détail des techniques utilisées : - incrustation d'une HDRI (skybox) dans le décor 3D. L'HDRI doit être correctement mappée par rapport à la caméra pour donner une impression de profondeur - système d'éclairage avec un croissant de lune en mode émission. Le rayon de lumière a été placé de manière à ce qu'il soit en cohérence avec la position de la caméra. - création de vagues avec le modificateur Wave de Blender et animation avec une keyframe sur le modificateur au niveau de l'intensité et du nombre de vagues. J'ai également ajouté des variations aléatoires concernant les plus petites vagues - ajout d'écume pour augmenter le réalisme des vagues - création de shaders avec les nodes pour gérer le matériau de l'océan. - ajout d'effet de post-production: bloom, ambiant occlusion pour faire remonter les basses lumières, depth field pour augmenter le flou directionnel + scutering + fog léger et réglages des samples pour le grain de l'image. - montage vidéo directement dans Blender pour loader toutes les séquences d'images en png - ajout de contrastes dans les shaders pour finaliser le rendu
Scene Graphique OpenGL 2 0 C++ quaternion real world
04:47

Scene Graphique OpenGL 2 0 C++ quaternion real world

Scène graphique réalisée avec OpenGL et C++. Les composants qui ont été développés sont: - L'affichage (chargement du décor dans une map), affichage d'objets comme les véhicules, ainsi que des arbres low-poly, panneaux de signalisation, lampadaires). Affichage d'un bras animé avec une arme (.obj animé). - Création d'un convertisseur de données capable d'afficher des triangles, des normals, des textures (.obj). - Création d'une skybox - Ajout de brouillard (fog) - Création d'un système de simulateur (mouvement basic pour le véhicule) - Possibilité de changer de caméra (vue à l'intérieur du véhicule, passer en mode FPS ou rester positionné derrière le véhicule). - Ajout d'ennemis (IA) qui suivent le joueur principal et s'ils le touchent, le nombre de vies du joueur principal diminue. Si l'ennemi reçoit une balle, son capital de vie diminue puis il tombe à terre (animation) et meurt. - Intégration d'un moteur mathématique (vecteur, matrice, quaternion, transformations) Ici, GLRotatef() a été remplacé par des quaternions (passage de quaternions à matrice). Explications concernant les quaternions: - implémentation de la classe quaternion() - opération sur les quaternions dont la multiplication qui nous servira plus tard - calcul de matrice de rotation - remplissage de la matrice - dérivation de la matrice à partir du quaternion - affichage de la matrice avec glMultMatrix() Le but de ce projet était de créer un moteur de jeu libre basé sur OpenGL et d'appliquer des rotations sur les objets avec des quaternions (projet réalisé dans le cadre d'une soutenance en école d'ingénieur informatique).
bottom of page