IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

[Phase de recherches] Jeu par navigateur


Sujet :

Projets

  1. #1
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut [Phase de recherches] Jeu par navigateur
    Bonjour à tous,

    Je suis en dernière année d'un bachelor honors computing and IT dans une université aux royaumes unis.

    Pour valider cette dernière année j'ai un projet à mener et délivrer un artefact. Le but est de montrer que l'on est capable de réaliser un projet de développement de l'analyse à la réalisation, puis à en faire la maintenance.

    J'ai longtemps chercher un moyen de montrer toutes mes capacités : base de données, développement web, application client serveur et algorithmique.

    Des sites web j'en ai déjà fait, à chaque fois j'ai le sentiment de rester sur ma faim, souvent l'algorithmique n'est pas poussée, pareil pour les applications client serveur.

    C'est pourquoi j'ai envie de travailler sur un jeu par navigateur histoire d'exposer toutes mes connaissances.

    Je visualise plutôt bien ce que j'ai à faire, et la charge de travail. J'ai jusqu'à Mai pour le réaliser, c'est pourquoi je ne vais pas pousser très loin les diverses fonctions que le jeu pourrait proposer. Je garde ça pour la maintenance futur, car le projet que j'ai conceptualiser est un projet qui me tient à coeur, je pense donc le continuer même après mon bachelor terminé.

    Je ne pense pas qu'il soit utile d'aller très loin dans la présentation du jeu pour le moment. Sachez juste que dans un soucis de pouvoir travailler l'algorithmique le jeu sera sur une base d'élevage de petite créature à la tamagochi / Pokemon, ceci avant de pouvoir élaborer un système de comportement psychologique et physique de la créature en m'inspirant de ce que l'on peut trouver pour les joueurs de football dans football manager par exemple.

    Le jeu sera réalisé soit en PHP/HTML/CSS (ajax javascript etc...) pour la partie interface et du mysql pour la base de données, si je dois prendre en compte les coûts.
    Soit en asp.net avec une base de données sql serveur ou oracle si les coûts n'ont pas d'importance.

    Un back office en java (client/serveur) et quelque animation en flash seront ajoutés si le temps et l'utilité le permettent.

    Là où j'ai besoin d'information, c'est pour la partie "Engine". Je compte faire en sorte que l'on puisse participer à de petits affrontement, système de combats et système de courses. Or je ne visualise pas trop, où je dois placer mes algos qui y feront référence. Est ce des procédures stockées dans ma bdd où des scripts placées ailleurs?

    Je tiens à préciser, qu'il n'y a aucun objectif commercial, aucun recrutement, j'ai juste besoin de quelques informations sur le sujet expliqué. Je ferais peut être de ce poste un journal sur l'évolution du projet.

    Merci

    Florent

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2007
    Messages : 18
    Points : 21
    Points
    21
    Par défaut
    Attention, ce qui suit n'est pas une critique voilée, c'est juste des questions que je me pose :

    Ce jeu est-il un jeu par navigateur au sens "ogame", ou bien est-ce plus temps réel (à la dofus arena, voire plus complexe encore en terme de nombre de joueurs) ? Parce qu'entre l'un et l'autre, je pense que les problématiques sont différentes. A la lecture de ton post, on dirait plus que c'est un jeu par navigateur classique (sans aucune connotation négative), mais "de petits affrontement, système de combats et système de courses", ça fait plus temps réel pur. Du coup, un back java avec interface flash a du sens, mais ce serait quelque chose à part, non ?
    Au final, ça change pas mal l'endroit où tu stockes ton "engine", donc l'architecture globale de ton projet, selon ce que tu fais.

    En tout cas une chose est sûre : "les coûts n'ont pas d'importance" --> ça n'arrive jamais (ou alors tu as bien de la chance)

    Bon courage

  3. #3
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    clavier qwerty donc pas d'accents, desole pour la gene occasionnee

    Alors, il s'agira plus d'un jeu a la ogame en terme de presentation, pour les combats ou les courses, les joueurs pourront effectuer des reglages au prealables, ensuite mon engine calculera les resultats et les affichera au format texte, comme on peut trouver sur le jeu de gestion de football Hattrick. Elaborer quelque chose a la dofus n'est clairement pas dans mes capacitees. Quand je parlais d'animations flash c'etait pour plus tard voir si je ne peux pas exploiter les resultats renvoyer par mon engine afin de generer de petite videos consultable par les utilisateurs comme on peut trouver dans footstar ou la brute. Mais ceci sera pour plus tard ne maitrisant pas pour l'instant le flash.

    Le back office en java sera pour la partie admnisitrateur.

    Donc voila, si ca peut aider pour repondre a mes interrogations sur l'engine.

  4. #4
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par Kihmé Xs Voir le message
    Là où j'ai besoin d'information, c'est pour la partie "Engine". Je compte faire en sorte que l'on puisse participer à de petits affrontement, système de combats et système de courses. Or je ne visualise pas trop, où je dois placer mes algos qui y feront référence. Est ce des procédures stockées dans ma bdd où des scripts placées ailleurs?

    Florent
    Salut je ne suis pas trop spécialiste de ce genre de jeu mais soit oui tu fais des procédures stockées soit tu fais cela coté script Php.
    C'est à toi de décider ce qui est le plus souple et le plus performant..
    Ce dont tu parles c'est l'IA du jeu; coté PHP cela sera performant mais en revanche l'utilisateur aura comme inconvénient de charger des scripts plus gros.
    Coté procédures stockées il faudra gérer des triggers éventuellement ce qui n'est pas forcément très souple.
    Si tu fais beaucoup de requêtes SQL cela risque de nuire au performances

    Soit en asp.net avec une base de données sql serveur ou oracle si les coûts n'ont pas d'importance.
    Asp.net n'est pas reconnu pour ses performances ; et puis c'est une tech qui risque d'être lourde...c'est mon point de vue il vaut ce qu'il vaut surtout que tu devras payer des licences à Microsoft.
    Non franchement PHP + MySQL est parfait pour commencer quitte à migrer sur du plus costaud par la suite.
    Ce qui est essentiel c'est d'essayer de faire du code le plus générique possible

    Des sites web j'en ai déjà fait, à chaque fois j'ai le sentiment de rester sur ma faim, souvent l'algorithmique n'est pas poussée, pareil pour les applications client serveur.
    à ce moment-là fais du client-serveur avec client en .NET ou Java
    sinon tu peux faire un jeu 2d ou 3d en C++ là tu vas en manger de l'algorithmique

  5. #5
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    ce qu'il y a, c'est que par exemple, un combat sera déterminé à une heure précise. Donc il faudra qu'à cette heure précise le calcul commence et que les résultats soient envoyés à tout utilisateur souhaitant suivre le direct. Donc je vois mal comment réussir à mettre ça côté client.

    Je visualisais plutôt ça comme tu le dis Mat.M côté serveur, faire des procédures stockées.

    J'ai parlé d'asp.net car c'est la seule autre technologie web que je connaisse à part le php, et dans mon université ils arrêtent pas de nous bassiner avec asp.net et C#.

    Pour les techno je verrais ça quand j'aurais bien compris comment je dois faire mon IA.

    Pour le moment je n'ose pas trop écrire directement à des développeurs de jeux dans ce style, donc si quelqu'un en sait un peu plus, qu'il n'hésite pas.

    En tout cas merci à vous toooooof et Mat.M de vous êtes penchez sur mes interrogations.

  6. #6
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Si tu as des questions sur la réalisation d'un jeu par navigateur en PHP/HTML/CSS + MySQL pour la base, je peux répondre à toutes tes questions sachant que j'en ai developpé un de bout en bout et seul.

    Par contre, je ne pourrais pas t'aider sur le choix sur d'autres technos.

    Pour les scripts de combat, j'ai géré ça côté PHP pour ma part et je pense aussi que c'est la solution la plus souple et la plus performante.

  7. #7
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    mes profs ont l'air d'aimer l'idée.

    Je suis preneur de tout ce que tu pourras me dire loka.

    Je ne visualise pas trop comment mettre ça côté client, car mes données seront puisées dans ma bdd, puis les résultats devront aussi être stockés quelque part afin d'être réutiliser après calcul par tout ceux voulant voir le résultat. Et le calcul doit se faire indépendamment des connexions, or je sais pas si ce que je met côté client peut être utilisé en faisant abstraction de la connexion des acteurs, tu vois ce que je veux dire?

    Dois je faire ça sous forme de développement objet?

  8. #8
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Si j'ai bien compris :

    1/ Tu souhaites que ces ressouces soient misent à jour indépendemment des connections client.
    2/ Tu souhaites tout de même que ces ressources soient affichés à jour sur le client.

    La solution est assez simple en fait, il te suffit de n'afficher que le résultat du calcul d'augmentation des ressources pondérés par le temps entre sa dernière mise à jour et le raffraichissement du client (affichage de la page).

    Imaginons que tu ai un script de mise à jour automatique (un cron) qui calcul tous les jours à minuit les ressouces. En gros, tu as à minuit des données en base, par exemple X ressources A et Y ressources B pour le compte TOTO.
    Les ressources A sont censé augmenter de Z toutes les minutes et les ressources B de W toutes les minutes.

    TOTO se connecte et affiche la page des ressources, là au niveau php, tu récupères tes données en base, tu récupère l'heure d'affichage de la page de ressource (par exemple : 1h du matin) et tu fais le calcul pour l'affichage (en reprenant l'exemple, il y aura X + Z*60 ressources A et Y + W*60 ressources B). Pas besoin de mise à jour en base tant que TOTO ne fais pas d'action necessitant de mise à jour (dépense de ses ressources par exemple, dans ce cas là, il faudra mettre à jour l'heure de mise à jour en base).

    Tout se fera donc en PHP (HTML pour l'affichage côté client) et une requete MySQL pour la récupération des données.

    Si j'ai raté quelque chose, precises moi

  9. #9
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    tu as bien compris ce que je veux, à un petit détails prêt, le calcul de ressources même si je n'en aurais pas j'aurais utiliser ce genre de procédé. Mon interrogation se porte sur la résolution des combats. Je vais avoir à élaborer un moteur de calcul du vainqueur. Les combats seront déclencher à l'heure pour laquelle ils seront programmés.

    Une fois cette heure atteinte, il faut qu'automatiquement la résolution du combat se lance. J'aurais tout un algo pour ça, qui va prendre en compte des skills des créatures et des réglages venant de l'utilisateur. La calcul doit se faire en temps réel, et afficher (et stocker) au fur et à mesure les résultats obtenus.

    C'est ce truc qui me gêne, car je comprend que ça allège la base de le placer côté client, mais j'ai peur que ça lance différent calcul pour un seul combat à chaque fois qu'on cherche à y accéder ou d'autre problème comme ceux ci.

    Si ça trouve faire ça côté client, sous forme de classe (dit moi si je me trompe) peut être faisable sans être bloqué de la façon que j'imagine.

  10. #10
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Il est difficile que tes combats se déroulent vraiment à l'heure prévue, tu as plusieurs solutions :

    1/ Imposer des plages horaires pour la resolution des combats, ces plages horaires seront celles où tes crons seront lancés tout simplement. Solution la plus simple mais qui peut devenir lourde pour l'accès à ton jeu lors de ces plages horaires et pas très flexible.


    2/ Simuler que le combat ai été lancé à l'heure prévue. Prenons un exemple : tu as x joueurs qui ont un combat de prévue à une heure H. Le premier qui va se reconnecter au jeu après l'heure H du combat (même H + 1minute) se verra lancer la résolution du combat auquel il participe (sans qu'il le sache) et ainsi aura les résultats du combat.
    Le desavantage, c'est que le perso qui lancera la resolution du combat aura un ralentissement (plus ou moins important selon la lourdeur du script).

    Pour un combat Perso VS PNJ, tu peux faire un rendu pseudo temps réél sans même prévoir d'horaire de combat.


    Par contre, je n'ai pas très bien compris le truc qui te gêne. Effectivement, résoudre les combats côté client lancera différents calculs (ton algo) et occasionnera des ralentissements côté client. A toi d'optimiser aussi ton algo pour que ça ne gêne pas le joueur.

  11. #11
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    par exemple, est ce que tu connais les jeux www.hattrick.org, www.footstar.org ou www.ondarun2.com

    Les deux premiers sont des jeux de football, les matchs se déroulent à heures prévues indépendament des connexions des joueurs.

    Le dernier est un jeu de course, les courses se lancent aussi à l'heure prévue indépendament des joueurs.

    Si quelqu'un se connecte il peut prendre le match ou la course en cours et suivre sa résolution en direct. Si il se connecte après résolution il a directement accès au résultat final. C'est quelque chose dans cet esprit que je souhaite réaliser, c'est pourquoi le côté client me dérange.

    Sinon, admettons que je parte pour une résolution côté client, je dois créer des fichier php, sous forme de classes contenant mes méthodes utilisées pour la résolution?

  12. #12
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Points : 5 509
    Points
    5 509
    Par défaut
    Je n'ai malheureusement jamais joué à ces jeux mais je pense que ces jeux doivent resoudre le match avec un script à l'heure H, cette resolution dois générer un enregistrement (en base sans doute) de comment s'est déroulé le match ou la course et ensuite il y a un autre script qui permet de lire cet enregistrement et de le traduire en match / course côté client.

    Que ce soit sous forme de classe ou non n'a aucune importance mais sinon oui tu dois avoir tes méthodes dans un fichier PHP qui se lance soit côté client, soit par un service cron automatique.

  13. #13
    Membre confirmé Avatar de Kihmé Xs
    Inscrit en
    Janvier 2007
    Messages
    549
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Janvier 2007
    Messages : 549
    Points : 491
    Points
    491
    Par défaut
    ok, je te remercie de toutes ces réponses, je vais me lancer dans une recherche sur les crons

Discussions similaires

  1. [Bénévole] Recherche Web Designer pour jeu par navigateur
    Par DragonSlayer875 dans le forum Autres
    Réponses: 0
    Dernier message: 14/11/2014, 20h11
  2. Réponses: 0
    Dernier message: 11/06/2014, 17h26
  3. [Associé] Recherche graphiste [Jeu par navigateur]
    Par Ozzy-IDS dans le forum Autres
    Réponses: 0
    Dernier message: 22/05/2013, 13h37
  4. Réponses: 5
    Dernier message: 24/04/2013, 02h26
  5. Réponses: 0
    Dernier message: 08/12/2007, 17h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo