Aller au contenu

Sujets conseillés

Posté

Bonjour,

Je suis en train de développer un projet dont voici à peut près la structure :

20111203_diagram.png

Il s'agit d'un jeu vidéo dans le navigateur qui interagit avec un site web. J'ai déjà développé un projet similaire mais avec des technologies différentes (client Windows en C, web-service REST en PHP, forum phpBB, web-chat et player-profile en PHP).

Cette fois-ci je voudrais vraiment simplifier les choses et harmoniser au maximum les outils et les langages utilisés. Le client est fait avec Unity et le jeu est codé en C#. Je souhaiterais utiliser le même langage coté serveur. Jusqu'à maintenant je n'avais que des sites web sur des serveurs Apache/MySQL/Php.

Je viens de prendre un hébergement IIs/ASP.net/SQL-server et j'ai fait quelques tests avec des web-services ASP.net en C#. Tout fonctionne comme je le souhaitais, et le fait d'utiliser la même technologie coté client et serveur simplifie vraiment les choses.

Maintenant je me demande ce que ça peut donner pour le forum, le webchat et les pages web spécifiques. Le serveur IIs de Microsoft propose aussi le Php. Au début je pensais mettre à nouveau un forum phpBB et faire les autres développements web en PHP.

Maintenant je me demande si je ne vais pas tout faire avec de la techno Microsoft. A priori il existe des forums, des webchats et des CMS open-source en ASP.net et C#.

Est ce que des webmasters de ce forum savent ce que ça vaut ? des conseils à me donner ?

Posté

Bien qu'il soit possible d'exécuter du php avec IIS, je n'ai eu que des soucis, ok, ça date un peu. Je suis d'accord avec ta position de tout faire dans la même techno.

Concernant les CMS .net, j'ai entendu dire le plus grand bien du FW dotnetnuke, qui dispose des modules auxquels tu fais allusion (hormis le chat, mais je gage que tu pourras en trouver un facilement, d'autre part ça se code relativement vite).


/>http://www.dotnetnuke.fr/Commentfaire/Utilisationdesmodules.aspx

Bonne chance

Posté

Et bien voila encore un exemple de réponse trouvée surtout par le fait de formaliser la question (et après une nuit de sommeil ;))

En fait cela fait des lustre que j'ai ce schéma en tête mais en relisant la question ce matin, je me suis dit : mais c'est beaucoup trop compliqué pour un projet que je veux mener à moi tout seul.

Dans mon projet précédent c'était la même base de données "user account" qui servait pour le jeu, le forum, le chat, le profil ...etc. En loccurrence j'avais tout greffé sur la base de donnée de phpBB. Mais cela crée une dépendance qui est lourde à gérer et cela fait de multiple source dinteraction avec les données du joueur.

Finalement aujourd'hui, avec les idées plus claires, je m'oriente plutôt vers ça :

20111204_diagram.png

Merci au Hub pour m'avoir permis d'éclaircir mes idées :P

EDIT pour SStephane (on a posté en même temps) : merci de ta réponse qui confirme un peut plus ce dont je me doutais.

Posté

Je pense que tu peux t'en sortir avec le framework que je t'ai cité, en plus j'ai vu qu'il y avait un chat, certes pas taggué stable, mais il existe.

Même si SOAP est super, je trouve que lorsque l'on sort du giron du type primitif pour faire communiquer php/c#, on est souvent confronté à des problèmes, peut être moins maintenant, j'ai pas retenté le coup :)

Par curiosité, tu fais un jeu 3D avec unity ? tu gères le remoting en http/soap ? ce qui m'amène à ma vraie question, ça pose pas de problème de perf/latence quand tu as de nombreux clients ?

Posté (modifié)

Merci pour tes réponses SStephane, je suis en train de découvrir l'écosystème Microsoft/IIs et en temps que vieu développeur C++ nouvellement C# cela me plait de plus en plus.

J'ai jeté un coup d’œil à DotNetNuke et cela m'a emballé. En plus pour ce genre de composant je ne me vois pas utiliser autre chose que de l'open-source. Cela fait plaisir de voir que même ce qui tourne autour de Microsoft à finis par prendre le virage.

Par curiosité, tu fais un jeu 3D avec unity ?

Oui, c'est ça.

tu gères le remoting en http/soap ?

Pour l'instant je n'ai fait que des tests basiques d'appel depuis Unity vers un site web ASP.net. J'ai testé en SOAP et en JSON. Du coté du serveur c'est quasi transparent, le Framework DotNet prend tout en charge.

Du coté de Unity ce n'est pas pareil. Si tu veux faire un jeu dans le navigateur il y a des restrictions de sécurité qui empêchent d'utiliser des librairies pré-compilées, du coup on a pas accès à toute la couche communication du Framework DotNet.

Pour un projet Unity Standalone, il n'y a pas de problème, on inclut l'assembly qui va bien et cela devient aussi simple du coté client que serveur.

ce qui m'amène à ma vraie question, ça pose pas de problème de perf/latence quand tu as de nombreux clients ?

Je n'en suis pas encore au stade de faire des vrais tests de charge, mais ce qui est sûr c'est qu'au niveau d'un jeu vidéo on ne gère pas une liaison de type "webservice" comme une liaison UDP entre un client et un serveur qui interagissent avec un ping de moins de 100 ms.

Mes webservices vont gérer l'authentification (login/pass) et la persistance (inventaire, score, ...etc.). Par exemple, sur mon projet précédent il n'est pas rare que des joueurs aux 4 coins du monde prennent plus de 5 secondes pour un faire un appel RPC, mais le jeu le gère parfaitement. Les seuls appels bloquant ont lieu lorsqu'on change de niveau ou lorsque le joueur "meurt", dans les 2 cas ce n'est pas trop gênant.

Modifié par Pat AfterMoon

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...