Julien BERNARD
Développeur Unity
Programmation gameplay C#
Unity Developper
Gameplay Programming in C#
Tél : 06 84 61 11 61
E-mail : julienbernard1981@gmail.com
Tel : +33 6 84 61 11 61
E-mail : julienbernard1981@gmail.com
Mon profil ?
My profil ?
Me contacter ?
Contact me ?
Mes réalisations ?
My works ?
Ma certification ?
My certification ?
Salut !
Moi c'est Julien, jeune développeur Unity.
Mon expérience vidéoludique a débuté en tenant une manette d'Atari
2600, dans les années 80, et n'a jamais cessé de croître depuis.
J'affectionne les jeux de stratégie, les RPG ou MMORPG mais plus
particulièrement les courses de voitures.
Après 15 ans de commerce, qui m'ont permis d'apprécier le travail en
équipe et d'en manager certaines, j'ai décidé de changer de carrière
afin de pouvoir mêler passion et vie professionnelle.
Je m'en suis donné les moyens par une formation intensive dans une
école spécialisée dans le développement informatique (www.3wa.fr) et obtenu la certification Unity.
Je cherche maintenant de nouvelles opportunités d'emploi.
N'hésitez pas à me contacter !
Hey !
My name is Julien, a young Unity developer.
My gaming experience started in the 80's with an Atari 2600 controller
in my hands, and has never stopped growing since then.
I am fond of strategy games, RPGs or MMORPGs but especially racing
cars.
After 15 years of business, which allowed me to appreciate teamwork
while being team manager, I decided to change profession in order to
combine passion and professional life.
I provide myself with the means of achieving intensive training in a
computer development specialized school (www.3wa.fr) and obtained the Unity certification.
I am now looking for new job opportunities.
Please do not hesitate to contact me !
PORTFOLIO
POWER RACING
Voici les Screenshots d’un projet personnel de fin de
formation, après 2 semaines de travail.
L’idée est de réaliser un jeu auquel j’aimerais jouer et dans
lequel il me sera possible d’appliquer toutes les techniques et
les concepts appris, je me suis donc orienté vers les courses de
voitures.
Les Assets graphiques viennent de l’Asset Store de Unity.
La première difficulté rencontrée était les
Wheel Colliders, indispensables dans un jeu de voiture pour
un bon Gameplay, mais plus complexe à gérer que des «
Colliders » classiques. La documentation de Unity et quelques
tutoriels m’ont permis de les maîtriser.
Pour la version de démo, les Dolly Tracks de
Cinemachine ont remplacé l’IA qui sera codé par la
suite.
Des Scriptable Objects regroupent les infos du joueur
reprises par l’UI et les infos de course.
After 2 weeks of work, here are the pictures of the end of
training personal project.
I went to racing cars because I wanted to make a game that I
would have loved to play my-self and in which I would have being
able to apply all learned techniques and concepts.
The
graphical assets come from Unity Asset Store.
The first
difficulty encountered was the Wheel Colliders , which is
essential in a car game for a good Gameplay and more
complex to manage than classic "colliders". Unity documentation
and some tutorials allowed me to master the
Wheel Collider element.
For simplicity in the demo
version the AI was not coded but the Dolly Tracks of
Cinemachine were used (There will be a real AI after).
Scriptable Objects contain the player's information
taken from UI and the race info.
Pour déterminer la position de chaque bolide mais surtout celle du
« joueur », des Box Colliders en Is Trigger ont été
intégrés sur le parcours. En ajoutant le tour dans lequel se
trouve la voiture à la valeur du « Collider » franchi, cela donne
un Int pour chaque véhicule. Il suffit alors de les
comparer entre eux pour déterminer les positions des concurrents.
L’autre difficulté a été de gérer les Dolly Tracks pour
l’attente du feu vert par les autres véhicules. Pour le
joueur il a suffi de désactiver le code jusqu’au feu vert.
Après recherche, la solution est venue d’une mise de la vitesse, à
0, des Dolly Tracks pendant le compte à rebours. Cette
recherche m’a également permis de créer un « menu pause ».
Par la suite, le décor a été rendu destructible pour augmenter le
coté fun du jeu. Ainsi, tous les véhicules passifs ou
actifs explosent au contact du « joueur » et lui rapportent des
points. Quant aux éléments de décor non mécaniques (qui
n’explosent pas), ils disparaissent quelques secondes après la
collision avec le « joueur ».
To determine the position of each car, but especially player’s one
were added
Box Colliders in Is Trigger on the track. When
adding the lap in which the car is to the value of the "collider"
crossed, give an Int for each vehicle. It only needs to
compare them to determine cars’ position.
The other
difficulty was managing the Dolly Tracks to wait for the
green light for other vehicles. For the player one it was
enough to disable the code until the green light. After searching
the solution came from setting the speed of
Dolly Tracks to 0 during the countdown. This research
also allowed me to create a "pause menu".
Subsequently the
scenery was made destructible to increase the fun side of
the game. Thus, all passive or active vehicles explode in contact
with the "player" and earn him points. All non-mechanical
(non-exploding) elements of the scenery disappear a few seconds
after the collision with the "player".
FLOATED VILLAGE
Floated Village est un puzzle game dont le but est de faire entrer
l’eau en contact des zones fertiles, représentées par les blocs
verts, et ainsi d’y faire pousser un arbre. Pour cela vous devrez
créer vous-même un canal à travers le sable en supprimant les
blocs.
Il a été Buildé sur Android mais il est possible de
le passer sur IOS.
Sur les bases du code du jeu de la vie, réalisé la même
semaine, chaque case, autour de l’ « eau » , est testée afin de
déterminer si la propagation est possible, ou s’il y a une zone
fertile pour y faire pousser un arbre.
Il s’agissait d’un
exercice dont le but était de faire un jeu mobile et d’y intégrer
des publicités. Ainsi il n’y a pas de gameplay élaboré ni d’UI,
mais plutôt une bonne base pour créer un jeu plus complet.
Floated Village is a puzzle game that aims to bring water into
contact with fertile areas, represented by green blocks, and thus
grow a tree. For this you will have to create a channel yourself
through the sand by removing the blocks.
It has been Build on Android but it can be switched
to IOS.
Based on the code of the game of life, made the same week,
each box, around the "water", is tested to determine if the spread
is possible, or if there is a fertile area to do it to grow a
tree.
It was an exercise that aimed to make a mobile game
and to include advertisements. So there is no elaborate gameplay
or UI, but rather a good base to create a more complete game.
3D ANIMATION / AI
A partir d’un modèle 3D humanoïde et d’un panel d’animation il a
fallu organiser l’Animator. Ainsi un Blend Tree a
été créé pour gérer les mouvements de déplacement que ce soit la
marche ou la course. Des Sub-State Machines ont permis de
regrouper les animations d’une même séquence de mouvement. Par
exemple pour le saut, elle regroupe la prise d’élan, le saut et
l’atterrissage.
Le but de l’IA est de détecter le joueur pour cela
j’ai codé 12 RayCast qui parte de l’IA et qui vise
chaque articulation du joueur. Si 6 des 12
RayCast atteignent leur cible, l’IA se dirige vers
le joueur alors il n’a plus qu’à s’échapper et se cacher
derrière un élément de décor. Une fois semée, l’IA se
dirigera vers le dernier emplacement du joueur connu,
regardera à droite puis a gauche avant de rependre sa ronde à
l’endroit où elle avait été interrompue.
From a 3D humanoid model and an animation panel it was necessary
to organize the Animator . Thus a Blend Tree has
been created to manage movement movements whether walking or
running. Sub-State Machines allowed to group the
animations of the same sequence of movement. For example for the
jump, it includes the momentum, the jump and the landing.
The purpose of the AI is to detect the
player for that I coded 12 RayCast which starts
from IA and which targets each articulation of the
player . If 6 of the 12 RayCast hit their target,
the AI moves to the player so they just have to
escape and hide behind a decorative element. Once sown, the
IA will move to the last known player location,
look to the right and left, then return to the round where it was.
interrupted.
L’Invers Kinematic ou l’IK, pour les familiers du
terme, a été abordé dans cette exercice. Le joueur tend les
mains dès qu’il s’approche d’un mur ou d’un décor vertical mais
aussi il pose la main sur les poignées de porte pour les ouvrir en
suite.
Le Level Design a été réalisé avec le plugin
ProBuilder.
The Kinematic Invers or the IK , for the familiar
of the term, was discussed in this exercise. The
player extends his hands as soon as he approaches a wall
or a vertical decoration but also he puts his hand on the door
handles to open them in continuation.
The Level Design was realized with the
ProBuilder plugin.
BATTLE SOUND
Temps de travail : 3 jours et 2 jours pour l'UI
Jeu musical abstrait dont le but est de faire passer le flux
de notes dans les haut-parleurs pour que la musique puisse être
jouée.
Projet qui a pour but d'utiliser l'Effector de
Unity et la génération de particule.
Jeu réalisé sans asset
graphique. j'envisage d'en faire une version mobile.
J'ai
utilisé ce projet pour étudié l'interface utilisateur (UI)
Working time: 3 days and 2 days for UI
An abstract musical game whose goal is to make the flow of
notes pass through the speakers so that the music can be played.
Project that aims to use Unity's Effector and
particle generation.
Game realized without graphic asset. I
plan to make it a mobile version.
I used this project to
study the user interface (UI)
RENEGADE RELOADED
Durée du projet : 1 semaine
Renegade Reloaded est un beat'em all en 3D simulée à la
Street of Rage ou Double Dragon avec les assets graphiques
d 'Incubattle.
C'est mon premier projet en équipe, nous nous
sommes répartis les taches afin d'éviter tous soucis de mise en
commun.
Je me suis occupé de tout ce qui était inhérent au
joueur de l'animations, à partir de Spritesheets, à la
création des Hits Box et des Hurts Box mais aussi de
la State Machine qui permet au joueur d'avoir un large
éventail de coups et de mouvements à effectuer à des moments
particuliers.
Par exemple pouvoir faire une attaque aérienne
seulement si le joueur est en plein saut ou pouvoir enchaîner une
série de coups différents.
Cela à été un travail de codage
long et fastidieux mais très intéressant.
Duration of the project: 1 week
Renegade Reloaded is a beat'em all simulated 3D like Street
of Rage or Double Dragon with the graphic assets of Incubattle.
This is my first team project, we spread the spots to avoid
any pooling concerns.
I took care of everything that was
inherent to the player to the animations, from
Spritesheets, to the creation of Hits Box and
Hurts Box but also the State Machine which allows
the player to have a wide range of moves and actions to perform at
particular times.
For example to be able to make an air
attack only if the player is in jump or to be able to chain a
series of different shots.
This has been a long and tedious
coding job but very interesting.
GHRÔM : BEER'S ADVENTURE
Temps de travail : 1 semaine
En créant les aventures de Ghrôm, j'ai appris l'animation en
2D avec l'Animator de Unity et le Blend Tree.
Début de Level Design avec des mouvements de caméra
montrant les zones intéressantes et pas forcement visible sans
faire de saut à l'aveugle.
Création aussi de téléporteurs
permettant a Ghrôm de ne pas mourir dans une chute malencontreuse.
Je projette d'en faire un Runner adapté pour mobile
avec de nouveaux assets graphiques.
Working time : 1 week
In creating Ghrôm's adventures, I learned 2D animation with
Unity's Animator and Blend Tree.
Beginning of
Level Design with camera moves showing interesting areas
and not necessarily visible without jumping blind.
Creation
also of teleporters allowing Ghrôm not to die in an unfortunate
fall.
I plan to make it a Runner adapted for mobile
with new graphic assets.
Testez le en cliquant ici
Clavier :
Fleches pour diriger Ghrôm
« barre
espace » pour Sauter
« 0 » pavé num pour Courir.
Manette (Xbox):
Joystick gauche pour diriger Ghrôm
« B » pour Sauter.
« A » pour Courir.
Test it by clicking here
Keyboard :
Arrows to steer Ghrôm
« Space bar »
to Jump
« 0 » numpad to Run.
Controller (Xbox):
Left Stick to steer Ghrôm
« B » to Jump.
« A » to Run.
TANK INVASION
Temps de travail : 1 semaine
Avec Tank Invasion, j'ai créé mon premier jeu vidéo. C'est
aussi la première fois que je codais en C#.
J'ai decouvert
les méthodes LookeAt, Instanciate et Destroy.
Mais aussi la fonction OnTriggerEnter.
J'ai réussi à
générer aléatoirement l'apparition des ennemies.
Premiers pas sur Unity. J'ai créé les Prefab avec une
attention particulière pour le joueur.
J'ai aussi appris
interaction des Box Collider entre eux.
Working time: 1 week
With Tank Invasion, I created my first video game. It's also
the first time I coded in C #.
I have met LookeAt,
Instanciate and Destroy methods. But also the
OnTriggerEnter function.
I managed to randomly
generate the appearance of enemies.
First step on unity. I created Prefabs with special
attention for the player.
I also learned about
Box Collider
interaction with each other.
Testez le en cliquant ici
Fleches pour diriger votre char.
« barre espace » pour
tirer
« 0 » pavé num pour booster.
Amusez vous bien !
Test it by clicking here
Arrows to steer your tank.
Space bar to shoot
"0" numpad to boost.
Have fun !