[Version PROTOTYPE] Warpfire Revolution (RealTime Space Ship battle)
#1
[Image: logo.png]



Essayez !


Présentation :


Warpfire révolution est un projet personnel qui vise à redonner vie à un ancien jeu de la société GameForge que j'aimais particulièrement, suite à l'annonce de sa fermeture en 2011 j'ai pu récupérer toutes les ressources nécessaire au développement et j'ai commencé à développer de manière plus poussé. Jeu tout publique pouvant être joué à fréquence désirée aucune imposition, mais quand vous ne jouez pas, les autres progressent ! Aucune option payante pour le moment, une machine virtuel m'a était offerte par EdenNetwork.it (Un ancien joueur de warpfire y jouait et à vu mon projet, il m'a donc aidé, je l'en remercie).


Pour le moment le jeu est en anglais, avec quelques fautes je l'avoue, mais il a déjà un système de template opérationnel, je m'occuperais de la traduction lorsque j'aurais atteint un certain de niveau de jouabilité, à la base en français, mais comme la majorité des joueurs sont anglais, j'ai changé lors du passage à une version "test publique"


Comment jouer ?
Cliquer sur le lien, pas besoin d'inscription, cliquez juste sur "GO", si quelqu'un utilise déjà ce compte créer un compte dans "register", il n'y a pas besoin de mail, entrez un login et un pass et c'est partis, le jeu se charge, faut patienter, puis lorsque c'est bon cliquez sur le "Go" au centre de la page, vous arrivez en jeux avec votre vaisseau et pleins de boutons partout, pour vous déplacez, cliquer n'importe où autour de vous ou sur la minimap en bas à droite, pour selectionner les cibles, cliquez dessus ou positionnez votre souris proche de l'objet et appuyez sur B (pour selectionner) V pour collecter, dans la barre en bas au centre de l'écran les touches 1,2,3 servent à utiliser vos armes principales, 4,5,6 et utiliser les différents type de rocket (qu'il vous faut acheter dans le hangar), 7 pour larguer une mine, 8 pour le robot de réparation (à acheter), 9 pour le module de camouflage (pareil), et 0 pour le boost (pas besoin d'acheter). en bas à droite en haut de la minimap vous avez un petit bouton orange qui vous affiche la carte complete du jeux, au début vous arrivez sur le secteur 1, puis plus vous progressez , plus vous vous rapprochez du centre et ça devient de plus en plus difficile, pour le moment le jeu n'est pas équilibré, mais il est jouable et casi-complet. il manque tout de même pas mal d'amélioration que j'ai en tête.


Theme :

Futuriste/Spatiale, Jeu en temps reèle dans lequel vous commencer en pilotant un vaisseau basic muni d'une petite arme pour vous défendre vous devez évoluer avec d'autres joueurs en combattant les monstres alentours, vos ennmies et toutes autres menaces. Pour réussir votre mission qui est de devenir le maître de la galaxie, améliorez votre vaisseau et votre équipement en les remplaçant par des plus performant ou améliorez les. Réalisez des quêtes variées dans de vastes environnement hostiles, défendez votre alliance, fondez un puissant clan et maîtrisez l'art du commerce et de la guerre spatiale !



Histoire :
En 3099 alors que la guerre fait rage entre les 2 principales alliances terrienne qui se partage plusieurs secteurs de l'univers, une invasion d'une autre civilisation  avancé, Outer Worlds menace l'équilibre de ces zones sous la protection des armées des United Star Corps et sous les accords commerciaux appartenant à la Free Galactic Federation. Plusieurs pilotes sont engagés pour contrer cette attaque et une seule alliance sortira vainqueur de cette guerre, Toi, Pilote ! Rejoins-nous, prends les commandes de ce vaisseau gracieusement offert et vas défendre nos valeurs communes !


Détails techniques :
Version actuel : 0.5 (TEST)
Temps de réponse du serveur : 6-10ms environ (50ms avec ma connexion 8 méga) (Serveur privé, VPS 4 OVH) coeurs 8 taches, 8gb ram )
Nombre d'objet à gérer, 17 secteur x (1000 monstres qui se déplacent toutes les 3 à 10 secondes + 1000 astéroïdes)
Structuration du code : Personnel, je n'ai suivis aucun modèle particulier, j'ai bien compris l'utilité, mais je n'ai hélas pas la patience de lire le "Tout bien faire comme il faut", je préfère passer à la pratique quitte à perdre du temps et recommencer, certains trouveront ça bête, perso, je n'aime pas trop changer mes habitudes.


Fonctionnement :
Le client est développé en XHTML/Javascript, l'animation et les graphismes sont géré par les canvas, mon script n'est pas très optimisé, je me suis plus concentré sur le côté serveur ces derniers temps, le client ne fait qu'afficher l'information et envoyer les demande au serveur, j'ai veillé à ce qu'aucune faille permettant la manipulation des données ne soit présente (dumoins, je l'espère). Il est pour le moment uniquement compatible avec chrome due à un problème de canvas, pour une version de développement, je m'en contenterais, mais la ré-écriture du client finale sera biensûr compatible tout navigateurs et, je l'espère, mobile (jouer dans les toilettes, dans le bus, que madame ai finit de prendre sa douche ou en attendant autre chose). Aucun framework utilisé, je code tout à la main. j'ai besoin d'un total controle sur mon code et gros point noir, je ne suis pas trop du genre à utiliser le travail des autres même si je connais les avantages apportés.

Le serveur est pour le moment uniquement en PHP, la version de production tourne sur une VM avec 8Go de ram, 4 coeurs en hyperthreading de 2,27GHZ sous windows 8 , prochainement sous linux server (fonctionne en local en tout cas), developpé en PHP il est multi-processus, J'ai un processus centrale qui gère les connexions au joueurs, un thread pour le calcul des scores en temps reele et pour la gestion de la communication entre les processus et les threads. Orienté objet, j'utilise memcacheD (prochainement peut être APC), Pthreads (difficile avec linux, donc je penses oublier cette autre possibilité), les socket, les traits.

L'organisation de mes fichiers et de mon code est un peu archaïque, ce qui m'a conduit à ré-écrire mon code plusieurs fois, depuis j'ai soigné ce côté.

Pour lancer mon serveur, j'ai créer un batchfile qui lance PHP CLI avec un script qui génère différents autres fichier php pour lancer les processus, le client envois donc ses données au processus Client qui les envois aux différents secteur (ou univers) sur lequel le joueur est positionné, les données sont reçu et renvoyé au format JSON, je procède par couche pour permettre la flexibilité du code, les différents objets présent sur les univers sont des classes, sous classe et trait séparé dans différents fichier ayant différents comportements pour une même base, j'ignore totalement si j'ai choisis le meilleur procédé, à vrai dire, je code de tête, sans avoir posé le travail, j'ai juste écris la liste des choses à faire et ne pas oublier dans un fichier texte, le faite d'être totalement maître de mon code et garant toujours la même organisation me permet de me retrouver asser facilement dans mon code, je fais d'abord des "outils" pour gérer la base des tâches à executer puis j'y greffe des possibilités, si je dois faire un changement majeur, je n'ai alors qu'à modifier qu'une petite partie du code (et comme avant c'était pas le cas, là je dois tout rattraper).

Lorsque l'on souhaites faire quelquechose que l'on ne sait pas, on apprends comment en mettant tout en oeuvre pour que les résultats soit ceux désirés. 
Trouvez par vos propres moyens les réponses à vos questions, il y a suffisament de savoir accessible à tous pour apprendre pour réussir.
pour preuve, ce jeu en est le résultat.

Équipe :
Moi même 2

Avancement du projet :
Je dirais un bon 80%, le client et le serveur sont pour le moment opérationnel, fonctionnant sous unbuntu et stable, il ne me reste qu'à ajouter plus de fonctionnalitées mais la base du jeu est terminé, le jeu manque cependant d'un peu d'équilibre, mais pour une version test en constante évolution, je préfère laisser les joueurs progresser rapidement, je suis dans la possibilités d'organiser des events, donc tout ce qui est gestion du joueurs, des actions, l'A.I etc est fait, il ne reste qu'à l'optimiser et l'améliorer, certains bugs restent encore à corriger, mais les plus graves le sont. Mes outils de production propre au projet sont développé, il ne me reste que quelques détails à régler en vue des futurs améliorations possible, lorsque j'ai ré-écris le code, j'ai fait la liste des possibilités,j 'ai donc conçu mon code pour qu'il reste flexible et détachable, la toDolist est disponible sur le site facebook de la page.

Problèmes soulevé et solutions:
La communication : Quels ports utilisé ? comment envoyer et comprendre les ordres ? Comment sécuriser l'envois ? Gérer le lag ? 
La gestion : Tout dans un seul processus avec Pthreads ou multi-processus ?
Le déplacement : Comment selectionner des objets présent sur une zone précise sans se taper toute la liste ? comment savoir qui est visible et qui ne l'est pas ? le déplacement est la fonction majeur du jeux et la plus couteuse, elle doit donc être la priorité en terme de performance, chaque milliseconde compte.

Gestion de l'espace : Système de cluster, une grande map de taille variable (45 000 pixels²) divisé par des zones correspondant à la visibilité max d'un joueur (6600 pixels²) , le zoom max en jeu étant de -90% et dépendant de la taille de l'écran. c'est ce système qui gère qui vois quoi et les cibles possibles.


Statistiques :
Une demi centaine de joueurs par jour, en générale 6 à 7 en même temps, ça monte à 20 en heure de pointe pendant les events, j'ai pas de pub et juste une page facebook qui compte un peu près 839 membres. et mes joueurs ont atteint au total le milliard d'expérience 2

Comment jouer ?
Pour le moment, uniquement compatible avec les navigateurs utilisant webit, je n'ai testé qu'avec chrome, je règlerais ce problème de compatibilité plus tard (en connaissance de cause bien entendu), il vous faudra un peu de patience pour le premier chargement, les images ne sont pas compressée, le titre de la page changera lorsque le chargement sera terminé.


1) Rendez vous simplement sur la page du jeux, patienter jusqu'à ce qu'elle s'affiche, normalement un pré-loader est prévu, mais celui ci ne s'affiche pas, je me pencherais sur ce problème plus tard
2) Soit vous cliquez directement sur go pour accéder au compte de test (identifiants vides), soit vous créer un compte
3) Une fois le chargement terminé et si vous avez survécu jusque là vous devriez voir apparaître un "Play", cliquez dessus, vous attérissez alors en jeu sur une station spatiale avec indiqué "Zone démilitarisée", vous avez votre vaisseau au centre de la carte, un tout petit tout basic qu'il vous faudra améliorer puis changer.
vous pouvez vous déplacer en maintenant le clic gauche et en bougant sur la carte, pour le moment le but est d'améliorer son équipement, réussir les quelques quêtes que vous trouverez dans "hangar", le jeu se joue de la même manière que darkorbit, vous pouvez accéder au règlages du son et des graphismes dans "Settings", ces paramètres sont sauvegardés dans le localStorage de votre navigateur.
4) Maintenant que vous êtes équipé et que vous avez saisi les principales fonctionnalitées du jeu vous pouvez l'explorer, attention cependant à avoir un équipement à jour, les divers npc sont parfois agressif, je vous laisse donc partir à la découverte 2

Je ferais un tutoriel complet lorsque j'en aurais le temps, hélas, j'en manque cruellement, (taf en poste + le peu de vie que j'ai à côté), mais j'y passe le reste de mon temps libre.

J'attends vos avis 1

Note : Si ya des matheux et balèze en logique, j'aimerais exposer mes parties théorique pour avoir un avis externe 16
Répondre
#2
Eh bien... Ca avait l'air plus que prometteur, mais arrivé sur la page du jeu... Rien ne se charge, seulement un grand écran noir. 2

Java, Flash Player à jour et activés (Javascript autorisé aussi) au cas où ton site utiliserait l'un de ces éléments, le problème ne vient pas de chez moi donc.

En tout cas, c'est super bien d'avoir reprit le travail de ce studio. Ils ont été sympas de te fournir leur travail d'ailleurs ! 2
Répondre
#3
(01-25-2015, 06:15 PM)JkStephen a écrit : Eh bien... Ca avait l'air plus que prometteur, mais arrivé sur la page du jeu... Rien ne se charge, seulement un grand écran noir. 2

Java, Flash Player à jour et activés (Javascript autorisé aussi) au cas où ton site utiliserait l'un de ces éléments, le problème ne vient pas de chez moi donc.

En tout cas, c'est super bien d'avoir reprit le travail de ce studio. Ils ont été sympas de te fournir leur travail d'ailleurs ! 2

Le jeu fonctionne uniquement sous google chrome, j'espère que ta version n'est pas ancienne, petite précision, ils ne m'ont rien du tout fournit 16 j'ai juste récupérer les fichier flash que tout les joueur téléchargeait au lancement du jeux et j'y ai extrait les musiques et les images, c'est tout ! aucun code ! tout est fait à la main de A à Z, en gros, j'ai juste pu me passer d'un graphiste en bidouillant et d'un ingénieur du son pour ... les sons 34
Je travail depuis 2011 dessus, tout est fait par moi à part ça 34 en gros c'est comme si il me demandait de refaire le jeu en ayant juste les ressources, mais je n'ai aucune relation avec gameforge, je fais ça de mon côté 16
Répondre
#4
O_o'

Comment ça se fait que ça tourne uniquement sous Chrome ?
Tu te limites là à filer un produit accessible à moins de la moitié des internautes (48% d'users).
Dommage j'aurai bien testé également, mais suis sous Firefox.
Répondre
#5
(01-25-2015, 09:23 PM)Max72 a écrit : O_o'

Comment ça se fait que ça tourne uniquement sous Chrome ?
Tu te limites là à filer un produit accessible à moins de la moitié des internautes (48% d'users).
Dommage j'aurai bien testé également, mais suis sous Firefox.

Bah parcequ'à la base c'est une version test, parcequ'avec les canvas il n'y a pas de soucis de compatibilité, mais je dois encore modifier certaines choses pour qu'elles passe sous les autres navigateurs. et parceque vu la taille du code, pour le moment je préfère me concentrer sur autre chose, j'en suis pas encore au test à grande echelle. faut pas oublier que tout est codé à la main, ya pas de bouts récupérer, donc pour le moment, désolé oui, mais compatible uniquement avec les navigateurs utilisant webkit. en même temps, installer chrome prend 2 minutes, beaucoups moin lourd etc ... mais bon, pas que ça parte en débat 34 t'as des vidéos sur youtube si tu souhaites te faire une idée 2
Répondre
#6
salut il n empêche que si tes choix techniques imposent un navigateur, quel qu'il soit, tu te priveras d'un max de joueurs.
et ne remet pas à plus tard, car plus tu tardes moins tu seras motivé pour le faire (escalader un mur est plus facile qu'escalader les falaises d'etretat)
[WIP]projet Rivages
[WIP]projet Arthur (comme si ça suffisait pas d'un...)
Répondre
#7
(01-26-2015, 08:54 AM)Ter Rowan a écrit : salut il n empêche que si tes choix techniques imposent un navigateur, quel qu'il soit, tu te priveras d'un max de joueurs.
et ne remet pas à plus tard, car plus tu tardes moins tu seras motivé pour le faire (escalader un mur est plus facile qu'escalader les falaises d'etretat)

Merci pour le conseil, à vrai dire je ne pensais pas m'encombrer de ces changements avant une version vraiment potable.
J'aime le "Tu ne seras plus motivé", non pas vraiment le problème ça, si tu savais les heures que j'y passe, ce projet est une obsession, essais donc de regarder la taille du code source, ça a l'air bateau mais ya beaucoup derrière.

Je dois m'amuser à traduire le jeu avant qu'il ne soit finit aussi pour récupérer un max de joueur ou tout comme les autres fonctionnalitée je reste sur mes prévisions et le ferais une fois le jeu bien avancé ?

Petites précisions tout de même :
Lors des premières version, compatible tout navigateur, je n'étais alors qu'en CSS3,xhtml pour l'affichage des animations etc, ça ramais comme pas possible sur mon i7, 8go de ram et carte graphique de moyenne gamme, je m'arrachais les cheveu à essayer de le rendre compatible avec tout les navigateurs surtout avec IE, quand je suis passé au canvas, tout marchait impec, puis j'ai laissé tombé la compatibilité, en bref je proposerais bien une station avec de l'essence et du diesel et aussi du colza à mes utilisateurs mais pour le moment je suis en construction, donc ils devront utiliser un navigateur a essence, bah parceque c'est une version test quoi ... 

En faites quand vous faites un projet, vous avez à peine rédigé la structure de vos documents que vous avez déjà les 30 navigateurs de lancer pour tester la compatibilité 34 ? Et à part ça, quelqu'un d'autre qui aurait un autre avis que "Il n'est pas compatible avec les autres navigateurs" ?, parceque pour enfoncer le clou je dirais que je ne m'encombre pas d'une validation W3C.
Répondre
#8
sur firefox marche pas comme vu plus haut, sur chrome au bout d'une heure j'en étais à 83% de chargement.
[WIP]projet Rivages
[WIP]projet Arthur (comme si ça suffisait pas d'un...)
Répondre
#9
En fait, ce n'est pas un jeu web: c'est un logiciel (jeu) délocalisé. Si tu te bases sur un navigateur pour faire un site, alors tu fais un logiciel délocalisé dans le net. Si tu te bases sur le standard web (W3C, dont la validation stricte n'est pas forcément nécessaire mais dont le standard devrait être respecté par tout véritable site web) alors tu as un véritable jeu web dont l'intérêt majeur est de faire abstraction du support de l'utilisateur, et du navigateur. Et si certains navigateurs ne sont pas compatibles avec le standard W3C, alors ce n'est pas ton problème.

La comparaison avec la station service est vaseuse. A mon sens, là, tu es en train de faire du Diesel compatible uniquement avec un seul modèle de véhicule. Bon, ben c'est pas du Diesel, c'est un carburant pour ce modèle de voiture. Là, c'est pas un jeu web, c'est un jeu délocalisé dans internet qui tourne sous Webkit. C'est pas très différent d'un logiciel plug&play compatible Windows 8 uniquement. Tu te prives de l'énorme atout de la standardisation et de l'inter-compatibilité du web. Sans pour autant bénéficier de la puissance qu'aurait un jeu C++ ou de la simplicité de concevoir et développer pour un seul support donné.

Puis, sur Opera (webkit aussi donc), il ne se passe pas grand chose... Ca mouline... et j'ai pas envie d'attendre plus de 2 minutes (réelles, chrono). Pas d'indicateur de chargement, pas de texte à lire en attendant ou d'image à regarder... Pas de clic droit sur le site (ben voyons), encore un temps de chargement (9 obscures étapes, une paille), j'ai aucune idée de ce que je dois faire, je traverse la moitié des objets qui bougent, mon vaisseau vient de casser tout seul, les textes sont peu lisibles (gras). Bon ok, je viens de recommencer, j'ai pété des trucs et ramassé d'autres, j'ai aucune idée de pourquoi...
La musique est répétitive: elle est aussi forte en volume que les musiques dynamiques qui s'accordent avec ce qui se passe à l'écran pour informer le joueur (façon supreme commander) ou l'immerger (façon Crysis) mais elle a la répétitivité d'une musique de fond à faible volume juste là pour éviter le silence total (façon jeux de réflexion).

30 minutes de chargement ! La ressource ajax.cloudflare.com/cdn-cgi/nexp/dok3v=919620257c/cloudflare.min.js semble totalement à la masse d'après l'onglet Network d'Opera...
Répondre
#10
Merci pour cette réponse constructive, à la base ce n'était qu'un simple projet, mais avec le temps ça finissait par devenir concret, en faite, j'ai bien l'intention de le rendre compatible tout navigateur évidemment, je testerais avec divers périphériques à ma porté, je ne vois pas trop de quoi je me prive étant donné les performances que j'avais obtenu avec de simples animations en css3 et la complexité de la gestion comparé aux canvas mais je préfères me concentrer sur le serveur pour le moment, il est normal que tu ne sache pas trop quoi faire si tu es débutant, je n'ai pas encore eu le temps de développer un système de tutoriel et les tooltip, j'ai concentré mes efforts sur les fonctionnalités de base du jeu, il est dans un premier temps destiné aux nostalgiques qui l'ont connu et qui comme moi n'ont pas trop compris la raison de sa fermeture et son manque de développement malgré un intérêt pourtant grand de la communauté.

La comparaison avec une station essence était plutôt pour dire "je fais comme ça pour le moment, merci de passer à autre chose", comme je l'ai indiqué on m'a prêté une VM sur laquelle tourne XAMP et windows server 2012 pour les pages du site et plusieurs CLI pour la gestion des objets et du serveur de jeu, prochainement j'espère pouvoir passer sous linux, mais je dois m'accommoder de couldflare ou m'affranchir et à vrai dire, pour la vm qu'on m'a donné gratuitement et pour une version de test, je n'ai pour l'instant pas grand intérêt à évoluer à ce niveau. Si le chargement est long c'est parceque les images du jeu sont volumineuses, pour chaque model il y a un sprite de base + un sprite que javascript pourra changer la couleur afin de varier un peu les NPC, le clic droit est utilisé pour une autre action qu'afficher un menu déroulant, n'importe quelle néophyte arrivera à afficher la source sans problème et comme tu as pu le constater elle n'est ni compressé, ni protégé.

Pour résumer, gardez en tête qu'il s'agît ici d'une version test "jouable" car l'on peut y faire un compte et progresser, mais qu'il est loin d'être terminé, j'y ai consacré énormément de temps et je m'y suis beaucoup investis, j'ai donc un peu de mal en lisant les commentaires d'avoir l'impression d'avoir baclé parceque madame Dupuis ne pourra pas y jouer sous internet explorer.

Je ne suis ni graphiste, ni ingénieur du son, j'aime uniquement développer de longues heures, la musique certe répétitive mais authentique, je ne dispose que des anciennes ressources du jeu et il me sera facile de les modifier lorsque le temps sera venu et que j'aurais trouvé un graphiste compétent (et surtout généreux).

N'étant pas venu ici pour faire une quelconque publicité mais plutôt pour parler technique et avoir des avis sur cette version test (de laquelle bien entendu l'on attendra pas la perfection ni même qu'elle ai ceci ou celà, ni même en chipotant sur les détails qui pourrait me faire perdre des joueurs, à vrai dire, pour une version test, les quelques joueurs régulier me suffisent.

Chose étonnante, sur tout les pcs où j'ai pu jouer le chargement est effectivement long du à la taille des images, mais de là à ce que ça prenne 2 heures ou plus, n'abusons pas, chaque chose en son temps, je suis bien conscient que l'attente fait fuire, le côté client à encore bien des modifications à recevoir mais par contre il est fonctionnel.

Pour ceux n'ayant pas chrome, je vous invite à rechercher "warpfire" sur youtube pour vous faire une idée de l'ancien jeu et de ma version actuel, enfin. je suis seul à développer et compte bien le rester pour le moment, ça a l'air simple de bouger un petit vaisseau, mais je penses qu'en temps que développeur vous savez que toute chose ne se fait pas par magie.

Excepté le faite que mon jeu ne soit pas terminé, ni même compatible avec les navigateurs, d'autres remarques ? (un peu moins porté sur les finitions, car la j'ai terminé les fondations et les murs, je suis en train d'aménager les pièces et je prévois le papier peint.)
Répondre




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