Après une série d'itérations, le prototype du jrpg "space", développé sur le moteur Godot, est finalement passé à la première version de démonstration. Les options Win64 et Linux sont disponibles. Vous trouverez ci-dessous les détails de ce qui était, ce qui était et où le petit vaisseau vole.
Cadre
Les croquis de base du gameplay ont pris forme assez rapidement lorsque je suis passé de la réflexion sur les concepts de base à la création d'un prototype de jeu dans le moteur de jeu. D'abord est apparu l'écran de démarrage, la scène de la carte globale avec le mouvement et la possibilité d'appeler l'inventaire. Dans le même temps, une architecture initiale a été pensée - comment charger exactement les modules individuels et échanger des informations entre eux.
Ensuite, l'écran de combat est apparu, lancé d'abord par un bouton séparé, puis lié à une collision avec des ennemis. Plus tard, l'écran de la planète a été ajouté, les planètes à ce moment-là avaient un informateur sur la carte mondiale, où le bouton de visite a été ajouté. D'autres types d'objets interactifs proviennent de l'informateur, par exemple, une station qui n'implique pas une entrée sur son écran interne, mais qui a parfois une sorte de fonctionnalité externe avec la possibilité de cliquer ou de sélectionner quelque chose. Ou les ressources ramassées - le pollen cosmique.
Ensuite, il fallait réaliser le maximum possible de lots de héros (en choisissant entre 3 ou 4, j'ai quand même choisi le concept d'un lot de 3), ce qui a été fait. Dans le processus, l'affichage des dégâts a été ajouté, le choix des cibles pour l'attaque, de la musique.
À ce stade, il était déjà possible de télécharger une mini-démo, mais j'ai décidé de finaliser d'abord le projet dans un état plus complexe, afin qu'il soit mieux compris de quoi il s'agissait et comment cela devrait fonctionner approximativement. En cours de route, ajouter du contenu et des embellissements, tels que des doublages, des animations.
Vous pouvez en savoir plus sur le concept et la mise en œuvre de base dans ces articles:
Projet Microspace
Conception de jeux itératifs, Godot et le monde des petites planètes
Développement de prototypes
Jetons un coup d'œil aux différents domaines dans lesquels ce développement a eu lieu:
Combat Le
nombre de navires disponibles a progressivement augmenté, tout comme le nombre d'ennemis disponibles, j'ai donc réécrit leur représentation de combat et leur logique de contrôle pas à pas dans une version plus universelle. Ce qui n'était pas si difficile, car un tel cours d'événements était prévu et quelque chose dans le code était optimisé à l'avance.
Pour gagner une bataille, le groupe reçoit une certaine quantité de l'un des 4 types de ressources (essence, mana, ADN ou matière), selon le type d'ennemi. Le groupe d'ennemis a également un type commun. Les personnages qui ont contribué aux dégâts gagnent de l'expérience (bien que cela ne leur donne encore rien).
L'affichage des dommages a été initialement implémenté via une vue 3D - affichant une fenêtre avec une ligne de dommages sur un polygone faisant face à la caméra. Cela a fonctionné plus ou moins, bien que la mise en œuvre techniquement ne me plaise pas vraiment, car tout est un peu confondu avec la fenêtre d'affichage - vous devez l'accrocher plus près de la racine de la scène pour qu'il n'y ait pas d'échecs et il est un peu plus difficile de vérifier à quoi ressemble l'effet qu'avec une simple sortie 2d-line. Par conséquent, je ne voulais pas démarrer beaucoup de fenêtres, j'ai réussi avec une seule, en déplaçant le polygone qui l'affiche là où c'est nécessaire, en augmentant / diminuant simultanément. Mais il faut aussi penser qu'un jour il y aura des capacités qui causeront des dégâts massifs et qu'il faudra afficher au moins trois icônes avec des dégâts en même temps (même si même ici vous pouvez vous y arranger en créant une sorte de vague d'animation à partir du même objet quelques fenêtres supplémentaires).
Cependant, lorsque j'ai ajouté un mode plein écran au prototype, le nombre de dommages a commencé à devenir tellement flou, alors je voulais encore plus envisager d'autres options pour afficher les dommages. En principe, je pourrais simplement réparer la caméra au combat, mais pour une raison quelconque, je continue à conserver la possibilité de la tourner complètement entre l'attente d'une action.
J'ai donc fini par réécrire la sortie des dommages. Maintenant, les lignes 2D s'accrochent à la projection de la position de l'objet 3D. Bien qu'il y ait aussi quelques nuances ici, par exemple, si vous éloignez la caméra, elles continueront à être affichées, ou si elles sont affichées en continu dans chaque cadre, c'est-à-dire qu'il est possible de suspendre la caméra actuelle dans une position, mais cela peut être résolu.
Pour accélérer le processus de test, un bouton spécial, pour ainsi dire, non jouable pour la victoire automatique a été créé il y a longtemps s'il était nécessaire pour quitter la bataille. Aussi pendant longtemps, il n'y avait aucun moyen de perdre. Ensuite, j'ai ajouté le "gel" des vaisseaux lorsque leur bande était remise à zéro, puis une réalisation à part entière de la perte de la bataille s'est suggérée. Pour ce faire, j'ai d'abord transféré le bouton de victoire automatique dans la catégorie des options de jeu à part entière, à la seule différence qu'il est maintenant devenu un bouton de lecture automatique d'urgence qui lance la boîte de dialogue de sortie. Et puis il a ajouté quelques défauts pour mettre automatiquement fin à la bataille avec une durabilité nulle de tous les navires, ce qui a également provoqué ce dialogue.
Après avoir été vaincu dans une bataille, l'ennemi disparaît et la durabilité de chaque navire du groupe dans la prochaine bataille sera égale à 10. À propos, il n'y a pas encore de limite supérieure de durabilité et divers traitements peuvent être utilisés pour augmenter la durabilité au-delà des valeurs de base.
Navires et ennemis
Tout est simple - c'était trois, maintenant c'est dix. Chacun devait définir des paramètres et sa propre icône, ainsi que les inclure progressivement dans le gameplay et les options liées au choix des navires. Dans un premier temps, de nouveaux navires sont devenus disponibles sur la carte mondiale et en recherche sur les planètes, puis ils ont été progressivement intégrés à la bataille.
Des opposants ont également été ajoutés, en outre, avec des approches différentes. Un ennemi, deux ennemis différents, une paire des mêmes, un ennemi plus grand avec deux attaques, un mini-boss composé de plusieurs parties.
Les vaisseaux spatiaux au combat ont la capacité d'effectuer leur attaque standard. Ses dégâts sont censés être corrigés et liés aux futurs niveaux possibles des navires. En outre, une attaque standard peut être améliorée par un bonus de dégâts et / ou un effet de guérison, puis cela est affiché à côté des indicateurs du navire avec de petits chiffres violets et verts.
Les dégâts des navires et des ennemis sont également affectés par la combinaison de leurs types. Les représentants du même type s'infligent plus de dégâts les uns aux autres, tandis que les antagonistes (paires: magie / technologie, divin / évolutionnaire) - moins.
Les quatre vaisseaux ont des capacités personnelles qui peuvent être utilisées au combat. Ce sont le Drifter (la capacité inflige des dégâts et donne une augmentation à la prochaine attaque), Spira (vole dans le futur, un tour en avant, reçoit des dégâts supplémentaires à la prochaine attaque au retour), Trinity (n'inflige que des dégâts) et Otomo (étend la guérison augmente à prochaines attaques).
Un certain pourcentage de l'énergie du vaisseau est dépensé pour l'utilisation des capacités (pour le moment cette énergie n'est restituée par rien). D'autres vaisseaux ont la capacité factice "Bouclier" installée à l'endroit de leur capacité personnelle, qui joue une animation mais n'a aucun effet.
Capacités et personnages
Si les navires sont une sorte d'analogue des personnages principaux, alors les personnages qu'ils portent sont une sorte d'analogue des armes de ces héros. L'un des points importants que je voudrais refléter dans le projet est l'utilisation d'un système d'identificateurs, qui donnent l'effet de hasard non aléatoire, et avec une utilisation plus large, ils peuvent travailler pour générer un graphique psvedo. En termes simples, les personnages, les navires et les ennemis ont des identifiants spéciaux qui vous permettent de calculer le résultat de l'interaction de l'un de ces objets et de l'utiliser d'une manière ou d'une autre.
Pour le moment, l'utilisation de ce résultat est la suivante. Premièrement, chaque personnage et vaisseau a un effet de compatibilité. Autrement dit, une fois à bord du navire, le personnage peut, par exemple, commencer à paniquer, s'endormir ou ne pas comprendre comment gérer ses systèmes. Maintenant, le résultat de la connexion «navire-passager» et l'éventuel effet supplémentaire qu'elle impose est simplement affiché dans la fenêtre d'inventaire. Mais cela ne se reflète pas encore dans la participation du personnage au combat.
Les personnages peuvent être «attaqués» directement au combat grâce à l'option «Équipage». Il ne s'agit pas simplement d'un personnage effectuant une action spécifique, comme un sort magique spécifique ou un tir d'une arme. C'est une certaine situation qui a entraîné un certain nombre de pertes de la part de l'ennemi. La connexion «passager-ennemi» fonctionne déjà ici, qui est interprétée par le monde extérieur (dans ce cas, le secteur spatial) dans l'une des neuf conséquences: # LUMIÈRE, # TÉNÈBRES, # MUSIQUE, # THÉORIE et ainsi de suite. C'est-à-dire que le joueur peut imaginer de manière associative ce que le personnage a fait, quel a été le résultat avec une telle formulation (ou peut-être pas - les associations sont facultatives, d'autant plus qu'elles fonctionnent toujours seules quelque part en arrière-plan).
Chaque ennemi, respectivement, a des vulnérabilités ou une résistance à certains types de conséquences. Les dommages causés par les actions de l'équipage ne sont pas affectés par la combinaison des types de navires, c'est un effet alternatif distinct. Si les conséquences n'entraînent aucun dommage, le bateau reçoit un petit bonus à sa prochaine attaque normale.
Peut-être qu'à l'avenir, l'utilisation du système d'identifiants augmentera encore davantage. Par exemple, sur les mêmes planètes, leurs propres auras de significations peuvent opérer, modifiant la table des interprétations, mais vous devez d'abord y implémenter des événements auxquels les identifiants participeraient.
Certains personnages rares ont des capacités actives pour les navires d'un certain type. À propos, jusqu'à présent, tous ces personnages n'ont pas signé pour donner une sorte de capacité (cela concerne principalement ceux qui ne sont pas actuellement dans le mode de jeu principal).
Quoi qu'il en soit, pour le moment, les capacités acquises par les personnages transportés ne font que perdre l'effet factice (comme la plupart des objets). Mais un héros, Leto, a une capacité passive, non liée au type de navire, et cela fonctionne déjà.
Spira et le Drifter peuvent également apprendre les capacités des personnages de leur type (bien qu'ils n'aient pas encore d'effet), après avoir combattu avec eux une fois.
Articles
C'était toujours une question de deuxième priorité pour la cargaison, après que la mise en œuvre pour les personnages était déjà prête. Fondamentalement, tout se résumait à montrer leurs cellules et à déplacer des talons d'objets entre elles. Mais plus tard, un objet activé est apparu, Alive, qui restaure 100 points de durabilité au navire. À ce moment-là, je venais de commencer à créer l'option de combat "Hold", et j'avais besoin d'au moins un objet avec un effet réel.
Quant à l'objet de guérison lui-même, il était initialement prévu qu'il puisse avoir des charges et qu'ils puissent être réapprovisionnés quelque part. À la fin, j'ai laissé une charge et je l'ai fait pour que cet article puisse se décharger lorsqu'il est utilisé et se recharger à nouveau à partir du pollen cosmique collecté.
Écran de la planète et missions
Sur les planètes, vous pouvez trouver divers processus et événements qui s'y déroulent. Certains passent par leurs propres moyens dès le début, certains sont lancés lorsque le précédent est rempli ou apparaissent à certaines heures du jour. Parmi ces événements, il y a déjà quelques tâches lancées avec l'aide du joueur, s'il dispose de la quantité de ressources requise.
À partir des informations sur les événements planétaires, vous pouvez passer à l'onglet des vaisseaux, où vous pouvez voir leur cale et leur équipage, et également emmener d'un à trois vaisseaux sélectionnés vers le groupe actif. Il y a aussi un petit espace sur les planètes pour les personnages et les objets, d'où ils peuvent être déplacés à l'intérieur des navires ou, au contraire, largués sur la planète.
Autre
Une option de boussole a été ajoutée à l'inventaire qui est ouvert pendant les vols spatiaux pour vous aider à voler vers le point sélectionné. Un pointeur spécial apparaît avec la distance jusqu'à la destination. Ce navigateur ne fonctionne que dans le mode de jeu principal.
De plus, dans l'inventaire, vous pouvez activer / désactiver les sons et la musique, changer le bateau principal de la partie actuelle, activer / désactiver le plein écran et également quitter le jeu vers le menu Démarrer.
Les informations sur l'équipage et les membres d'équipage et la cargaison dans l'inventaire sont simplifiées et ne peuvent pas être déplacées pendant le vol. En fait, ce ne sont pas des restrictions temporaires, mais une fonctionnalité mécanique du jeu - vous devez changer quelque chose, ce qui signifie que vous devez visiter la planète.
Des notifications spéciales apparaissent désormais certains jours de lumière. Ces jours eux-mêmes sont gaspillés en visitant n'importe quelle planète (à l'avenir, vous devrez voler entre différentes pour changer de jour).
Les polices de certains éléments ont été progressivement améliorées. Un certain nombre de sons sont apparus - pour le combat, pour l'écran de la planète, pour l'inventaire. Naturellement, j'omets diverses petites choses, comme l'ajout d'un bouton d'annulation, mais cela aussi n'est pas sorti de nulle part et nécessite une attention particulière. Ainsi qu'une grande quantité de travail complètement invisible pour améliorer le code ou réécrire des structures qui ne changent rien visuellement.
Aussi, un flan a été réalisé pour des zones spéciales, avec un vol "réaliste" et l'échelle des objets. Vous pouvez vous y retrouver pendant le jeu en touchant un objet spécial. A l'intérieur, vous pouvez voler un peu sur le bateau Trinity avec un contrôle légèrement modifié, et pour sortir il suffit de voler jusqu'à la frontière de cette zone.
Version de démonstration
Déjà juste avant l'apparition de la démo, un mode de développement séquentiel a été créé pour cela, en tant que version principale du jeu - ici, le joueur reçoit un navire de départ (Drifter) et commence à explorer le secteur, ouvrant de nouveaux vaisseaux pour rejoindre le groupe. Ainsi, dans ce mode, vous pouvez ouvrir deux autres navires (Spira et Vanguard). Il y a trois planètes dans le secteur de départ qui peuvent être visitées. Après avoir réparé une station spéciale, vous pouvez vous déplacer dans le deuxième secteur et y trouver une autre planète disponible.
Une première version de test de l'emplacement, où diverses planètes et ennemis sont placés plus densément, est disponible dans un mode de jeu alternatif moins débogué - tous les navires testent. Là, un choix de 10 navires existants est immédiatement disponible (vous pouvez en prendre jusqu'à trois dans un groupe actif), il y a plus de héros / cargo et ils sont répartis différemment. Il peut y avoir un certain chevauchement des paramètres du jeu après la sortie d'un mode et le passage à un autre.
Les innovations de la dernière mise à jour sont présentées dans une nouvelle vidéo, où, en plus du gameplay, des éléments d'un teaser sont ajoutés.
Coupures vidéo de certaines mises à jour précédentes
Vous pouvez télécharger l'archive de démonstration ici (dropbox):
Version Win64 (50 Mo)
Version Linux (52 Mo)
Contrôles:
WASD - vol, souris - rotation de la caméra
Entrée - ouvrir / fermer l'inventaire en volant dans l'espace
Navires: 1 - Wanderer, 2 - Spira, 3 - Vanguard, 4 - Vierge Yaga, 5 - Muhh, 6 - Stella, 7 - Trinity, 8 - Otomo, 9 - Aigue-marine, 10 - Giybel.