J'ai implémenté une grande partie de ma logique de jeu en ce moment, mais je crée toujours mes cartes avec de mauvaises boucles for-on à la volée pour pouvoir travailler avec quelque chose. Maintenant, je voulais continuer et faire des recherches sur la façon de (dé) sérialiser ces données. (Je ne recherche pas d'éditeur de carte - je parle du fichier de carte lui-même)
Pour l'instant, je recherche des suggestions et des ressources, comment implémenter un format de fichier personnalisé pour mes cartes qui devrait fournir les fonctionnalités suivantes (basées sur la méthode MoSCoW):
- Doit avoir
- Extensibilité et compatibilité descendante
- Manipulation de différentes couches
- Métadonnées indiquant si une tuile est solide ou peut être traversée
- Sérialisation spéciale d'entités / déclencheurs avec propriétés / métadonnées associées
- Pourrais avoir
- Une sorte d'inclusion de l'ensemble de tuiles pour éviter d'avoir des fichiers / ensembles de tuiles dispersés
Je développe avec C ++ (en utilisant SDL) et je cible uniquement Windows. Toute aide utile, astuces, suggestions, ... serait appréciée!
Résultat de la discussion ci-dessous
J'ai conçu mon format de fichier de carte ces dernières heures et j'ai trouvé un squelette (ne contient que des couches pour l'instant - je laisse le reste à tout le monde qui conçoit son propre format) que je voulais partager avec toutes les personnes intéressées - si vous avez les mêmes intentions que vous pouvez obtenir une sorte d'inspiration. La capture d'écran en taille réelle peut être téléchargée sur Imgur .
la source
Réponses:
Personnellement, je suis plus fan des formats binaires avec des sections (comme Windows PE, juste beaucoup plus simple). Ils sont également plus faciles à analyser (mais c'est juste mon opinion ... J'ai suffisamment travaillé avec XML pour me donner des maux de tête, vérifier si getElementByName a retourné une seule valeur ou une liste de valeurs ... ugh). Donc, si j'étais vous, je ferais quelque chose comme ça:
,
Avantages:
Désavantages:
Mais la meilleure chose dans cette approche à mon avis est - vous pouvez tout faire par vous-même. Beaucoup d'essais et d'erreurs, mais à la fin, vous finissez par apprendre beaucoup.
la source
Vous pouvez utiliser le format de carte TMX utilisé par l' éditeur de tuiles (ainsi que plusieurs autres éditeurs de cartes).
Même si vous n'utilisez pas Tiled vous-même, le format TMX prend en charge toutes les fonctionnalités que vous avez mentionnées et il dispose de plusieurs chargeurs / analyseurs existants pour une variété de langues. Il est également très facile de comprendre le format et de l'étendre à votre propre jeu.
la source