Partage

[Moteur de jeu] Nazara Engine

Moteur de jeu en développement

20 octobre 2017 à 12:52:57

Lynix a écrit:

Nazara est utilisé à mon boulot,



tu a bien vendu t'on moteur à ta boite ;)

félicitation pour la V0.4 et bonne chance pour la prochaine version. Je continue a suivre l'évolution de t'on moteur.

22 octobre 2017 à 22:18:16

Bravo pour ton travail 

Je me demande après avoir regardé ton exemple de 3d(spaceship) quand utiliser les ref ou handle du moteur ? Quand utiliser les ref ou pointeurs du c++ ? Et quand utiliser les objets ? 

23 octobre 2017 à 12:48:03

MatéoMercier a écrit:

Je me demande après avoir regardé ton exemple de 3d(spaceship) quand utiliser les ref ou handle du moteur ? Quand utiliser les ref ou pointeurs du c++ ? Et quand utiliser les objets ? 

En soi, c'est assez simple:

Les ObjectRef (MaterialRef, MeshRef, etc.) sont des pointeurs intelligents propriétaires, ils assurent que la ressource ne sera pas supprimée tant qu'ils existent, c'est important par exemple pour un Sprite de maintenir en vie son matériau, il utilise donc un MaterialRef.

À noter que les objets qui sont légers mais propriétaires de ressources (les Model/Sprite/Billboard, etc.) peuvent également être gérés par ces mêmes pointeurs intelligents (ModelRef par exemple).

En revanche, certains objets n'ont qu'un seul propriétaire mais il peut être intéressant de garder une référence dessus, c'est le principe des Handle qui sont donc des pointeurs intelligents non-propriétaires, ils passent à nullptr lorsque l'objet est détruit, ce qui est intéressant dans le cas du scripting (les variables Lua pointant sur des objets n'en sont pas toujours propriétaires) et des entités.

Pour les pointeurs du C++ (ça s'applique aussi aux références), tu les utilises quand tu fais une fonction qui ne va pas prendre possession de ton objet, typiquement dans Nazara j'utilise les références constantes pour les objets 'in', les références pour les objets 'inout' et les pointeurs nus pour les objets 'out'.

Quant aux objets en général, tu peux les utiliser là où ça a du sens, mais si une fonction te demande un "MaterialRef" en entrée, tu as tout intérêt à avoir créé ton matériau avec la fonction MaterialRef::New.

En pratique, les objets de ressources (ou gérant des ressources) sont toujours alloués à l'aide de leur méthode statique Objet::New(Params).

Nazara Engine | Discord NaN ! (Chat dédié à la programmation) | Ma chaîne Twitch (développement)
27 octobre 2017 à 11:11:09

Bonjour

j'ai essayé d'utiliser nazara en le compilant et en le téléchargeant:

Je récolte ces erreurs:

Gravité    Code    Description    Projet    Fichier    Ligne    État de la suppression
Erreur    LNK2001    symbole externe non résolu "__declspec(dllimport) public: __thiscall Nz::VideoMode::VideoMode(unsigned int,unsigned int,unsigned char)" (__imp_??0VideoMode@Nz@@QAE@IIE@Z)    Project4    c:\Users\Sandrine\source\repos\Project4\Project4\main.obj    1   
Erreur (active)    E1449    la spécialisation explicite de class "std::hash<Nz::MaterialPipelineInfo>" doit précéder sa première utilisation (à la ligne 575 de "c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\include\type_traits")    Project4    c:\Users\Sandrine\Desktop\misterMAT_qui_rale_tout_le_temps\vs2017\NazaraDownload32\include\Nazara\Graphics\MaterialPipeline.inl    108   

Merci de votre aide

27 octobre 2017 à 14:35:40

Bonjour,

Tout d'abord, mais il n'y a aucune obligation, si tu veux une réponse plus rapide la prochaine fois je te suggère de rejoindre le Discord sur lequel Nazara a un canal dédié.

Ensuite, je dirais que la bibliothèque NazaraPlatform n'est pas indiquée dans le projet comme bibliothèque de cette façon:

Attention du coup à bien spécifier les dossiers de dépendances. :)

Nazara Engine | Discord NaN ! (Chat dédié à la programmation) | Ma chaîne Twitch (développement)
27 octobre 2017 à 16:57:30

Merci Beaucoup

PS: J'avais copié la liste de ton tuto sur le wiki github donc il faudrait le rectifier( je ne vois pas trop l'intèrêt de mettre une issue ou une pull request donc je me dis ici)

29 octobre 2017 à 22:58:11

Bonjour, pourrait-tu faire un tuto un peu comme pour VS 2017 mais pour CLion s'il te plaît car comme CLion utilise CMake c'est beaucoup plus compliquer a utiliser. Merci !
Walkloly
31 octobre 2017 à 14:04:21

une chose 

c'est génial un particulier créer son propre moteur de jeux ça envoie du lourd.

mais par contre je trouve le rendus 3D un peu...médiocre

mais bon pour le moteuren question c'est plutot cool.

31 octobre 2017 à 15:11:07

Lynix annonçait justement cet été qu'il comptait intégrer un rendu PBR moderne dans Nazara.

Donc ça devrait finir par arriver !

-
Edité par Str4nger 31 octobre 2017 à 15:11:25

Helium Rain, une space sim réaliste pour PC
2 novembre 2017 à 19:28:45

Walkloly a écrit:

Bonjour, pourrait-tu faire un tuto un peu comme pour VS 2017 mais pour CLion s'il te plaît car comme CLion utilise CMake c'est beaucoup plus compliquer a utiliser. Merci !

Du coup on t'a répondu sur le Discord, si ça en intéresse on a un FindNazara.cmake en beta :D

JeanValJean46 a écrit:

une chose 

c'est génial un particulier créer son propre moteur de jeux ça envoie du lourd.

mais par contre je trouve le rendus 3D un peu...médiocre

mais bon pour le moteuren question c'est plutot cool.

Je ne peux qu'être d'accord avec toi, ça n'a pas été ma priorité ces derniers temps mais je compte bien y remédier.

Str4nger a écrit:

Lynix annonçait justement cet été qu'il comptait intégrer un rendu PBR moderne dans Nazara.

Donc ça devrait finir par arriver !

En fait le boulot a déjà commencé vers ce côté, le fait que Nazara supporte les réflexions est le premier pas vers le support du PBR. J'aimerai quand même finir de refaire ces RenderQueue avant de commencer le PBR, ça apporte trop de trucs chiant.

Oh au fait, je vous réserve une surprise. *rire diabolique*



Nazara Engine | Discord NaN ! (Chat dédié à la programmation) | Ma chaîne Twitch (développement)
22 novembre 2017 à 18:23:58

Nazara Engine | Discord NaN ! (Chat dédié à la programmation) | Ma chaîne Twitch (développement)
22 mars 2018 à 17:20:25

Hello tout le monde, ça fait longtemps qu'il n'y a pas eu de nouvelles ici.

Désolé pour ce long moment silencieux, mais néanmoins productif.

Alors, pour procéder dans l'ordre, il faut savoir qu'une des raisons du silence est que je me suis finalement lancé dans la réalisation d'un jeu vidéo avec Nazara, rassurez-vous cependant, ça ne signifie pas du tout que le moteur n'avance plus, au contraire il mûrit.

En effet je me suis rendu compte en utilisant Nazara à mon boulot depuis l'année dernière qu'il y avait beaucoup de problèmes/bugs qu'il m'était impossible de voir en développant plutôt qu'en utilisant le moteur.

Concevoir un jeu à l'aide du moteur me permet donc de mieux comprendre les éventuels problèmes de celui-ci, et aussi de réaliser un peu l'objectif de base que j'avais, parce qu'à la base si je me suis lancé dans la conception de moteurs de jeux, c'était avant tout pour faire un jeu (ce que je ne recommande à personne :D ).

Concernant le jeu, il s'agit bien évidemment d'Utopia, un jeu de programmation (qui à l'époque était un MMORTS de programmation, si si!).

Donc le principe du jeu est de gérer des combats de vaisseaux spatiaux (et à terme, un empire spatial) où chaque vaisseau est programmé par le joueur et agit indépendamment lors des combats.

Le projet est décrit ici:
https://openclassrooms.com/forum/sujet/jeu-de-programmation-utopia

Pour revenir au moteur, comme je l'ai dit il avance et notamment la version en cours de développement (la 0.5) inclut énormément de correctifs (Changelog).

Je travaille beaucoup sur les nouvelles render queues en ce moment ainsi que sur l'implémentation Vulkan qui progresse enfin.

Les nouvelles render queues vont apporter la possibilité de faire des widgets plus avancées (avec notamment - enfin - la coupure du rendu aux bordures), qui vont ensuite introduire le concept de layouts (pour éviter de devoir positionner les widgets à la main).

Suite à cela, je vais revenir aux améliorations graphiques du moteur, notamment rajouter un système de compositors pour gérer les effets et post-processes beaucoup plus facilement.

Je vous tiendrais informé dans tous les cas.

J'en profite aussi vite fait pour vous dire que j'ai ouvert un devblog, un blog consacré au développement, où je parlerais donc des avancées de Nazara ou d'Utopia, en plus d'articles plus généraux sur la programmation.

Vous le trouverez ici: https://sirlynixvanfrietjes.be (http://lynix.be fonctionne aussi, au cas où vous trouveriez le nom complet imbitable :-D ).

Des nouvelles soon !

Nazara Engine | Discord NaN ! (Chat dédié à la programmation) | Ma chaîne Twitch (développement)
29 mars 2018 à 22:30:29

Vraiment sympathique :). Bon courage pour le développement du moteur et du jeu ;).

Jusque ici, cela fait combien de temps que tu travail sur le moteur ?

Erwan28250
30 mars 2018 à 10:15:01

Le premier post date de mai 2012 donc à peu près six ans.

Helium Rain, une space sim réaliste pour PC
4 avril 2018 à 21:44:38

Salut ! Ca fait un moment que je suis le post. Ce soir j'avais un peu de temps j'ai essayé de compiler le moteur pour tester Utopia. J'ai pas réussi. Voilà l'erreur :

--:~/NazaraEngine/build/gmake$ make -f NazaraExtlibs.make -j4
make: NazaraExtlibs.make : Aucun fichier ou dossier de ce type
make: *** Aucune règle pour fabriquer la cible « NazaraExtlibs.make ». Arrêt.
--:~/NazaraEngine/build/gmake$ make -f NazaraEngine.make -j4
make: NazaraEngine.make : Aucun fichier ou dossier de ce type
make: *** Aucune règle pour fabriquer la cible « NazaraEngine.make ». Arrêt.

Besoin d'un coup de main :)

11 avril 2018 à 13:26:42

Salut tout le monde !

Aujourd'hui j'apporte la bonne nouvelle: je me refocus sur Nazara (après avoir passé pas mal de temps sur Utopia, même si les projets ont et continueront d'évoluer en parallèle).

La raison à cela c'est qu'après presque six mois de développement (déjà o_O ) sur Utopia, surtout de mise en place et d'avancement technique, j'ai décidé qu'il était temps de faire avancer le côté graphique/audio/GUI (au final, tout ce qui touche surtout à l'expérience utilisateur). Et c'est quelque chose qui demande des modifications moteur que je repoussais depuis longtemps (par exemple le refactor des render queues qui fonctionne parfaitement depuis hier o/).

Et j'ai notamment constaté que j'avançais bien plus rapidement sur Utopia que sur Nazara vis-à-vis de tâches complexes, la raison à cela étant je pense liée fortement aux conditions de travail:

1) Je travaille sur Utopia à un horaire fixe, celui de mes lives Twitch et sous le regard de plusieurs dizaines de spectateurs (ne me laissant pas le loisir de procrastiner).
2) Je travaille sur Nazara sur mon temps libre, en dehors des lives (sauf dans de rares occasions quand il y a un bug ou une feature à intégrer, très liée aux besoins du jeu, telle que le support IPv6).

Du coup, afin d'avancer sur des tâches complexes de Nazara, j'ai décidé de dédié un de mes deux jours de stream au développement du moteur, notamment à ce qui est en lien avec l'expérience utilisateur.

Je vous propose donc de me retrouver, pendant une période indéterminée (d'un ou deux mois) le mercredi soir à partir de 18h15 en train de streamer le développement de Nazara sur ma chaîne twitch, à partir de ce soir. (Le stream du samedi/dimanche reste pour sa part consacré au développement d'Utopia.)

À très vite !

-
Edité par Lynix 11 avril 2018 à 15:02:57

Nazara Engine | Discord NaN ! (Chat dédié à la programmation) | Ma chaîne Twitch (développement)
18 avril 2018 à 21:35:41

-
Edité par Lynix 18 avril 2018 à 21:37:29

Nazara Engine | Discord NaN ! (Chat dédié à la programmation) | Ma chaîne Twitch (développement)
30 juillet 2018 à 15:36:46

alors, du nouveau?

est ce que le moteur avance bien ?

1 août 2018 à 13:34:55

Hello !

Pas beaucoup d'avancement en ce moment (comme chaque été j'ai l'impression), la version 0.5 est en bonne voie et sera un changement majeur qui cassera pas mal la compatibilité (mais c'est un mal pour un bien), je t'invite à regarder la tronche du changelog.

Dernièrement il y a eu une énorme amélioration sur le rendu des sprites, qui est bien plus optimisé et beaucoup de correction de bugs, mais je vise encore au moins deux features essentielles avant de sortir la 0.5, notamment le nouveau système de "pipeline layout", permettant à l'utilisateur de spécifier les variables uniformes de son choix dans les shaders, et au système de matériau d'être bien plus souple. Autorisant au passage l'intégration des matériaux PBR (comme montré lors du dernier screenshot).

La seconde feature essentielle est liée à la GUI, j'aimerai finaliser le nouveau système et avoir des layouts (ce qui demande un boulot monstre quand même...).

Mais voilà, en ce moment je tourne un peu au ralenti, ayant en plus de ça acheté récemment un HTC Vive (huehue). Parlant de ça il faudra que je teste l'utilisation de Nazara en VR, voir ce qu'il est possible de faire.

Donc en bref: en ce moment ça tourne au ralenti mais ça va certainement revenir, comme chaque année :D

-
Edité par Lynix 1 août 2018 à 13:36:01

Nazara Engine | Discord NaN ! (Chat dédié à la programmation) | Ma chaîne Twitch (développement)
2 août 2018 à 10:15:31

amuse toi bien avec le HTC (le qu'elle la V1 à 500 ou V2 à 1 300 ?) ;)

et profite des vacances. 

3 août 2018 à 1:03:56

C'est le V1 à 600 si tu veux tout savoir, mais qu'est-ce qu'on s'éclate dessus :D
Nazara Engine | Discord NaN ! (Chat dédié à la programmation) | Ma chaîne Twitch (développement)

[Moteur de jeu] Nazara Engine

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown