Canalblog
Suivre ce blog Administration + Créer mon blog

GLCreate

12 mai 2014

On reprend les commandes !

planets_1

Système de planète

 

Après un long moment d’absence (à peu près 2 mois), un long standby pour m’occuper de mes études et de changer un peu d’idée, je vais enfin reprendre le cours du projet. Le projet était au moment où je me suis arrêté en stade d’amélioration de performance car le chargement de des parcelles de terrain (ou chunks pour les connaisseurs) était mal optimisé donc long et avais tendance à faire crasher l’ordinateur à partir d’une certaine taille de terrain…

Une fois le problème cerné, j’ai pu reconstruire le code de génération du terrain afin de ne plus avoir de ‘limite’ sur la taille de terrain et d’avoir une génération dynamique et fiable. Du point de vu graphique, le terrain était le même : la génération aléatoire était le même que celui de l’ancien code. Le terrain reste le même que ceux des images précédentes. Ce qui me posa un autre souci.

 Capture d'écran 2014-04-24 00

Trop de régularité !

 

En effet, le terrain généré me convenait pas parfaitement, il me semblait encore linéaire et régulier et le code de l’aléatoire était difficile à manier lorsqu’il fallait créer une planète et non un terrain strictement plat ! En fouillant sur internet une solution quelconque à mon problème, j’ai trouvé une bibliothèque spécialisé sur l’aléatoire : LibNoise


Cette librairie permet de créer facilement du bruit mais aussi de manière très simple des terrains de façon aléatoire. L’avantage, c’est que tout est fourni (librairie, documentation détaillée, exemple) et c’est très simple de l’utiliser ! De plus, le terrain que la bibliothèque génère est très réaliste.

Capture d'écran 2014-04-26 21

heightsphericalheightmap

Une planète généré avec la bibliothèque avec son planisphere (couleur et pronfondeur)

Le rendu est completement reussi et simple a gérer !

Dans un prochain article, je donnerai d’autre details sur cette librairie et sur un grand nettoyage du projet.

Publicité
Publicité
23 février 2014

Du niveau de détail et un terrain lisse !

Bonjours a tous,

Quelques nouvelles fonctionalités dans le projet, que voici :

  • Le niveau de détail (level of details : c'est la réduction de qualité selon la distance du personnage)
  • Le terrain généré est plus lisse et paraît donc plus réaliste.
  • Une montagne rouge ? Pourquoi est-elle rouge ? Simplement parce que c'est du jamais vu !

Voici les quelques images du jeu :

Source: Externe

Source: Externe

Source: Externe

Bien que ce soit bien parti, il y a des bugs :

-> entre les coupures de niveaux de détail différents, il y a des trous noirs. C'est pas bien grave, je m'en occuperais dès que possible.

-> plus génant, lors du déplacement du personnage, ça rame... Sachant que j'ai un très bon PC, pour celui qui veux jouer au jeu avec un PC moins performant que le mien, ça ne va pas trop le faire... Il faut que je change l'algorithme qui s'occupe du level of detail.

-> J'ai remarqué que j'ai une limite de taille de terrain. Je ne l'explique pas encore...

-> lorsque je crée du terrain à coordonnées négatives, le terrain généré n'a plus aucun sens...

 

La prochaine fois, je m'occuperai de la performance et de la génération du terrain lointain (ou infini).

N'hésitez pas à poser vos questions dans les commentaires ou sur Twitter !

20 février 2014

Ouverture du blog consacré à mon prochain jeu

Bonjours a tous.

Aujourd'hui est une belle journée pour commencer à partager l'avancement de mon projet en cours de création !

Pour commencer ca, Je vais faire une description du projet un peu plus détaillé que le résumé en haut de page :

Capture d'écran 2014-02-20 20Début d'un projet évolutif

Il y a un an (en Janvier 2013), j'ai commencé un tutoriel pour apprendre à utiliser OpenGL 3.0 en C++ (j'utilisais OpenGL 1.2 avant, c'était pas terrible...) pour pouvoir utiliser toute la puissance de la machine. J'ai commencé à afficher des formes en 2D, puis en 3D, à utiliser les matrices et plein d'autre chose lié à OpenGL 3.0 (entre autre les shaders). Ensuite, à la fin de ce tutoriel, avec ce même projet de programmation, j'ai commencé les tests graphiques, en chargeant des modèles, en créant mes shaders, mes class et autres...

Plus tard, après mes tests, j'ai voulu m'orienté vers un moteur de jeu de qualité, je voulais créer un moteur de jeu qui se rapprocherais des jeux de grosse production. J'avais en tête de creer un jeu avec les mêmes graphisme que le celèbre jeu Portal 2 crée par Valve. Je me suis donc mis à créer des shaders assez gros (calcul de lumière, ombrage), des effets spéciaux "post-FX" (après le 1er rendu) comme le bloom (flou lumineux) et le depth of field (champ de profondeur), et à créer des terrains factices et des modèles simples pour tester les rendus ainsi qu'inclure un moteur physique (Newton Game Dynamics, changé par Bullet Physics plus tard).

Après, je me suis fixé des plus gros sujets sur ce même projet, des plus gros traitement qui prenne du temps a faire. Je me suis donc lancé dans la création d'une interface graphique utilisateur (GUI pour les connaisseurs). Ce GUI, basé sur le système qu'utilise la librairie Qt (par Nokia), permet la gestion des valeurs et des textes dans le projet, ce qui peut etre important lors des test debugging

Source: ExterneGUI actuelle

J'ai créé ce GUI pour les menus de jeu ou de logiciels n'utilisant que OpenGL en interface. Ce GUI performant est toujours d'actualité dans le projet.

Ensuite, l'ombrage n'étant pas assez précis et pompeux si plusieurs lumières était activé, il m'a fallu donc rechercher des techniques d'ombrage statique qui une fois généré n'a plus qu'à être appliqué. Et la meilleur solution apporté à été le LightMap Radiosity.

Source: ExterneOmbrage statique (dit LightMap) par Radiosity

Petit à petit, le projet évoluait et devenait à devenir gros et puissant. Néanmoins, je me suis posé la question de "Mais jeu je vais faire avec ? Et avec quels moyens ?". En effet, J'ai beau savoir développer, j'ai quelques lacunes en matière de scénario, de musique, de création de modèle, de terrain, enfin de tout le reste quoi... Je sais très bien utiliser Blender mais je ne suis pas si polyvalent que ça... Donc j'avançais dans le projet en me mettant en tête que il fallais soit que j'embauche du monde pour pouvoir m'aider à créer un jeu, sachant que je ne suis pas du tout une entreprise mais un simple étudiant ! De plus, impossible de trouver du monde pour faire la musique, le son, les modèle et autre.

Puis un jour, en regardant quelques vidéos sur YouTube sur la génération aléatoire, j'ai remarqué que en créeant mon projet, j'ai manqué d'introduire ce qui me passionnait le plus dans les jeux : l'open world et surtout la génération procédurale. Dès lorsque l'idée m'est venu, le jeu que je veux faire s'est développé tout seul dans ma tête, chaque detail du jeu se sont fondés. J'ai donc commencé récemment (il y a moins d'un mois) à faire des recherches sur la génération procédurale de terrain et c'est actuellement là ou j'en suis !

Source: Externe

 

Voilà... Ma vie de développeur indépendant est passionnante... Parlons du blog et son but à présent.

Si au jour d'aujourd'hui je créé un blog consacré à mon jeu, c'est avant tout pour communiquer, pour informer les intéressés de l'avancement du projet en détails et le plus rapidement possible. J'aurais pû surement passer par un réseau social mais je trouve que le blog est un meilleur moyen de communiquer l'avancement du projet grâce à son esthétique et par son systeme de traitement (messages, images, videos). J'utilisais avant steam pour l'avancement mais mélangé mon jeu aux autres jeux, c'est pas excellent, et le texte était limité à une centaine de caractère... Ici, je pourrais montrer les images, vidéos et texte sur l'avancement du projet en temps réel (à quelques minutes près je pense). De plus, il me serait possible de faire quelque tuto simple sur quelques choses en particulier (comme comment faire un Bruit, comment faire un cube sous Blender ou comment compiler quelque chose en C++ par exemple). Il suffira de me demander sur mon Twitter que je regarderais désormais régulierement.

De prochains liens vers des versions alpha du jeu seront sûrement bientôt disponible, lorsque je jugerais le jeu ou le test potable !

Les autres images sont prises sur steam ici : http://steamcommunity.com/id/glcraft/screenshots/

Un Greenlight concept a été lancé à cette adresse, n'hésitez pas à poster des commentaires et à évaluer le concept ! Voici le lien : http://steamcommunity.com/sharedfiles/filedetails/?id=221245537

J'espère que le concept et le jeu vous plaira.

 

Publicité
Publicité
GLCreate
Publicité
Archives
Publicité