repush clean
continuous-integration/drone Build is passing

This commit is contained in:
2024-04-01 20:27:33 +02:00
commit 10e8ad3be8
155 changed files with 3945 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
---
title: AKIRA VR
subtitle: Jeux VR dev sous Unity
comments: false
---
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=LE+PRINCIPE)
Le but de ce projet est de reproduire le Neo Tokyo d'Akira, au volant de la moto de Kaneda, parcours les autoroutes niponnes en pleine ville suréaliste.
![AKIRAVR](../../images/jeux/AkiraCover.png)
Ce projet me permet de travailler sur les lumières et l'optimisation de celles-ci dans une scène sous Unity.
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=ROADMAP)
Il n'y en as pas vraiment, c'est mon projet le moins prioritaire pour le moment, idéalement, ajouter plus de routes / circuits, des ennemis et amèliorer la maniabilité de la bécane.
![AKIRAVR](../../images/jeux/akira-bike.png)
+65
View File
@@ -0,0 +1,65 @@
---
title: GOLDENEYE VR
subtitle: VR multiplayer retro classic remake
---
[![GEVR COVER](../../images/jeux/GEVRCover.jpg)](https://fr.wikipedia.org/wiki/GoldenEye_007)
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=LE+PRINCIPE)
Le but est de se rapprocher un maximum de la version N64 mais en VR : restituer l'ambiance et les mécanismes de l'original mais en y étant. Un principe des plus simple :
transposer GoldenEye 64 en PC VR avec une compatibilité maximale (Oculus Rift(s), HTC Vive, Windows MR, etc...).
Je développe sous Unity avec l'api Photon pour le multiplayer. Pour les mécaniques, c'est du pur script! Le projet est à vocation open source,
destiné pour les fans de GoldenEye 64 et de VR, le but est de créer une communauté pour améliorer continuellement le jeu à la manière de GoldenEye Source.
---------------
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=SCREENSHOTS)
#### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Orbitron&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=50&lines=les+niveaux)
![GEVR CAPTURE 1](../../images/jeux/CaptureGEVR1.PNG)
![GEVR CAPTURE 2](../../images/jeux/CaptureGEVR2.PNG)
![GEVR CAPTURE 3](../../images/jeux/CaptureGevrArchives.PNG)
(Toutes les maps du jeu originales sont présentes bien entendu!)
#### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Orbitron&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=50&lines=les+menus)
##### principal
![GEVR CAPTURE 4](../../images/jeux/CaptureGevrDiscord.PNG)
![GEVR CAPTURE 5](../../images/jeux/CaptureGevrMenu.PNG)
##### in game
![GEVR CAPTURE 6](../../images/jeux/CapturePauseMenu.PNG)
![GEVR CAPTURE 7](../../images/jeux/CapturePauseMenu2.PNG)
---------------
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=UPDATE+04/2020)
Suite au contexte de confinement, j'ai pû replonger dans le projet pour y avançer quelque peu.
Voici les petits ajouts et une petite update de la road map:<br>
- Ajout de différents modèle de player (Connery, Brosnan et Craig)<br>
- Ajout du plug-in Steam VR<br>
- Ajout du plug-in Photon Voice qui gère le dialogue par voix dans le jeu<br>
#### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Orbitron&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=50&lines=les+avatars)
![GEVR CAPTURE 8](../../images/jeux/CaptureGEVR5.JPG)
![GEVR CAPTURE 9](../../images/jeux/CaptureGEVR4.JPG)
![GEVR CAPTURE 10](../../images/jeux/CaptureGEVR6.JPG)
---------------
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=ROAD+MAP)
* Implémenter la création de room personnalisée pour faire des parties privée entre amis.<br>
* Intégrer les différents modes de jeu (deathmatch, teammatch, capture the flag, the man with the golden gun, etc...)<br>
* Ajouter des options de comfort comme la vignette lors du déplacement, la TP, le remappage des boutons.<br>
* Et des features auxquels je n'ai pas encore pensé!
+215
View File
@@ -0,0 +1,215 @@
---
title: LA 2029
subtitle: VR Shooter
comments: false
---
![LA 2029](../../images/jeux/CaptureTerminatorQuest00.png)
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=LE+PRINCIPE)
C'est un FPS en VR pour la plateforme Oculus Quest où l'on tire sur des terminators se présentant.
La recharge se fait de manière manuelle avec le magasin vide à éjecter avant de se munir du nouveau magasin à sa ceinture pour<br>
l'ammener à l'arme, ce qui recharge celle-ci.<br>
Le but est de rejoindre la fin du niveau en tuant un maximum de Terminators et en restant en vie : simple et éfficace!
![LA 2029](../../images/jeux/CaptureTerminatorQuest3.png)
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=LE+POURQUOI)
Je voulais tester de créer les scripts de mécanique de recharge manuelle de l'arme :<br>
une fois le magasin vide enlevé, on prends celui situé à gauche sur la "ceinture" et finalement celui-ci mis en place, l'arme se recharge.
L'aspect "limitation technique" vu le support mobile Quest est aussi ce qui m'a motivé pour ce projet.
Suite à la sortie du jeu Terminator Resistance, j'ai vraiment accroché avec l'ambiance que les
devs ont réussis à créer et étant un fan des films, je me suis lançé.<br>
C'est une version simple avec des assets téléchargées sur Sketchfab, le tout codé en une semaine.
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=LE+COMMENT)
La plateforme Quest étant limité en ressources ([Spécifications Oculus Quest](https://vr-compare.com/headset/oculusquest)), il fallait trouver un moyen d'optimiser le chargement des GameObjects en cours de niveau, j'ai donc implémenté le principe "d'object pooler".
Le principe s'articule autour de deux scripts fonctionnant de concert:
- Le premier script, l'ObjectPooler charge en début de scene un nombre défini d'instances de Gameobjects afin que ceux-ci soient disponibles et ainsi éviter des ralentissements en plein niveau.
- Le second se place sur des "Transform" où les GameObjects sont sensé apparaître. Un composant collider va déclencher l'apparition du GameObject dès que le joueur arrive à une certaine distance. Il suffit au script de piocher dans le "pool" des GameObjects chargés en début de scène.
<!--
![OBJECT POOLER](../../images/jeux/object-pooler.gif)
-->
<!--
##### ObjectPooler.cs
```cs
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class ObjectPoolItem
{
public int amountToPool;
public GameObject objectToPool;
public bool shouldExpand;
}
public class ObjectPooler : MonoBehaviour
{
public static ObjectPooler SharedInstance;
public List<GameObject> pooledObjects;
public List<ObjectPoolItem> itemsToPool;
void Awake()
{
SharedInstance = this;
}
void Start ()
{
pooledObjects = new List<GameObject>();
foreach (ObjectPoolItem item in itemsToPool)
{
for (int i = 0; i < item.amountToPool; i++)
{
GameObject obj = (GameObject)Instantiate(item.objectToPool);
obj.SetActive(false);
pooledObjects.Add(obj);
}
}
}
public GameObject GetPooledObject(string tag)
{
for (int i = 0; i < pooledObjects.Count; i++) {
if (!pooledObjects[i].activeInHierarchy && pooledObjects[i].tag == tag) {
return pooledObjects[i];
}
}
foreach (ObjectPoolItem item in itemsToPool) {
if (item.objectToPool.tag == tag) {
if (item.shouldExpand) {
GameObject obj = (GameObject)Instantiate(item.objectToPool);
obj.SetActive(false);
pooledObjects.Add(obj);
return obj;
}
}
}
return null;
}
}
```
##### ObjectLoader.cs
```cs
using UnityEngine;
using System.Collections;
public class ObjectLoader : MonoBehaviour
{
public string prefabName;
private Transform spawnPoint;
private GameObject clone;
void Start()
{
spawnPoint = this.transform;
}
void OnTriggerEnter(Collider col)
{
if(col.transform.tag == "Player")
{
LoadObject();
}
}
void OnTriggerExit(Collider col)
{
if(col.transform.tag == "Player")
{
UnloadObject();
}
}
void LoadObject()
{
GameObject clone = ObjectPooler.SharedInstance.GetPooledObject(prefabName);
if(clone != null)
{
clone.transform.position = spawnPoint.transform.position;
clone.transform.rotation = spawnPoint.transform.rotation;
clone.SetActive(true);
this.clone = clone;
}
}
void UnloadObject()
{
if(clone != null)
{
clone.SetActive(false);
}
}
}
```
-->
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=V2.0)
Suite aux critiques positive sur SideQuest, j'ai décidé de pousser un peu plus loin la complexité des mécanismes en scriptant un objectif:
détruire un batiment pour libérer le passage vers la fin du niveau.
Pour se faire, le joueur doit se munir d'une bombe à sa ceinture pour la déposer à un endroit spécifique qui déclenchera un compte à rebours,<br>
puis l'explosion du batiment qui libèrera enfin l'accès vers la fin du niveau.
![SCREENSHOT1](../../images/jeux/CaptureTerminatorQuest0.jpg)
![SCREENSHOT1](../../images/jeux/CaptureTent.JPG)
![SCREENSHOT1](../../images/jeux/CaptureTerminatorQuest2.png)
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=VIDEO+TEST)
En attendant le portage qui apportera des améliorations graphiques et au niveau du gameplay, voici une review sur Quest 2 :
{{< youtube 8Jfupw6VqgU >}}
La version 2.0 avec le deuxième level est disponible un peu plus bas en téléchargement via le sideloader Sidequest.
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=ROADMAP)
Pour la suite du projet, on passe sur PC, on oublie Oculus et on plonge dans l'open source avec openXR pour le côté VR.
Par la même occassion, on bascule sur la dernière version d'Unity (2021.3.15), on corrige les petits bugs et on repasse les textures en standard (bye bye textures mobile sans UV maps!).
Reste à peupler un peu plus la map maintenant que l'on est plus limité par un chipset mobile et on se lançe vers un niveau 3!
<!-- ![LA 2029](../../images/jeux/LA2029.png) -->
V 3.0 on the way!
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=TELECHARGER)
Télécharger la version 2.0 pour Oculus Quest (compatible Quest 2):
[![EXTERNAL](https://custom-icon-badges.demolab.com/badge/download-badge.svg?logo=package&logoSource=feather)](https://sdq.st/a/366)
[![STORE SIDEQUEST](../../images/logos/sidequest-logo.png)](https://sdq.st/a/366)
> (Oculus Quest nécessaire ainsi que SideQuest pour l'installation)
<!-- [TELECHARGER DE GREGANDEV](../../docs/TerminatorQuest/TerminatorQuest_v2.00.apk) -->
+71
View File
@@ -0,0 +1,71 @@
---
title: RETRO ARCADE GAME
subtitle: A tribute to retro classics
---
![RETRO-COVER](../../images/jeux/cover.jpg)
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=LE+PRINCIPE)
Le but est de fournir un jeu ludique et personalisé pour mes neveux, dans l'esprit
des jeux codés fin des années 90 : plateforme 2D à niveaux themés.
Pour ce faire, nous allons récupérer un tas de "sprites" (animation 2D ou suite de différentes poses du personnage) ainsi que des décors pour créer des scènes sous Unity.
Ensuite, le plus dur est de codé les mécanismes de jeu... mais heureusement, il y a des tutos pour ça! (voir youtube, tutos, unity)
Le cahier des charges est le suivant:<br>
- Un level type Mario World<br>
- Un level type Sonic<br>
- Un level type R-type<br>
- Un Level de type Street of Rage<br>
![RETRO-COVER](../../images/jeux/projetunity.jpg)
![CODE-CASTLE](../../images/jeux/code-castle.png)
![RETRO-COVER2](../../images/jeux/capture-sonic.png)
------
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=V2+WEBGL)
![RETRO-COVER](../../images/logos/webgl.png)
Cela fait un petit bout de temps que je voulais mettre en ligne la version 2 de mon projet de jeu mais des querelles de versions entre Unity et son plugin WebGL ainsi que le boulot m'ont
freiné dans le processus, mais voilà la V2.0 avec un niveaux vraiment complet ainsi que pleins de nouvelles mécaniques est là!
Un petit listing des updates:<br><br>
- Ajout d'un Game Manager qui persiste entre les scènes (persiste le score et les vies)<br>
- Le coup de poing est disponible avant l'arme <br>
- Le player peut désormais s'agenouiller<br>
- Ajout des dragons cracheurs de boule de feu<br>
- Ajout du boss Bowser<br>
- Ajout d'un Menu avec choix du perso <br>
- Nouveau HUD (affichage des vies et du score)<br>
- Nouveaux FX visuels <br><br>
J'ai dû en oublier mais l'essentiel est là. Pour essayer, toujours le même lien en dessous,
Pour les commandes, les manettes type Xbox360 sont reconnus ainsi que le clavier, control pour tirer, espace pour sauter<br>
> Version webGL (dans le navigateur):
[![EXTERNAL](https://custom-icon-badges.demolab.com/badge/webGL-logo.svg?logo=external-link&logoSource=feather)](../../docs/webgl/index.html)
------
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=V3.0+ANDROID)
![ANDROID](../../images/logos/android.png)
Nouvelle version avec un troisième level!
Beaucoup d'améliorations au niveau des animations et du gameplay:<br>
- Affinage du code des ennemis,<br>
- Ajout d'ennemis au niveau 2 (Sonic)<br>
- Ajout niveau 3 : Star wars en mode R-type pour ceux qui ont connus<br>
- Ajout du menu pause avec l'option quitter<br>
- Build Android avec contrôles tactiles<br>
> Télécharger au format APK:
[![LE JEUX VERSION ANDROID](https://custom-icon-badges.demolab.com/badge/download-badge.svg?logo=download&logoSource=feather)](../../docs/android/EwannEtMilhauVSVideoGames.apk)
------
### ![Typing SVG](https://readme-typing-svg.demolab.com?font=Anton&pause=1000&size=40&random=false&repeat=5000&color=343A40&width=435&height=70&lines=SCREENSHOTS)
![STREETS](../../images/jeux/CapturePreviewStreetofrageLevel.PNG)
(Les références à "One piece" & "Yu-Gi-Oh!", c'est pour mes neveux...)