VariiSpace [Reboot]
#21
Salutations!

Wow, je ne pensais pas avoir laissé autant de temps s'écouler depuis les dernières infos du jeu sur ce forum 2

Quoi de neuf alors? Eh bien, dans les grandes lignes:

- Les vaisseaux sont constructibles depuis quelques temps, mais également déplaçables!
Rappel: Ils orbitent autour d'un objet céleste (disons, une planète), et peuvent passer d'une orbite à l'autre. Plus on est près de l'OC, plus on accumule des Chronotons rapidement ("Points d'Action") mais moins on peut stocker de chronotons (les joueurs les plus actifs quotidiennement ou plus seront donc au près de l'OC pour maximiser leurs gains de PA, sans être plafonnés par leur faible stockage)
Le déplacement en plus leur permet de passer d'un OC à l'autre, à condition de partir de l'orbite la plus éloignée de l'OC de départ, et d'arriver sur l'orbite la plus éloignée de l'OC ciblé. Cela permettra de faire un système de "blocus" d'OC, en squattant l'orbite la plus éloignée. Ce genre de stratégie pourra permettre d'assiéger un ennemi, jusqu'à ce qu'il n'ait plus de munitions par exemple (ou que des renforts arrivent pour l'attaquer)

- Les atomes doivent être maintenant "débloqués" pour être utilisés dans une molécule, pour être extraits, échangés, etc. Cela évitera que les nouveaux arrivants ne se coincent trop facilement en extrayant les mauvaises ressources, ou qu'ils ne se perdent dans le nombre impressionnant de ressources du jeu (vu qu'il y a une centaine d'atomes différents, il y a donc une centaine de ressources!)

- La recherche est en place, mais le contenu manque: j'ai implémenté les pages pour la recherche, mais il reste encore à définir quelles recherches proposer aux joueurs, et quels sont leurs effets. Le système d'avancement de la recherche est calqué sur l'une des propositions de Ter Rowan (similaire aux points de compétences des JDR): on a un système de points de recherches (similaire aux XP des JDR) qui, quand on en a une certaine quantité, débloque un "niveau de recherche". Le niveau suivant sera plus coûteux. Ensuite, chacun de ces niveaux de recherche permet d'avancer 1 des recherches de 1 niveau, donnant ainsi un bonus ou débloquant de nouveaux éléments. Plutôt classique, mais efficace.
Par exemple, le joueur démarrera toujours avec 1 niveau de recherche cadeau. Il n'aura, au début, qu'une seule recherche possible: la... recherche! Initialement, niveau "0". Une fois celle-ci niveau 1 (donc, le joueur a compris comment dépenser son niveau de recherche), le module "recherche scientifique" est débloqué, et pourra être rajouté à un plan de vaisseau pour faire un vaisseau capable de générer des points de recherche et de faire avancer la recherche du joueur.

- Je compte enfin mettre en place un mécanisme permettant, en apparence, de "jouer" sans être inscrit. L'idée est de supprimer les pages d'inscriptions, processus lourd et dédié qui n'est plus jamais rencontré par le joueur (donc très peu rentable en terme de travail/utilité) et de les remplacer par... rien! Le visiteur non inscrit aurait alors en fait accès à toutes les pages auxquelles un nouveau joueur (qui n'a pas encore fait d'action de jeu) aurait accès. Il aurait donc la carte galactique, mais aussi la page de ses flottes (vide), de ses plans de vaisseaux (vide), de ses matériaux (vide), de la recherche (avec le niveau-cadeau), la liste des atomes débloqués (aucun jusqu'ici, mais il pourra lire les propriétés de chaque atome et comprendre qu'ils pourra les débloquer), etc.
L'intérêt est multiple: moins de code (puisque pas besoin de pages d'inscription dédiées), plus de transparence (le joueur sait à quoi ressemble le jeu avant de s'inscrire puisqu'il est déjà dans le jeu), plus de conversions et d'inscription (j'espère; parce que le joueur commencera à jouer avant de s'inscrire, faisant tomber la barrière à l'entrée de l'inscription et le poussant à s'inscrire pour ne pas perdre ce qu'il a déjà joué en tant que visiteur), plus besoin de screens de présentations (qui ne sont jamais à jour) et une bien meilleure UX y compris pour les joueurs déjà inscrits (exemple: si je perds tous mes vaisseaux, ma page de flotte est vide [exactement comme si je n'étais pas connecté]: il faut donc gérer ce cas joliment quoi qu'il arrive, donc autant le gérer pour les inscrits et les visiteurs; idem pour les plans de vaisseaux [on peut supprimer son dernier plan, même si c'est pas forcément utile], ou les matériaux).

Voilà pour les nouvelles 2
Je vous attends sur le Discord de Variispace pour les screens et des infos plus régulières
Répondre
#22
hello comment tu gères les échanges serveurs du joueur non inscrit ?
Je veux dire par là :

suppose que deux joueurs non inscrits jouent en même temps comment savoir quelle action est à qui ? quel stock est à qui ?

J'imagine un cookie ou un truc comme ca ? mais du coup si j'empêche les cookies, etc.. Est ce que t'auras un contrôle du type : "impossible de te connaitre, tu ne peux pas jouer " ?
[WIP]projet Rivages
[WIP]projet Arthur (comme si ça suffisait pas d'un...)
Répondre
#23
En fait, tant que le joueur ne fait pas d'action "à sauver" (en gros, que du GET, pas de POST), je ne fais rien. C'est un visiteur tout ce qu'il y a de plus classique, sans même une session PHP puisque je m'en tape de le pister (et que je n'ai pas envie d'avoir 5 millions de sessions ouvertes pour chaque bot qui se ballade).

A partir du moment où le joueur fait un POST, s'il n'a pas de session, alors je lui réponds une page d'inscription / connexion, et je relance ensuite la requête. Dans la pratique:
- Le visiteur est sur une page (la création de vaisseaux par exemple), récupérée en GET donc sans session ni rien
- Il fait son vaisseau, c'est du full-client là, c'est juste de l'interface et de l'UX donc pas de soucis
- Il clic sur "save", un JS prend la main sur la soumission de formulaire et l'envoie en AJAX, sans session
- Le serveur n'a pas de session pour cette requête, il répond donc une exception type "NotLoggedInException", c'est à dire un HTTP 401 + JSON {"exception":"NotLoggedInException"} (un truc du genre, c'est déjà en place ça d'ailleurs) + header "X-Location: page-de-connexion-inscription" (X-Location car si j'utilise Location, le JS va directement la suivre, ce qui me pose soucis: y'a pas de "NoFollow" dans les options AJAX)
- le JS récupère la réponse, voyant qu'il s'agit d'une 401 (et voyant éventuellement le contenu de la réponse), il va chercher la page de connexion (X-Location), soit pour la mettre dans une pop-in (iframe), soit il ouvre direct une popup avec cette page, je ne sais pas trop (j'opte plutôt pour l'iframe jusqu'ici)
- Le joueur entre ses identifiants pour se connecter ou s'inscrire (dans l'iframe ou la popup) et soumet le formulaire
- Le JS AJAX de l'iframe s'enclenche, requête le serveur, le serveur l'inscrit (classique), le JS récupère la réponse, et émet un event
- Le JS AJAX de la page de départ récupère cet event, et renvoie la même requête qu'au tout début
- Le joueur ayant été connecté/inscrit entre temps, la session PHP existe, le serveur reconnait le joueur, et le plan de vaisseau est sauvegardé

Il n'y a donc pas de "jeu" complet sans être loggé, mais on peut commencer son action de jeu sans être loggé (et on doit alors l'être pour la sauver). Cela permettra aux joueurs de voir comment jouer sans être préalablement inscrit, et d'être poussés à s'inscrire pour ne pas perdre le plan qu'ils viennent de concevoir.

PS: si t'empêche les cookies, l'inscription se fera, l'event se triggé, mais l'AJAX de la page de départ ré-échouera après l'inscription car le cookie de session n'aura pas été sauvé (charge à toi de ne pas refuser tous les cookies). Si le JS n'est pas actif sur le client (déjà, niveau UX et interface il va en chier), là, y'aura rien qui se passera... Le serveur lui répondra la page X-Location (avec donc une page HTML classique disant "va voir là"), mais le plan de vaisseau sera perdu puisqu'il n'y aura pas de JS pour relancer la requête. Je peux toujours rajouter un "<noscript>" au template HTML pour ces cas là.
Répondre
#24
Salutations,

Quelques nouvelles?! Ca fait un sacré bail que je n'en ai pas postées ici 2

Pour rappel, les nouvelles sont plus régulières sur le Discord du projet: https://discord.gg/7npjyfr

Mais pour ceux n'ayant pas Discord, voici quelques grandes lignes:
• La création des molécules et des plans de vaisseaux est pleinement opérationnelle

• Quand un joueur n'a pas de vaisseau (comme c'est le cas au début du jeu), il est libre de choisir où commencer la partie (sur quelle planète/Lune/Astéroïde voire étoile), à condition que cet objet céleste respecte quelques règles: sur ces objets célestes, un gros bouton "démarrer la partie" est affiché, donc cela devrait être intuitif 2

• Le jeu donne alors un vaisseau (qui est mis dans une "flotte") au joueur, en orbite autour de cet objet

• Le joueur peut se servir de cette flotte pour: extraire des ressources de l'objet céleste (via ses points d'action), construire de nouveaux vaisseaux (instantané, parce que c'est chiant de poireauter sinon) ou se déplacer instantanément [là encore, c'est chiant d'attendre sinon] d'une orbite à l'autre (les orbites n'ont pas les mêmes propriétés: les plus proches de l'objet céleste [de la planète] rapportent plus de points d'action, mais requièrent d'être plus souvent connecté pour les "dépenser" [leur "stock max" de points d'action est plus faible])

• Le joueur peut également déplacer sa flotte vers un autre objet céleste de la galaxie, accessible depuis là où il est (si je suis en orbite autour d'une planète, je peux "remonter" vers son étoile, "descendre" vers ses Lunes, ou me rendre vers les autres planètes de ce système stellaire, mais je ne peux pas aller directement vers une autre étoile, ni vers une Lune d'une autre planète du système). Cela permettra de créer des systèmes de "blocus": si je mets une grosse flotte en orbite autour d'une étoile, alors aucun vaisseau ne pourra quitter/entrer dans ce système stellaire sans devoir passer d'abord par ma flotte. De plus, pour quitter un objet céleste, il faut être sur l'orbite la plus "externe" (la plus loin de cet objet): cela permet là aussi de faire des blocus. Si je place ma flotte sur cette orbite externe, alors personne ne peut venir sur cet objet céleste sans devoir d'abord m'affronter, et personne ne peut en partir non plus sans devoir d'abord m'affronter pour accéder à cette orbite externe. J'en attends beaucoup niveau gameplay de ces deux éléments 2

• On peut "casser" une flotte en deux, et répartir les vaisseaux et les ressources entre ces deux flottes. De même, on peut fusionner des flottes.

• La recherche est également en place. Elle fonctionne ainsi: les plans des vaisseaux ont des "modules de recherche", qui déterminent la puissance de recherche du plan de vaisseau. Quand je construis ce vaisseau, j'ai alors un vaisseau avec une puissance de recherche. Comme ce vaisseau est dans une flotte qui m'appartient, la flotte a donc elle aussi une puissance de recherche. Et comme je peux avoir plusieurs flottes, j'ai donc une puissance de recherche globale. A partir de cette puissance, je calcule un nombre de "points de recherche". Je peux alors "dépenser" ces points pour monter d'1 niveau une recherche que je veux.
Si mes vaisseaux sont détruits, je perds instantanément ma puissance de recherche, et donc, je perds les points *non dépensés*. Si j'avais dépensé tous mes points, alors je ne perds rien (on ne perd pas les niveaux de recherche déjà débloqués). De même, si je construis des vaisseaux, je gagne *immédiatement* de la puissance de recherche, donc des points de recherche, que je peux sois dépenser quand je veux (immédiatement, ou plus tard, en espérant ne pas me faire péter).
De cette manière, on peut faire de la recherche sans devoir poireauter devant un compteur (c'est souvent le cas de la plupart des jeux!) et on a quand même des notions de choix fortes: est-ce que je dépense mon point tout de suite, quitte à le dépenser mal? Est-ce que j'attends un peu avant de le dépenser, au risque de me faire péter? Mais alors, dans quelle recherche le dépenser? Est-ce que j'avance un peu chaque recherche, ou est-ce que je pousse une seule recherche à fond?

• Un tableau de Mendeleiev permet au joueur de voir les atomes qu'il a débloqués, et donc, les ressources qu'il peut extraire des objets célestes et les atomes qu'il peut utiliser pour créer ses propres matériaux

• Les vaisseaux ont chacun une "vitesse orbitale maximale", vitesse max à laquelle le vaisseau peut aller quand il est en orbite autour d'un objet céleste, et chaque orbite a une "vitesse orbitale", vitesse requise pour pouvoir rester sur cette orbite. Les formules sont assez réalistes. Cela signifie que plus on va près d'un objet céleste, plus on doit aller vite pour rester en orbite. Donc, on y sera plus en "sécurité", puisque les gros vaisseaux auront du mal à atteindre ces vitesses

• L'ensemble du jeu est visitable et même "amorçable" sans inscription: vous pouvez faire le tour de la galaxie, voir les compositions atomiques des planètes, les flottes en déplacement, etc sans être inscrit. Vous pouvez même créer votre premier matériau ou votre premier vaisseau sans inscription (mais pour le sauvegarder, il vous faudra un pseudo & un mot de passe). Cela devrait booster un max le taux de conversion du jeu en évitant les "effets murs"

• Il n'y a pas d'état "nouveau joueur" dans ce jeu. Si un joueur a 0 vaisseau, alors il peut en faire "apparaitre" un sur une planète valide, mais cet état "0 vaisseau" peut venir doit d'un nouveau joueur, soit d'un joueur qui s'est fait détruire toute ses flottes. Donc, je ne fais pas de distingo entre les deux. Cela veut dire pas de tuto obligatoire à faire avant de commencer à jouer, et une interface plutôt intuitive et robuste.

Voilà, je pense avoir fait le tour. Il me reste encore, comme gros chantiers:
• Les combats
• Le profil de l'utilisateur
• Les classements
• L'ajout de ressources dans l'objet céleste (on balance des atomes dans une planète pour la déstabiliser)
• La collision entre objets célestes
• Les limites d'orbites (quid si nos vaisseaux ne sont plus assez rapides pour rester en obite? ou trop lourds? etc)
• L'auto-génération d'images (vaisseaux et objets célestes)
• L'échange de ressources entre joueurs
• Les alliances
• L'abandon et la capture de vaisseaux
• Le recyclage de ressources en orbite
• L'espionnage/la furtivité des vaisseaux
• Toute la partie communautaire (Forum, blog, tchat, etc)

Y'a encore du taff 2
Répondre


Sujets apparemment similaires...
Sujet Auteur Réponses Affichages Dernier message
  Cette fois, je reboot vraiment ECLERD! Xenos 23 447 04-08-2019, 10:29 PM
Dernier message: Sephi-Chan



Utilisateur(s) parcourant ce sujet : 1 visiteur(s)