JeuWeb - Crée ton jeu par navigateur

Version complète : Jeu sur navigateur = jeu php ?
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2 3 4 5 6
Plus qu'une question de volonté, c'est une question de possibilité.

Tu seras le spécialiste ASP.net du forum du coup Wink
A la limite, peu importe, si tu as envis de développer avec ASP, rien ne t'en empeche... Wink

Tu me demandes mon avis, je te le donne Smile
Les vieilles version d'ASP étaient effectivement peu pratiques à l'utilisation (J'en ai fait, j'en ai bavé).
Des pages interprétées avec un langage assez lourdingue

Un exemple de code ASP existant dans l'une des applications internes au boulot :
Code :
<%IF GetParam("cmdAction")="" THEN%>
<script language="JavaScript" src="/learner/_js/toolbarImages.js"></script>
<%END IF%>
<! --
The Login ID for the user is:
<% Response.Write Request.ServerVariables(GetAppVar("vch_siteminder_loginname")) %>

Mantenant, l'aspx/.net, c'est totalement différent.

On entre dans l'ère des page compilées, mise en cache mémoire, etc

L'aspx maintenant, c'est ça
Code :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Vuepoint.Web.Vls.Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>

avec derrière des pages comme ça
Code :
using System;
using System.Reflection;


namespace Vuepoint.Web.Vls
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Redirect(
                string.Format("{0}?{1}",Common.PageUrl.GetPageUrl(typeof(Portal.Login)),Request.QueryString));
        }

        internal static string Version
        {
            get {
                Version version = Assembly.GetExecutingAssembly().GetName().Version;
                const string VERSION_FORMAT = "VLS v{0}.{1}.{2}.{3}";
                string versionstr = string.Format(
                    VERSION_FORMAT,
                    version.Major,
                    version.Minor,
                    version.Build,
                    version.Revision);

                return versionstr;
            }
        }
    }
}

Y'a vraiment un monde de différence.

Par exemple, au boulot, les sites sont en full aspx/.net et intègrent du flash et diverses autres technologies. Les serveurs web au boulot tournent sur des W2K8 (4 serveur en load balancing à 16 GB de mémoire chacun). La dessus, on héberge des dizaines de site qui reçoivent des millions de visites par mois (15 millions en mai dernier).

On est vraiment à des kilomètres du vieux asp d'il y a 10 ans.

[edit]
Au passage, ASP est loin d'être un langage aussi statique que ce que cette discussion laisse à penser.

Pour preuve, cette autre page
Code :
<% @ Language = VBScript %>
<!--#include file="include/functions.asp"-->
<html>
<head>
    <title>Server SLA</title>
    <link rel="stylesheet" type="text/css" href="css/sla.css">
    <link rel="stylesheet" type="text/css" href="css/jquery.css">
    <script type="text/javascript" src="script/sla.js"></script>
    <script type="text/javascript" src="script/functions.js"></script>
</head>
<body>
    <%

    
    function ServerList(sApp)    
        %>
        <!--[if IE]><script language="javascript" type="text/javascript" src="script/excanvas.pack.js"></script><![endif]-->
        <script type="text/javascript" src="script/jquery.pack.js"></script>
      <script type="text/javascript" src="script/jquery.bgiframe.pack.js"></script>
      <script type="text/javascript" src="script/jquery.ajaxQueue.js"></script>
      <script type="text/javascript" src="script/jquery.dimensions.pack.js"></script>
      <script type="text/javascript" src="script/jquery.autocomplete.pack.js"></script>
        <script type="text/javascript" src="script/jquery.flot.pack.js"></script>
        <%

        if sApp<> "" Then        
            szSQL = "SELECT ApplicationId FROM " & CST_INTELSYSTEMDB & "SLA_Applications WHERE ApplicationName='" & sApp & "'"
            set oRs=getMoMRs(szSQL)
            i=oRs(0)
            oRs.close
            
            szSQL = "exec " & CST_INTELSYSTEMDB & "sp_get_Servers_Collection @ApplicationId='" & i & "'"
            set oRs=getMoMRs(szSQL)
            szSearch=""
            while not oRs.eof
                szSearch = szSearch & ",'" & oRs("BaseManagedEntityId") & "'"
                oRs.MoveNext
            Wend
            oRs.close
    
            szSearch="C.BaseManagedEntityId in (" & mid(szSearch,2) & ") "
        Else
            szSearch="1=1"
        End If

        response.write "<div class=""block"">"
        response.write "<table>"
        ColTitle "#", 16
        ColTitle "Server",150
        colTitle "Status",50
        colTitle "CPU",50
        colTitle "MEM",50
        response.write "<td class=""coltitle"" colspan=""10"">Used Disk Space</td>"
        szSQL="SELECT "
        szSQL=szSQL & "C.BaseManagedEntityId, "
        szSQL=szSQL & "C.NetbiosComputerName,  "
        szSQL=szSQL & "S.Healthstate,   "
'        szSQL=szSQL & "ISNULL(SLA.CPUInternalId,-1) as CPUID,   "
'        szSQL=szSQL & "ISNULL(SLA.MEMInternalId,-1) as MEMID,   "
        szSQL=szSQL & "    ( "
        szSQL=szSQL & "        SELECT SO.HealthState    "
        szSQL=szSQL & "        FROM state AS SO, BaseManagedEntity as BME  "
        szSQL=szSQL & "        WHERE SO.monitorid  "
        szSQL=szSQL & "            IN ( "
        szSQL=szSQL & "                SELECT MonitorId  "
        szSQL=szSQL & "                FROM Monitor  "
        szSQL=szSQL & "                WHERE MonitorName = 'Microsoft.SystemCenter.HealthService.ComputerDown' "
        szSQL=szSQL & "            ) AND  "
        szSQL=szSQL & "            SO.Healthstate = '3' AND  "
        szSQL=szSQL & "            SO.BaseManagedEntityId=BME.BaseManagedEntityId AND "
        szSQL=szSQL & "            BME.displayname=C.principalname "
        szSQL=szSQL & "    ) AS Online  "
        szSQL=szSQL & "FROM State as S WITH (NOLOCK)  "
        szSQL=szSQL & "    INNER JOIN MT_Computer as C WITH (NOLOCK)  "
        szSQL=szSQL & "        ON S.BaseManagedEntityId=c.BaseManagedEntityId  "
        szSQL=szSQL & "    INNER JOIN monitor as M WITH (NOLOCK)  "
        szSQL=szSQL & "        on M.MonitorId=S.MonitorId AND M.ParentMonitorId is null     "
        szSQL=szSQL & "    INNER JOIN " & CST_INTELSYSTEMDB & "SLA_Servers as SLA WITH (NOLOCK)  "
        szSQL=szSQL & "        on SLA.BaseManagedEntityId=C.BaseManagedEntityId "
        szSQL=szSQL & "WHERE "
        szSQL=szSQL & szSearch
        szSQL=szSQL & "ORDER BY  "
        szSQL=szSQL & "    Online DESC,  "
        szSQL=szSQL & "    healthstate DESC,  "
        szSQL=szSQL & "    netbioscomputername "
        set oRs=getMoMRs(szSQL)
        
        i=1
'        i=((iPage-1)*iPageSize)+1
        while not oRs.Eof
            response.write "<tr id=""path_" & oRs("netbioscomputername") & """><td valign=""top"">"
            response.write i
            response.write "</td><td valign=""top"">"
            response.write uCase(oRs("netbioscomputername"))
            response.write "</td><td align=""center"" valign=""top"">"
            if oRs("Online")=3 Then
                szImg="offline.gif"
            ElseIf oRs("healthstate")=3 Then
                szImg="cross.gif"
            ElseIf oRs("healthstate")=2 Then
                szImg="triangle.gif"
            Else
                szImg="circle.gif"
            End If
            response.Write "<img onClick=""getServerStatusMsg(this, '" & oRs("baseManagedEntityId") & "')"" src=""images/" & szImg & """ />"
            response.write "</td>"
            response.write "<td align=""left"" colspan=""3"" valign=""top"">[<a href=""javascript:;"" onclick=""getServerDetails(this.parentNode,'" & oRs("BaseManagedEntityId") & "')"">Click for details</a>]</td>"

            response.write "</tr>"
            i=i+1
            oRs.MoveNext
        Wend

        ColTitle "#", 16
        ColTitle "Server",150
        colTitle "Status",50
        colTitle "CPU",50
        colTitle "MEM",50
        response.write "<td class=""coltitle"" colspan=""10"">Used Disk Space</td>"

        response.write "</table>"
        response.write "</div>"
    End Function

    ServerList  request.querystring("app")
    %>
</body>
</html>

C'est dynamique, il y a des boucles, des fonctions des accès à la base de donnée, des includes, des variables, des retours vers le client.
Et tout ça, c'est de l'asp "old school", qui, encore une fois, fonctionne en mode interprété comme PHP.
Citation :On est vraiment à des kilomètres du vieux asp d'il y a 10 ans.
(je ne crois pas qu'Argorate parlait du vieux asp, même si je ne sais plus trop de quoi il parlait).
Ca, c'est evident que si j'avais le choix uniquement entre asp pre.Net et PHP, je prendrai sans aucun doute PHP.
Surtout que l'asp, c'est au final du VB6 derriere, ca va, j'ai trop donné.
Alors que le C#.. j'y retrouve tout ce que j'ai aimé en C(++), plus quelques ajouts.

[EDIT sur ton edit]
Non, l'asp n'a rien de statique, mais bon, je crois qu'Argorate met dans ce terme une définition qui lui est propre..
L'asp (old school) n'est même pas typé statique, vu que le type sous jacent par défaut était Variant. (et je crois bien qu'il était possible d'écrire.
Dim a
a=5
a="toto"
)
Jeu sur navigateur = jeu php

non
masse de casual game sont de simple jeu flash sans nécessiter réellement "d'infrastructure" serveur derrière.
il y a (eu) aussi tout les jeu-puzzle style un peu dans le mode livre dont vous êtes le héros textuel ou graphiques qui sont simplement des pages html.

après y a java, perl, python, ASP (, ruby pour stephi),... les solutions sont nombreuses.
PHP est une solution répandue, bon marché, souple (interface avec d'autre langage, solution), qui offre au final une très bonne entrée.
parce que bcp de créateur de jeu amateur se lance dans l'aventure parce que c'est leur dada, ils visent pas la solution la plus propre ou la plus performante, mais celle qui soit la plus "accessible" pour répondre à leur envie.
(16-06-2009, 02:59 PM)wild-D a écrit : [ -> ]Jeu sur navigateur = jeu php
non
masse de casual game sont de simple jeu flash sans nécessiter réellement "d'infrastructure" serveur derrière.
Oui, c'est vrai, mais il me semblait que ce n'était pas ce genre de jeu qu'on développait sur ce site. J'ai donc fait un abus de langage, involontaire.
(j'ai rien contre les jeux en flash, note bien Smile Mais bon, pareil : le jour ou j'en fais un, ca sera en silverlight Smile (bien que la, c'est autrement plus impactant comme choix sur l'utilisateur que le choix php/.net )
Voilà pourquoi je parlais des jeux flash, parce que je savais que quelqu'un viendrais en parler, et donc j'avais pris les devant pour dire que je ne considère pas ça comme des jeux mais plutôt des sortes de mini jeux.

Rien ne vaux un bon gros mmo php :p (pour les jeux amateurs)

Ceci dit, cela ne signifie en aucun cas que je n’aime pas les jeux flash, pour preuve j’en ai acheté un (très fun) récemment : www.playauditorium.com Wink
(16-06-2009, 02:59 PM)wild-D a écrit : [ -> ]après y a java, perl, python, ASP (, ruby pour stephi),... les solutions sont nombreuses.
PHP est une solution répandue, bon marché, souple (interface avec d'autre langage, solution), qui offre au final une très bonne entrée.
parce que bcp de créateur de jeu amateur se lance dans l'aventure parce que c'est leur dada, ils visent pas la solution la plus propre ou la plus performante, mais celle qui soit la plus "accessible" pour répondre à leur envie.

Sephi ! Pas Stephi ! J'y ai droit partout où je vais !

PHP est surtout employé par méconnaissance : on ne présente pas les autres langages aux débutants. Si j'avais connu Ruby ou Python avant, bien sûr, je m'y serais mis.

Quand je vois Ruby, PHP semble ridicule : la syntaxe est lourde est très verbeuse ($this->jambon, là où en ruby on aurait jambon), les conventions de nommage inexistantes, etc. Ruby propose plein de petits trucs sympas, comme les getters et setter dynamiques, etc.

Je rédige un tutoriel Ruby on Rails sur le Site du Zéro, j'ai presque fini la première partie (une initiation à RUby). Si ça peut aider à ouvrir quelques yeux…


Sephi-Chan
(16-06-2009, 03:22 PM)Sephi-Chan a écrit : [ -> ]Sephi ! Pas Stephi ! J'y ai droit partout où je vais !

oups, désolé.


je dis pas que php à pas de défaut, bien au contraire, perso les noms de fonction fantaisiste de PHP ça me saoul; le manque de typage me manque,...

En même temps les hébergement gratuit avec ruby ça court les rues, ce qui fait surement bcp pour ça "démocratisation".^^
La gratuité et la disponibilité "clé en main", ça fait partie des contraintes bêtes et méchantes, mais pour lesquelles php a une longueur d'avance.
L'accessibilité je le disais au sens large; donc c'est pas juste facile à apprendre/comprendre, mais ça concernait aussi la visibilité et la disponibilité.
Citation :Si ça peut aider à ouvrir quelques yeux…
oxman, sors de ce corps ^^

Si je suis insensible à Ruby, ça veut dire que je suis un bulot ?
Pages : 1 2 3 4 5 6