Solus 125

Un sidescroller 3D avec l'Unreal Engine 4

a marqué ce sujet comme résolu.

Bonjour à tous ! :)

J'ai 17 ans et je suis en Terminale S. J'ai débuté la programmation il y a deux ans, puis, je me suis intéressé à la création de jeux-vidéo. J'ai alors découvert, grâce aux forum d'OC l'Unreal Engine 4. Après en avoir acheté une licence, j'ai cherché à créer un projet. Je me suis alors embarqué dans un jeu de puzzle FPS, mais le résultat ne me plaisait pas alors j'ai abandonné. Ce projet m'a pourtant permis d'acquérir les bases du moteur et de son workflow. Souhaitant me familiariser avec l'API C++, j'ai cherché un projet un peu compliqué et suis donc arriver à la conclusion que faire un sidescroller 3D shooter était un projet de taille raisonnable. Le projet a donc été débuté en Octobre 2014. J'ai décidé de nommer le jeu Solus 125.

Le Gameplay

Solus 125 est un jeu en vue de coté (sidescroller), mais les graphismes du jeu sont en 3D. Le joueur a la possibilité de tirer, à l'aide d'un système de visée sur 360°.

Le personnage navigue de salle en salle. Chacune d'elles est générée procéduralement et est composée de plate-formes, d'ennemis, et d'objets qu'il est aussi possible d’attraper pour regagner de la vie ou recharger son arme. en munitions. Il est aussi nécessaire de récupérer trois objectifs présents dans chaque salle, afin de déverrouiller l'accès à la salle suivante.

Entre chaque salle, le joueur visite une boutique dans laquelle il peut acheter des améliorations, en utilisant l'argent qu'il a gagné en tuant des ennemis. Au bout d'un certains nombre de combats, le joueur se retrouve dans une salle où il doit se battre contre un boss.

L'Histoire

L'humanité est en péril ! La terre se fait envahir par des hordes d'aliens ! L'origine de ce mal ? Un vaisseau extra-terrestre en orbite autour de la Terre, nommé par les humains "Solus 125". Un astronaute est alors envoyé, en dernier espoir pour sauver l'humanité, pour rentrer dans cette embarcation et saboter une partie vitale, afin de faire finir ce massacre.

Le jeu se déroule à bord du vaisseau alien. Vous êtes l'astronaute explorant le vaisseau à la recherche du cœur de celui-ci, avec pour objectif de le détruire.

C'est un scénario extrêmement stéréotypé, j'en ai conscience. Cependant, Solus 125 est un jeu qui accentue l'action sur le gameplay plutôt que sur l'histoire. Celle-ci ne sera évoqué qu'au début, éventuellement dans une cinématique ou dans un tutoriel.

Quelques détails techniques …

Le jeu est basé sur le moteur Unreal Engine 4. La plupart des assets créés jusqu'à maintenant, ont été modélisés avec Blender, puis texturés avec Photoshop. J'utilise les Layered Materials d'UE4.

Les animations ont été faites avec Maya et le plugin A.R.T. d'Epic Games. Néanmoins n'y faîtes pas attention ! Elles sont, tout comme le personnage principal, à retravailler.

L'Avancement Actuel et les Objectifs du Projet

Actuellement, le jeu est fonctionnel. Il est jouable et est même plutôt fun ^^ ! Les niveau sont générés de manière procédurale. Trois ennemis ont été créés, ainsi que plusieurs améliorations (Santé, bouclier, vitesse, double saut, quelques armes, régénération de vie).

Il reste encore beaucoup de choses à faire :

  • Modélisation du personnage principal
  • Système de boss
  • Un début ainsi qu'une fin
  • Plusieurs améliorations graphiques … etc

L'objectif est d'avoir un jeu pleinement fonctionnel, amusant à jouer, qui se base sur les réflexes du joueur. La génération procédurale permet aussi d'avoir une expérience toujours différente.

Quelques Images …

Un niveau classique

Quelques lasers ...

Un "morceau" de mur

Une plateforme

Le lance-rocket : Une des armes du jeu

N'hésitez surtout pas à émettre une critique !

J’essaierais de poster ici même le maximum d'information sur mon avancement sur le jeu. Si vous avez une question technique, concernant le gameplay, que quelque chose ne semble pas clair dans ma présentation, quelconques réactions et critiques concernant le jeu, ou bien simplement un message d'encouragement, postez un message sur le forum. Avoir un soutien moral fait toujours plaisir ! :)

+8 -0

Merci beaucoup pour vos remarques !

Attention au nom, il y a déjà un jeu 'Solus' sur UE4

En effet, je suis au courant, mais de toute façon, je ne suis pas pleinement content du nom. J'ai eu beaucoup de mal à en trouver un, et je suis resté sur celui-ci, car c'était, de tous ceux auxquelles j'avais pensé, celui qui me semblait le moins mauvais. Bien sur, si une meilleure idée me viens à l'esprit, je n'hésiterais pas à le changer.

Le smoothing de tes objets a de gros soucis, tu bake tes assets ?

Alors, passons au choses sérieuses !

En effet, j'ai toujours eu des soucis sur la plupart de mes objets lors du passage sur UE4. Je bake chaque objet sur Blender. Mes modèles High et Low poly sont smoothés dans Blender. Voici quelques images / textures sur le lance roquettes présenté dans le premier post :

Normal map bakée dans Blender

Low Poly smooth dans Blender

Wire du lowpoly

High Poly dans Blender

J'espère que ça suffira pour déterminer d'où viens le problème. Certes, ce n'est pas très gênant dans le sens où on voit assez peu de près les armes dans le jeu, mais j'aimerai tout de même pouvoir faire des modèles de qualité au niveau du rendu final ^^ .

En effet, je connaissais ton cours (et il m'a d'ailleurs été utile un très grand nombre de fois ^^ ), mais je n'avais jamais fait attention à l'ajout du edge split qui change effectivement beaucoup de choses !

Une petite image avec le nouveau smoothing !

Petite update !

Je suis en train de développer le premier boss du jeu. Ce dernier prend la forme d'une puissante tourelle. Le combat contre celle-ci est composé de deux patterns :

  • Elle tire des lasers dans un angle assez large à droite, puis à gauche, indépendamment de la position du joueur. De plus, au début de la séquence, le boss spawn des ennemis volants parasites : Ils n'ont pas une grande vie, mais à grand nombre, ils peuvent devenir une véritable menace ! Si on arrive à esquiver les tirs des ennemis et de la tourelle, c'est une phase plutôt facile. C'est donc le moment privilégié pour mitrailler le boss dans son point faible, une sorte d’œil ou de cœur lumineux.
  • Ensuite, elle se recharge pendant quelques secondes. Pendant celles-ci, elle vise le joueur avec son canon. C'est le moment de se protéger pour faire face à son attaque puissante ! Un gros rayon laser instantané, drainant immédiatement le bouclier du joueur, et diminuant fortement sa vie, s'il ne le tue pas complètement. Le rayon reste en suspend pendant quelques instants, puis le boss revient à son état initial.

Durant toutes ces étapes, il est possible de tirer sur le point faible du boss (et uniquement ici), pour lui faire perdre de la vie. De même, les ennemies créés pendant le première phase reste jusqu'à la mort du boss, à moins qu'ils ne se fassent tuer par le joueur, ou … par la tourelle (ce qui arrive souvent ^^ )

Voici quelques images :

Le boss

Dans son environnement

En jeu, pendant la première phase

N'hésitez pas à laisser un commentaire ou une critique !

Je trouve que le joueur/les objets au premier plan ne contraste pas suffisamment avec le fond. C'est dommage car du coup j'ai l'impression d'un fouillis, mais un fouillis avec de super graphismes ^^' .

Exemple : ton perso est un astronaute, il ne peut pas se balader dans un vaisseau alien en veste/jean.

Bonne chance, ça reste très prometteur !

+2 -0

Je trouve que le joueur/les objets au premier plan ne contraste pas suffisamment avec le fond. C'est dommage car du coup j'ai l'impression d'un fouillis, mais un fouillis avec de super graphismes ^^' .

En effet, c'est une remarque que m’ont fait beaucoup de personnes et que je comprend parfaitement. J'ai un peu de mal à dire pourquoi il y a ce "fouillis". J'ai l'impression que c'est dû à la répétition du fond, qui est du coup assez répétitive. De plus, tous les modèles ont plus ou moins les mêmes matériaux qui leur sont appliqués, ce qui ne crée pas énormément de variété ^^ . J'ai d'ailleurs un peu de mal à créer des matériaux différents qui contrastent entre les différents objets.

Une solution que je prévois, est de varier le fond en introduisant plusieurs modèles dans ce dernier, avec moins de lumières et moins de détails, afin que l'on puisse vraiment se concentrer sur le premier plan. Qu'en pensez vous ?

Exemple : ton perso est un astronaute, il ne peut pas se balader dans un vaisseau alien en veste/jean.

Humm :-° .... j'en ai déjà parlé dans mon premier post. Ce n'est qu'un modèle temporaire, en attendant que je me décide enfin à modéliser, sculpter, texturer, rigger, skinner, et animer un véritable astronaute.

Pour ce que ça intéresserai, mon projet à la base n'était pas du tout de créer ce type de jeu. Je souhaitais, tout d'abord, créer un sidescroller qui suivrait une vrai histoire. J'ai alors pu développer tout le système de combat que j'ai réutilisé dans la version actuelle. J'ai aussi modélisé un début de personnage (celui que l'on peut voir dans les images actuelles). Néanmoins, énormément de travail a dû être jeté à la poubelle : IA ennemi, plusieurs modèles 3D, et aussi tout un scénario que j'avais élaboré. A la place j'ai décidé de resté sur l'idée du sidescroller, en partant sur un rogue-like, avec un scénario très simple, afin de diminuer considérablement la quantité d'assets à créer.

Un truc vraiment fantastique avec les Blueprints, c'est que c'est simple, super bien fait, et que c'est aussi très facile à comprendre ! D'ailleurs, la programmation de ce boss me l'a fortement rappelé :

Note pour moi-même : Ne plus utiliser de Blueprints pour scripter quelque chose d'aussi complexe que les différents patterns d'un boss …

+1 -0

Nouvelle petite update ! Cette semaine on s'attaque à de la grosse modélisation.

Je me suis enfin décidé à modéliser le personnage principal : un astronaute. Je laisse juge du résultat :

Le rendu sous UE4 : 7 900 triangles

Pour ceux que ça intéresse :

Mon workflow :

  • Lowpoly pour préparer le sculpt sous Blender
  • Sculpt avec Blender
  • Retopology avec Maya et le plugin FroRetopo
  • UV mapping et Baking sous Blender
  • Texturing sous Photoshop et Blender
  • Layered Materials sous UE4

Lowpoly

Highpoly sculpté : 1 700 000 triangles

N'hésitez pas à émettre une critique !

Au passage, merci beaucoup à Particle qui s'est proposé pour me donner un coup de main sur la modélisation 3D :) . Attendez vous donc à plusieurs changements concernant la direction artistique du jeu.

Dans les prochains jours, je compte m'atteler au rigging, skinning et à la création de plusieurs dizaines d'animations pour ce fameux personnage, afin de l'intégrer pleinement dans le jeu.

+0 -0

Quelques modifications au niveau du modèle de l'astronaute :

Rendu sous UE4

De plus, le mesh a été totalement riggé, skinné, et j'ai aussi réalisé quelques animations. Maintenant, on ne peut plus me dire qu'il y a des incohérences à ce niveau :-° ! Voici pour preuve une capture prise in-game :

N'hésitez pas à émettre une remarque ou une critique !

Le fond est toujours trop répétitif à mon goût, mais sinon j'approuve :) !

poliorcetics

Le fond n'a pas évolué depuis le premier post. Je planche actuellement sur quelques designs que je posterai très prochainement, avec peut être un breakdown en vue qui traitera de la création de designs Sci-Fi et de l'utilisation de meshs mais aussi de textures modulaires. Du nouveau très bientôt ;)

Autrement, une autre question : tu utilise beaucoup de C++ ou pas ?

J'essaie de mélanger C++ et Blueprint. En gros, je met du C++ pour toutes les grosses classes qui sont très souvent utilisées (Création procédurale des niveaux, armes, personnage, niveaux). Ensuite, j'hérite ces classes par des blueprints sur lesquelles je peux assigner les attributs des classes C++. Par exemple, dans la classe C++ des armes, j'ai une variable qui indique le nombre de munitions dans le chargeur, ou encore une qui donne la quantité de dégâts infligé à une cible, et je les règles toutes dans un blueprint. Ainsi, je possède un blueprint par armes, qui héritent tous de la même classe C++ de base, et qui ont leurs propres variables, mesh, systèmes de particules, etc …

J'utilise aussi des blueprints pour scripter tous les petits "systèmes" : les upgrades du joueur, le HUD, les boss, les animations, … De l’expérience que j'en ai, je déconseille fortement (à moins de ne pas savoir coder) d'utiliser l'héritage entre blueprints. C'est trop limité, et il y a pas mal de problèmes.

Bonjour à tous :) !

Vous l'aurez peut-être remarqué, j'ai eu une petite baisse d'activité sur le projet, qui était simplement due au fait que je passais le BAC. Maintenant que c'est fini, l'activité et les news vont être beaucoup plus régulières (du moins je l'espère :P ) !

Pour ne pas revenir les mains vides, voici un second boss que je viens de terminer. Ce dernier rappelle les autres ennemis volants du jeu. Il est, comme le boss précédent, constitué de deux patterns :

  • Une où il pourchasse le joueur en lui tirant dessus ;
  • Puis, une où il balance un énorme rayon laser, occasionnant beaucoup de dégâts au joueur s'il se trouve dans sa ligne de mire. Ce dernier peut aussi utiliser l'environnement pour se protéger.

Dîtes moi ce que vous en pensez :

Les deux zones lumineuses sont ses canons et ses points faibles.

La première phase

La seconde phase

L'explosion finale !

Vous avez pu aussi voir un aperçu du nouvel HUD. Je ne m'y connaissais pas trop là-dedans donc j'ai bricolé au niveau du design avec Photoshop.

N'hésitez pas à émettre des critiques ! :)

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte