Beste Lösung?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Beste Lösung?

    Hi Leute,


    bin gerade dabei ein neues Projekt zu starten, ein Browsergame, und da gibts natürlich sehr viele Datenbankzugriffe, und im Verwalten großer Datenmengen in Mysql habe ich echt wenig Erfahrung!

    Am besten ist man stellt es sich vor wie beim Fußball vor, da gibts ein Transfersystem, Spiele, Training etc.

    Und nun dachte ich mir ich lege eine Mysql-Tabelle User an, wo ID, Name, Pw, etc gespeichert sind und dann eine Tabelle Spieler ID, BESITZER(ID des Useres), Name, Werte, etc. Natrülich ist es hier schon sinnvoll die Tabelle nach Besitzer zu ordnen und nicht nach ID, das erleichtert das Auslesen schon um einiges. Trotzdem wenn z.B. mit 1000 User je 20 Spieler sind das schon mal 20000 Spieler und bei jeder Seite die der User, aufruft ein Zugriff auf die Datenbank, das ist nicht optimal denke ich, oder funzt das noch halbwegs schnell?

    Naja, die besser Lösung wäre man lädt beim Login des Users die Daten die solange vorhanden sind wie er online ist bzw. die Session läuft, ebenso wenn er Daten ändert, sollen diese ja natürlich auch neu geladen werden! Nur ich habe echt null Plan, wie ich das lösen soll.

    Was meint ihr, wie löse ich das am besten?

    Ein anderes Problem ist noch, wie ich es am besten löse das z.B. am Mittwoch um 12:00 die Werte des Spielers um den Trainingserfolg erhöht werden, ohne das des User Online ist?

    Bin für alle Lösungswege offen, freue mich schon auf eure Ideen.

    mfg

    Fabsi

    PS: Es wird kein Fussballmanager oder so, dient nur zur Verwirrung!

  • #2
    Re: Beste Lösung?

    Original geschrieben von Fabsi
    [B]bin gerade dabei ein neues Projekt zu starten, ein Browsergame
    Ja,

    , und da gibts natürlich sehr viele Datenbankzugriffe, und im Verwalten großer Datenmengen in Mysql habe ich echt wenig Erfahrung!
    vielleicht erstmal ein bisschen belesen? Wenn du von vorn herein weißt, dass dir das Know-How fehlt, ist das nicht besonders aussichtsreich....

    Und nun dachte ich mir ich lege eine Mysql-Tabelle User an, wo ID, Name, Pw, etc gespeichert sind
    Ja, das ist sicher sinnvoll, bei nem Browsergame.

    und dann eine Tabelle Spieler ID, BESITZER(ID des Useres), Name, Werte, etc. Natrülich ist es hier schon sinnvoll die Tabelle nach Besitzer zu ordnen und nicht nach ID, das erleichtert das Auslesen schon um einiges.
    Tabellenaufbau ist okay. Eine sortierung IN der Datenbank dürfte wohl ziemlich überflüssig sein, weil immer wieder neue Datensätze hinzukommen und außerdem Mysql ohnehin die komplette Tabelle durchsuchen muss.

    Trotzdem wenn z.B. mit 1000 User je 20 Spieler sind das schon mal 20000 Spieler und bei jeder Seite die der User, aufruft ein Zugriff auf die Datenbank, das ist nicht optimal denke ich, oder funzt das noch halbwegs schnell?
    Wir reden von MySQL oder? 20.000 Einträge dürfte den Server gerade mal Kitzeln...

    Naja, die besser Lösung wäre man lädt beim Login des Users die Daten die solange vorhanden sind wie er online ist bzw. die Session läuft, ebenso wenn er Daten ändert, sollen diese ja natürlich auch neu geladen werden! Nur ich habe echt null Plan, wie ich das lösen soll.
    Wenn die daten Statisch sind, macht ein temporäres Speichern in der Session sicher Sinn. Sobald sie aber von mehreren Stellen beeinflusst werden können, würde ich mir das sparen. Also würd ich drauf verzichten.

    Was meint ihr, wie löse ich das am besten?
    Ich kann nicht glauben, dass du für diese Frage so viel Text gebraucht hast. Zeigt dass du Sachverhalte nicht gerade komprimiert auffassen und wiedergeben kannst, ein weiteres Argument gegen ein "solch komplexes" Browsergame.

    Ein anderes Problem ist noch, wie ich es am besten löse das z.B. am Mittwoch um 12:00 die Werte des Spielers um den Trainingserfolg erhöht werden, ohne das des User Online ist?
    Möchtest ein BG programmieren und hast noch nie was von Cronjobs gehört?
    ICH BIN ICH!!!

    Kommentar


    • #3
      Re: Re: Beste Lösung?

      Original geschrieben von IchBinIch
      Ja,

      vielleicht erstmal ein bisschen belesen? Wenn du von vorn herein weißt, dass dir das Know-How fehlt, ist das nicht besonders aussichtsreich....

      Ja, das ist sicher sinnvoll, bei nem Browsergame.

      Tabellenaufbau ist okay. Eine sortierung IN der Datenbank dürfte wohl ziemlich überflüssig sein, weil immer wieder neue Datensätze hinzukommen und außerdem Mysql ohnehin die komplette Tabelle durchsuchen muss.

      Wir reden von MySQL oder? 20.000 Einträge dürfte den Server gerade mal Kitzeln...

      Wenn die daten Statisch sind, macht ein temporäres Speichern in der Session sicher Sinn. Sobald sie aber von mehreren Stellen beeinflusst werden können, würde ich mir das sparen. Also würd ich drauf verzichten.

      Ich kann nicht glauben, dass du für diese Frage so viel Text gebraucht hast. Zeigt dass du Sachverhalte nicht gerade komprimiert auffassen und wiedergeben kannst, ein weiteres Argument gegen ein "solch komplexes" Browsergame.

      Möchtest ein BG programmieren und hast noch nie was von Cronjobs gehört?
      Ja, thx für deine offene Meinung, ja ich programmiere seit ein paar Jahren, aber halt nur in Richtung C etc.!

      Mit der Materie PHP beschäftige ich mich erst wenige Monate, mit Mysql habe ich erst kleinere Spielerein programmiert wie Gästebuch, Login etc..und ich möchte mich durch das Browsergame weiterentwickeln, da man da einiges an Php und Mysql benötigt und lernt!

      Hast irgendwo gute Tutorials zum Thema Cronjobs?

      mfg

      Kommentar


      • #4
        Zum Thema Cronjob liest man einmal den Artikel auf Wikipedia und gut ist...

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Re: Re: Re: Beste Lösung?

          Original geschrieben von Fabsi
          Ja, thx für deine offene Meinung, ja ich programmiere seit ein paar Jahren, aber halt nur in Richtung C etc.!
          Ja, genau. Das höre ich so unglaublich oft. Du programmierst C? Wie ist denn die Standarddateiendung für C-Code-Dateien? Und wie beende ich ein Programm ordnungsgemäß? Wenn du mir diese beiden Fragen beantworten kannst, überlege ich mir dir zu glauben. Andernfalls versuch jemanden anderes für dumm zu verkaufen. Deine SQL-Kentnisse sind nicht "minimal", sie sind schlicht nicht vorhanden. Ähnliches nehme ich in Bezug auf deine restlichen "Programmiererfahrungen" an. Denn welcher Erfahrene Programmierer einer jedeweden Sprache würde sich so ein Monsterprojekt wie ein Browsergame als "Einstieg" aussuchen?
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Re: Re: Re: Re: Beste Lösung?

            Original geschrieben von unset
            Ja, genau. Das höre ich so unglaublich oft. Du programmierst C? Wie ist denn die Standarddateiendung für C-Code-Dateien? Und wie beende ich ein Programm ordnungsgemäß? Wenn du mir diese beiden Fragen beantworten kannst, überlege ich mir dir zu glauben. Andernfalls versuch jemanden anderes für dumm zu verkaufen. Deine SQL-Kentnisse sind nicht "minimal", sie sind schlicht nicht vorhanden. Ähnliches nehme ich in Bezug auf deine restlichen "Programmiererfahrungen" an. Denn welcher Erfahrene Programmierer einer jedeweden Sprache würde sich so ein Monsterprojekt wie ein Browsergame als "Einstieg" aussuchen?
            Sorry, ja ich programmiere auf Ubuntu mit Ecplise, aber ich weiß nicht was das soll, das ich mich hier rechtfertigen muss, meinetwegen, ich lerne seit 2 Jahren C, vll. sagen dir ja Begriffe wie Listenverwaltung, Pointer(Zeiger) etc. was, bezweifle das damit jeder 0815 "C-Programmierer" was anfangen kann..... ja Dateiendung .c, Programm ordnungsgemäß beenden return 0, was hättest du für Antworten erwartet .cpp...

            mfg

            Kommentar


            • #7
              Du musst gar nichts, ich sage nur, was du tun kannst, um in meiner Gunst zu steigen. Und davon hättest du ja auch nichtmal besonders viel. Außer den schon gegebenen kostenlosen Tipp: Such dir ein kleines Projekt aus!

              P.S.: Ich glaub dir immer noch nicht.
              [FONT="Helvetica"]twitter.com/unset[/FONT]

              Shitstorm Podcast – Wöchentliches Auskotzen

              Kommentar


              • #8
                Mhmm, ich finde auf das Thema "Brwosergame" wird hier imho viel zu allergisch reagiert, auch wenn ich es teils nachempfinden kann. Wenn jemand den Willen hat, soetwas anzufangen, dann sollte man ihn nicht mit pauschalen Aussagen wie "Lass es bleiben - wird sowieso nichts" abschmettern. Den Fähigkeitsgrad des TOs kann und sollte hier niemand einschätzen und entsprechend muss er sich auch nicht dafür rechtfertigen.
                Allerdings kann ich es verstehen, wenn es einige Leid sind, den x Tausendsten Thread übers BG Programmieren zu beantworten, aber ich würde empfehlen, dann einfach gar nichts zu schreiben, dann sparen sich gewissen Leute die Schreibarbeit und gewisse andere Leute merken dann, dass ihr Problem nicht auf sonderlich viel Resonanz stößt.

                Meine Meinung ist, dass du den konzeptionellen Aufwand hinter so einem Projekt nicht unterschätzen solltest. Es gibt derart viele Designentscheidungen (im SW-Entwurf), die getroffen werden müssen, dass es halt einfach ein Teufelswerk wäre, sowas alleine und vor allem in absehbarer Zeit vernünftig hinzubekommen. Auf keinen Fall solltest du dir zum Ziel setzen, sofort ein Rundum-Sorglos-Programm zu schreiben. Ich würde dir raten, zuerst ein minimal laufendes BG zu schreiben (also wirklich ein Mini-Projekt). In der Regel merkt man schnell wo seine eigenen Grenzen liegen und welche Techniken sich besser eignen als andere.

                Auf jeden Fall solltest du dich mit den Grundregeln und -begriffen vertraut machen.

                Viel Glück ;-)

                btw.: Browsergame ist ein ziemlich weit gedehnter Begriff. Man kann auch BGs machen, die den Aufwand eines Gästebuchs nicht übersteigen...

                Kommentar


                • #9
                  Da lässt sich drüber streiten. Wer aber nicht weiß was ein Cron Job ist, wer nicht weiß, ob 20.000 Datensätze für eine Datenbank schon eine große Belastung ist und wer generell kaum Erfahrung in der Sprache hat, in der das Spiel verfasst werden soll hat, der soll - zum Teufel nochmal - nicht auf so eine bescheuerte Idee kommen.

                  Und ich schmetter diese Leute dann lieber direkt im Vorfeld ab, dass sie a) nicht anfangen, und ich ihnen die ca. eine Millionen Fragen die dann noch kommen werden nicht beantworten muss (bzw. ich nicht auf die Suche hinweisen muss, denn beantwortet wurde so gut wie jede Frage hier schon einmal) oder b) meinen Hinweis nicht annehmen, trotzdem anfangen aber ihre doofen Fragen nicht hier stellen, weil hier ja die bösen Leute rumhängen. Mir beides Recht.
                  [FONT="Helvetica"]twitter.com/unset[/FONT]

                  Shitstorm Podcast – Wöchentliches Auskotzen

                  Kommentar


                  • #10
                    OffTopic:

                    Original geschrieben von unset
                    [...] und ich ihnen die ca. eine Millionen Fragen die dann noch kommen werden nicht beantworten muss (bzw. ich nicht auf die Suche hinweisen muss, denn beantwortet wurde so gut wie jede Frage hier schon einmal) oder b) meinen Hinweis nicht annehmen, trotzdem anfangen aber ihre doofen Fragen nicht hier stellen, weil hier ja die bösen Leute rumhängen. [...]
                    Naja .. learning by doing, ein Freund von mir hat auch als erstes ein Browsergame programmiert und es war der Renner an unserer Schule. Er hats verkauft und zwar nicht für wenig (der Code sieht grausam aus, da waren die 300€ echt viel zu viel).

                    Ich denke, dass die Leute, die das machen wollen, es machen sollen, aber DIE wollen es machen und im Endeffekt schlägt es auf die PHP-Communities zurück, weil alle Grundlegenden Fragen hier dann erklärt werden müssen .. von JOINS fangen wir jetzt noch gar nicht an.

                    Daher würde ich unset zustimmen ... Warum nciht erst ein Gästebuch, Datenbankanbindung, _sicheres_ PHP Scripting und DANN nen BG... Ich scripte seit 4 Jahren und denke nicht, dass ich ein BG schreiben könnte...

                    Liebe Grüße,
                    SteKoe!

                    PHP Tutorials
                    Peter Kropff | Quakenet | Schattenbaum.net

                    Kommentar


                    • #11
                      Original geschrieben von stekoe2000
                      OffTopic:
                      Ich scripte seit 4 Jahren und denke nicht, dass ich ein BG schreiben könnte...

                      OffTopic:
                      Das ist ja auch noch so ein Punkt. Ich spreche hier noch nicht einmal den Leuten die Fähigkeit ab, so etwas überhaupt programmieren zu können. Die Sache ist nur einfach die, dass da eine ganze Menge mehr dazu gehört. Wischen wir uns mal den Traumsand aus den Augen: Ein "erfolgreiches" Browserspiel in dem Sinne, dass eine beträchtliche Anzahl von Spielern ein mehr oder weniger komplexes Spiel spielen, ist eben nicht in ein paar Wochen gemacht - und schon gar nicht alleine.

                      Den Organisatorischen Rattenschwanz das "Wie und was", das Know-How, das Wissen wie man ein Konzept erstellt (da hört man ja auch die bescheurtesten Sachen: "Mal dir alles auf Papier auf", "Mach ein Screendesign und beschreibe jeden Punkt") all das fehlt ganz einfach! Und das alles aufeinmal lernen zu wollen ist eben nicht möglich!
                      [FONT="Helvetica"]twitter.com/unset[/FONT]

                      Shitstorm Podcast – Wöchentliches Auskotzen

                      Kommentar


                      • #12
                        Danke für die Antworten, auch wenn es zwar Off Topic ist, aber das BG das ich erstellen will, muss bzw. sollte auch nicht sofort ein wahnsiniges großes BG sein wo hunderte Leute zocken, in erster Linie soll es mir dienen meine php und Mysql "Kenntnisse" zu erweitern. Wenns was wird stell ichs online und die Leute sollen spielen und wenn nicht, naja immerhin habe ich hoffentlich einiges gelernt.

                        Ich denke wir schließen diesen Thread!

                        Kommentar


                        • #13
                          Wenn du was lernen willst, nimm dir andere Projekte vor (wie oft ich das schon gesagt hab in 2008 ... will nicht mal jemand mitzählen? ) - BG haben einen relativ begrenzten Bereich an Kenntnissen, die sie beanspruchen. IMHO sind die meisten BGs auch von Laien geschrieben worden, die für 10.000 Spieler schon eine zweite physische Kiste rankarren. Entsprechend kann man sich denken, wie der Code aussieht.

                          Befass dich lieber mit den anderen, wunderbaren Bereichen von PHP, die du praktisch viel besser einsetzen kannst. Lies dich in Sicherheitsaspekte ein. Optimiere deine SQL-Performance. Versuche dein PHP sauber zu bekommen. Design-Pattern einstudieren (das ist generell mal eine gute Idee) ... und irgendwann mal, wenn du PHP im Schlaf kannst und beim Pizzadienst in SQL bestellst, dann denk nochmal drüber nach ein BG zu machen - denn wo da die Probleme liegen, habe ich dir ja schon geschrieben.
                          [FONT="Helvetica"]twitter.com/unset[/FONT]

                          Shitstorm Podcast – Wöchentliches Auskotzen

                          Kommentar

                          Lädt...
                          X