Hello !
Cela fait maintenant quelque temps que je développe des jeux online en suivant l'architecture suivante :
- Serveur TCP autoritaire (.NET Core)
- Client Unity
- Librairies partagées entre le client et le serveur (API du jeu, Pathfinding, etc ...)
Jusqu'à présent, en matière de Pathfinding, les jeux que j'ai développés étaient plutôt simples (petites maps, grille 2D, Dijkstra).
Aujourd'hui je souhaite développer un jeu avec une seule grande map et celle-ci serait idéalement générée directement sur Unity (Plane + objets 3D). En suivant ce principe, Dijsktra ne m'est plus d'aucune utilité puisque le nombre de nœuds est beaucoup trop élevé avec une grande map,
je veux avoir le même algorithme côté serveur et client, j'ai fait quelques recherches et j'ai trouvé 3 solutions :
- Hyerarchical Pathfinding Algorithm (HPA *)
http://webdocs.cs.ualberta.ca/~kulchits ... s/jogd.pdf
https://stackoverflow.com/questions/374 ... -large-map
Le but étant de découper la map en plusieurs chunks, et ainsi baisser drastiquement le nombre de nœuds parcourus.
Cette solution me plait moyennement, ça reste du déplacement 'case par case' et on perd donc en précision.
- NavMesh (SharpNav & co)
https://github.com/Robmaister/SharpNav
Le principe est le même que le Pathfinding sur Unity avec un NavmeshAgent.
Cette solution me semble être la meilleure, mais je me pose tout de même quelques questions :
- Est-ce suffisant avec une très grande map ? Ne devrais-je pas découper ma map en plusieurs parties ?
- Puis-je exporter mon terrain (plane + props) conçu sur Unity en .obj, ou autre structure de donnée que je pourrai réutiliser pour construire mon NavMesh ?
- Server Unity (command line)
Toute la physique et les déplacements seraient émulés sur un serveur (Moteur Unity) dédié à ces seules fonctionnalités.
Le moteur Unity est évidemment lancé en ligne de commande sans interface graphique.
Cette solution à l'air intéressante, mais j'ai peur qu'elle soit trop lourde.
J'ai fait pas mal de recherches, et j'ai remarqué que les avis divergent énormément, c'est pourquoi je me retourne vers vous.
Si vous avez déjà utilisé une de ces solutions (ou une autre), je serai ravi d'en savoir plus.
En vous remerciant.
Serveur autoritaire et pathfinding
Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
-
- Messages : 38
- Inscription : 17 Juin 2016 20:34
Revenir vers « Unity le logiciel »
Atteindre
- Général
- ↳ Présentation du Staff
- ↳ Nous avons besoin de vous ;-)
- ↳ Présentations du Staff
- ↳ News Unity 3D-France
- ↳ On a testé pour vous...
- Le Logiciel Unity 3D
- ↳ Unity le logiciel
- ↳ TIPs
- ↳ Scripting
- ↳ (C#) CSharp
- ↳ les Shaders
- ↳ L'interface GUI
- ↳ Les outils externes
- ↳ Audio, musique et sons
- ↳ Développement plateformes mobile Iphone et Android
- ↳ Développement consoles Wii, PS3, XBox
- ↳ Unity et la VR
- L'univers d'Unity (outils, environnements, tout ce qui touche de près ou de loin Unity...)
- ↳ Playmaker
- ↳ Vos Questions
- ↳ Vos Realisations
- Communauté
- ↳ Présentation des membres
- ↳ Vos créations, jeux, démos...
- ↳ Collaboration pour projets
- ↳ Tutoriaux
- ↳ Discussion générale
- ↳ Concours
- Espace - Pro
- ↳ Recherche d'emplois
- ↳ Offres d'emplois
- ↳ Expert 3D (Société)
- ↳ Présentation
- ↳ Créations
- ↳ Projets
- ↳ Offre d'emplois
- ↳ FAQ - Foire aux questions
- Autres logiciels 3D
- ↳ Crea 3D : Blender
- ↳ Crea 3D : Cinema4D
- ↳ Presentation
- ↳ Tutos
- ↳ Discussions/Questions Générales
- ↳ Unreal Engine et autres Moteurs de jeux - Concurrents d'Unity
- ↳ Divers 3D : modélisation, animation, export...
- Bibliothèque
- ↳ Scripts
- Archives
- ↳ Buddy Robot Compagnon
- ↳ Vos Realisations
- ↳ Vos Questions
- ↳ Easy Touch Bundle - Support FR
- ↳ Vos Questions
- ↳ akeytsu
- ↳ Nouveautés et annonces
- ↳ Report de bugs
- ↳ Vos Realisations
- ↳ Demande de fonctionnalités
- ↳ Divers
- ↳ (Js) Javascript
- ↳ Tutoriels du site Unity3D-france