The fate of Marcus

a marqué ce sujet comme résolu.
Auteur du sujet

Salut tout le monde !

Je suis SuperFola, jeune développeur de 19 ans, et j’aimerai vous présenter mon dernier projet en date, The fate of Marcus. (oui, je reviens encore avec un nouveau projet)

J’ai découvert la programmation il y a maintenant 7 ans, et il y a peu je me suis mis au C++ (et à OpenGL, j’ai même fait une petite lib de surcouche pour en simplifier l’usage dans mon jeu mais c’est pas le sujet).

En savoir plus sur le projet

Genèse

J’ai lancé ce projet de jeu en aout 2018, souhaitant faire un jeu en 3D, pour découvrir comment cela fonctionnait sous le capot. Je me suis très vite orienté vers OpenGL (au grand dam de certains ahah) et un monde fait des cubes (comme Minecraft me dira-t-on).

Des cubes ? Pourquoi ? Copieur !

Eh… les cubes, en 3D, c’est simple à gérer. Pour commencer c’est même génial, on peut faire plein de trucs avec, et ça donne déjà assez de maux de tête comme ça.

Je suis donc parti sur des voxels (pixels 3D, comprendre "des cubes"), et un univers d’une taille 720x16x720 (en voxels), généré par bruit de perlin. Le joueur évolue dans un monde fait de cubes, construit de sorte à produire un environnement calme, avec des musiques pour aider le joueur à se détendre (comme dans Proteus : https://twistedtreegames.com/proteus/).

Le but du jeu est d’explorer un monde nouveau à chaque parties, dans lequel sont éparpillées les notes d’un aventurier, Marcus. Le joueur va donc explorer cet univers (ou pas, comme bon lui semble, le jeu a été conçu pour aider les gens à se détendre, chacun est libre de faire ce qu’il veut) pour récupérer ces notes, et découvrir l’histoire de Marcus, un ex jardinier qui s’ennuyait et a voulu changer de vie en embarquant dans un vaisseau spatial en 2130, pour coloniser une planète avec un petit équipage. Tout y est à faire, nous allons donc suivre les déboires et pensées philosophiques de Marcus au travers de ce journal.

Avancement

Le jeu est terminé, et la première version publique est disponible : https://superfola.itch.io/the-fate-of-marcus

Il ne manque que les notes (je suis en train de les rédiger, sous peu le premier chapitre sera disponible), et des correctifs de bugs (mais pour ça j’ai besoin de retours de joueurs/euses, et de temps).

Les rares bugs connus ne gênent pas la progression du joueur (i.e. le jeu ne plante pas ou n’a pas un comportement erratique) et sont listés ici :

  • placement/destruction de bloc qui n’est pas au point (bloc placé au mauvais endroit / non détruit)
  • maisons au bord de l’eau qui sont légèrement distordues

Objectifs

Créer une petite communauté de joueurs et joueuses, le profit n’est pas mon intérêt principal. Pourquoi avoir mis un prix alors ? Pour éviter de le retrouver sur des sites russes à 15€. (On pourrait me dire que des gens pourraient l’acheter et le revendre après, certes, mais je pense qu’ils sont très peu nombreux comparé aux gens que je veux éviter)

Le projet et son originalité

Un monde cubique, "comme Minecraft", mais avec une histoire, et le fait que l’on ne puisse poser que des blocs utilisateurs (roses pour le moment) et casser ceux-ci seulement ! Le but n’est pas de tuer des mobs, ni de créer son histoire (car la map change à chaque lancement du jeu), mais de découvrir l’histoire de Marcus, et/ou de se détendre en jouant à mon jeu. :D

J’ai oublié d’ajouter que j’ai beaucoup travaillé les éléments graphiques (pas les textures, mais les shaders) pour ajouter du vent sur les fleurs, l’eau, et également un brouillard dynamique, pour donner un look unique au jeu ;) Si jamais quelque chose ne colle pas, hésitez pas à m’en faire part (sauf si c’est le soleil ou la skybox étrange, c’est tout à fait normal ça, c’est lié à la scène finale du jeu :D )

Édité par SuperFola

Python is good | CV | Kafe lang (C++17) et Unamed (C++14/SFML2.4)

+5 -0
Auteur du sujet

Salut !

Je suis en train d’ajouter les éléments d’histoire petit à petit dans le jeu, déjà 9 notes du journal de Marcus (sur les 42 de prévues) sont disponibles.

Petite précision, car je me rends compte que je n’ai pas été clair quand j’ai parlé du projet: The fate of Marcus est à moitié un jeu vidéo, à moitié un livre. Le joueur se balade donc dans le livre pour découvrir les différentes pages de celui-ci! :D

Le jeu est stable à 99%, on m’a rapporté quelques bugs mineurs (graphiques essentiellement) que je compte régler sous peu, pour continuer l’ajout des notes du journal.

Par stable à 99%, je ne veux pas dire qu’il y a 1% de chance qu’il crash, sur ce point il n’y a aucun risque, il n’est juste pas à l’hauteur de mes attentes (il marche parfaitement chez moi mais chez d’autres personnes, certains chunks sont invisibles).

Petite information supplémentaire: quand tous les chunks sont chargés (donc que le monde entier a été visité), le jeu ne consomme que 700 Mo de RAM (grand maximum), mais cela n’impacte en aucun cas les performances en jeu (sauf si vous avez réglé la render distance sur 45, soit la taille du monde, là votre carte graphique va souffrir).

PetitÉnorme spoiler pour ceux qui aimeraient comprendre le but final du jeu:

Tu es sûr de vouloir lire ça?

Le monde change à chaque lancement du jeu. Le soleil tourne autour de l’axe vertical y. Le brouillard est incohérent (je veux dire, son apparition), le vent qui joue dessus ainsi que sur l’eau et les fleurs l’est également. Ce monde représente le cerveau de Marcus, tombé dans le coma peu de temps après avoir écrit sa 42ème note de journal… Vous aurez donc compris que le joueur n’est autre que Marcus, qui cherche ses fragments de mémoire! Toutes les incohérences du jeu sont "scénaristiques" (si l’on peut dire), en lien avec le désordre qui s’est développé dans le cerveau de Marcus. Cela explique également pourquoi le joueur ne peut pas poser de blocs autre que les roses, ni casser de blocs autre que les roses qu’il a posé.

Python is good | CV | Kafe lang (C++17) et Unamed (C++14/SFML2.4)

+3 -0

Cette réponse a aidé l’auteur du sujet

Salut !

J’ai découvert ton projet sur Not a name et maintenant je suis les avancés ici ! Franchement pour quelqu’un qui commence le C++ et OpenGL c’est déjà très bien et prometteur ! Le concept est vraiment originale et l’ambiance voxel intéréssante ! Juste un petit conseil : Essaie éventuellement de supporter d’ancienne version de OpenGL, ( 2.1 / 3.1 ) certains d’iront que c’est inutile mais honnètement pour des pc (comme le mien :D) qui ont un support OpenGL déplorable ça sauve vraiment la vie !

Hâte de voir la suite !

PearlCLR | Le succès est un mauvais professeur. Il pousse les gens intelligents à croire qu’ils sont infaillibles. - Bill Gates

+3 -0
Auteur du sujet

Hey !

Désolé de la réponse tardive, j’ai totalement zappé (comme entre temps je t’avais répondu sur Discord :v) !

Je vais ajouter un support pour OpenGL 3.1 sur ma todo list alors ;)

Niveau nouveautés sur le projet, je fixe quelques bugs qu’on m’a remonté, lentement parce qu’on entre en période de DS dans mon école :)

PS: les seules nouveautés qui viendront désormais seront des bug fix, et de l’ajout de contenu au niveau de l’histoire

Python is good | CV | Kafe lang (C++17) et Unamed (C++14/SFML2.4)

+1 -0
Auteur du sujet

Salut !

Petite nouveauté, j’ai ajouté des biomes: forêt et désert ! La différence notable se situe dans les décorations qu’on peut y trouver (absence de fleurs ou d’arbres, mais présences de champignons et de toiles d’araignée).

Les bugs les plus gênants suivants ont également été fixés :

  • crash du jeu lors d’un changement de chunk
  • crash du jeu qui essayait d’atteindre des blocks en dehors d’un chunk
  • possibilité de sauter à travers des blocks au dessus de la tête du joueur

La fonctionnalité "pose de blocks" a été revue: au lieu d’utiliser la souris pour poser un block, on appuie sur E, on le déplace avec WASD (ou ZQSD) et on valide avec E (ou on annule avec R).
L’intérêt est double: la pose de blocks prendra plus de temps (et un petit "bug" s’est ajouté, mais il n’est pas méchant, on peut creuser en déplaçant le block à poser sur des blocks existants, et le jeu ne plante pas. C’est plus une feature inattendue qu’un bug en fait (parce que j’ai oublié un if pour empêcher ça)), et la pose de block à la souris était totalement aléatoire (alors que j’utilise exactement le même code dans un autre projet sans soucis :thinking:).
En prenant plus de temps pour poser un block, le joueur restera en jeu plus longtemps, et en soit cela allonge la durée de vie du jeu !

Image utilisateur
Image utilisateur
Image utilisateur
Image utilisateur

Le jeu fonctionne à priori sur toutes les distro Linux (uniquement 64 bits).

Par contre, il fonctionne uniquement sur Windows 10 (uniquement 64 bits)

Python is good | CV | Kafe lang (C++17) et Unamed (C++14/SFML2.4)

+0 -0

Salut ! :ange:

Bravo pour les progrès que tu as faits !

Par contre, il fonctionne uniquement sur Windows 10 (uniquement 64 bits)

Pourquoi ?

En tout cas, Bravo !

PearlCLR | Le succès est un mauvais professeur. Il pousse les gens intelligents à croire qu’ils sont infaillibles. - Bill Gates

+1 -0
Auteur du sujet

Hey!

Cela vient du fait que je n’ai que Windows 10 pour compiler le projet (à vrai dire, j’ai aussi un Windows 7 et un XP, mais qu’en 32 bits), et que j’utilise donc des dll propres à ce système. Néanmoins une version pour Windows 7 est toujours prévue étant donné que c’est un système largement utilisé :)

Merci pour ton commentaire, ça fait plaisir !

Bonne journée :D

Edit: en fait j’ai mal compris le fonctionnement des dll et tout, cf le message de Lynix qui explique bien mieux

Édité par SuperFola

Python is good | CV | Kafe lang (C++17) et Unamed (C++14/SFML2.4)

+1 -0

Cette réponse a aidé l’auteur du sujet

Cela vient du fait que je n’ai que Windows 10 pour compiler le projet (à vrai dire, j’ai aussi un Windows 7 et un XP, mais qu’en 32 bits), et que j’utilise donc des dll propres à ce système.

SuperFola

Ça ne marche pas tout à fait comme ça sous Windows (heureusement), et à vrai dire ça marche plus comme ça sous Linux que sous Windows (à cause du fait que sous Windows on a tendance à redistribuer les bonnes dll à chaque fois).

Du coup ton application est liée avec les DLL systèmes et aussi potentiellement les redistribuables de Visual Studio si tu utilises MSVC (et là ça dépend de la version du compilateur que tu utilises), que tu peux installer sur un Windows 7 sans trop de problème (il doit même il y avoir moyen de les installer sur Windows XP).

Il faut juste donc installer les redistribuables de Visual Studio (pour VS 2017 x64 : https://aka.ms/vs/15/release/VC_redist.x64.exe ) sur l’OS avant de lancer l’exécutable et ça devrait faire le café.

Continue comme ça ;)

Nazara Engine (Moteur de jeu amateur en C++) - Rejoignez le Discord NaN ! (Chat dédié à la programmation)

+3 -0

Bonjour, petit message pour dire que ce projet m’intéresse…mais que les liens de toutes les images sont cassés. C’est dommage. X/

Edit: Aaaaah non, c’est juste le proxy de mon boulot. J’ai rien dit, désolé. Bon ben je vais suivre ce projet, ça aura activé les notif au moins. :)

Édité par Genroa

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

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