Hallo alle zusammen,
ich habe sein längerem den Flusen im Kopf ein Browsergame auf die Beine stellen zu wollen. Einige Ideen zum Genre und zum Typ habe ich auch schon, möchte ich hier, genauso wie "ich suche ein Team für Projekt X", aber nicht weiter vertiefen.
Sicherlich hat die Erstellung eines detailierten Designdokuments höchste Priorität. Dennoch, bevor ich überhaupt irgendein Stift auf ein Blatt Papier setze möchte ich mir die verschiedensten "Bereiche" die ein Browsergame betreffen "vor die Augen" führen um das Thema an sich in seiner Komplexität zu begreifen.
Nun stelle ich mir (und dem guten, alten Onkel Google) diverse Fragen über dies, das und jenes (bzgl "Browsergames designen & programmieren"). Dennoch konnte ich mir viele Fragen nicht beantworten.
Wo findet man Vorlagen für Designdokumente auf Deutsch?
Wie realisiert man ein Browsergame auf der Seite des Servers (Server OS, Datenbankmanagementsysteme, usw.)?
Laufen in C bzw. C++ geschriebene Backends auf "allen" Betriebssystemen, genauer Windows, Linux und Mac OS X?
Welche Software lässt sich für die Entwicklung eines BGs empfehlen? (Speziell solche die auch Arbeiten mehrerer Leute an einem Dokument per Netzwerk erlauben [s. SubEthaEdit für Mac OS X], und solche für das eigentliche Projektmanagement)
Dies sind nur einige Fragen die ich mir noch nicht beantworten konnte. Ich freue mich daher über jeden konstruktiven Beitrag. Danke.
Mit freundlichen Grüßen
RoKa
P.S.: Sollte ich mich in der Forenkategorie bzgl meines Topics geirrt haben, bitte ich um Korrektur. Danke.
Browsergames, Server, Backends & Co.
gepostet vor 18 Jahre, 5 Monate von RoKa
gepostet vor 18 Jahre, 5 Monate von blum
soetwas wie einen standard gibt es nicht.
das kommt ganz darauf an, welche anforderungen du an das spiel stellst, welches team man um sich hat, welche sprachen beherrscht werden, welche persönlichen vorlieben man hat etc.
die gängigste konfiguration ist sicher php+mysql auf linux. was aber nicht heisst, dass es für deine ansprüche das beste ist.
bevor du ans technische gehst, würd ich mir selbst erst folgende fragen beantworten:
- wieviel spieler erwartest du
- echtzeit oder tickbasiert
- ajax oder das klassische klick->neue seite-prinzip
- echtzeitkommunikation (zb chat) ja/nein?
erst danach würd ich mir die frage stellen, mit welcher sprache/konfiguration/betriebssystem das am besten zu realisieren ist.
ist das knowhow bzw das team schon vorhanden, oder wird das team erst nach bestimmten kriterien zusammengestellt?
zur frage nach teamarbeit im netzwerk.
kommt ganz darauf an, wieviele leute am spiel arbeiten, was die leute können etc.
bei einem 2mann team würde wohl die aufteilung backend-frontend am meisten sinn machen. man definiert die schnittstelle und beide können relativ unabhängig voneinander arbeiten. es ist nur eine frage der planung und organisation.
wie gesagt, das sind alles offene fragen und du musst für dich selbst die antworten finden.
so ins blaue hinein kann man da als aussenstehender wenige tipps geben.
das kommt ganz darauf an, welche anforderungen du an das spiel stellst, welches team man um sich hat, welche sprachen beherrscht werden, welche persönlichen vorlieben man hat etc.
die gängigste konfiguration ist sicher php+mysql auf linux. was aber nicht heisst, dass es für deine ansprüche das beste ist.
bevor du ans technische gehst, würd ich mir selbst erst folgende fragen beantworten:
- wieviel spieler erwartest du
- echtzeit oder tickbasiert
- ajax oder das klassische klick->neue seite-prinzip
- echtzeitkommunikation (zb chat) ja/nein?
erst danach würd ich mir die frage stellen, mit welcher sprache/konfiguration/betriebssystem das am besten zu realisieren ist.
ist das knowhow bzw das team schon vorhanden, oder wird das team erst nach bestimmten kriterien zusammengestellt?
zur frage nach teamarbeit im netzwerk.
kommt ganz darauf an, wieviele leute am spiel arbeiten, was die leute können etc.
bei einem 2mann team würde wohl die aufteilung backend-frontend am meisten sinn machen. man definiert die schnittstelle und beide können relativ unabhängig voneinander arbeiten. es ist nur eine frage der planung und organisation.
wie gesagt, das sind alles offene fragen und du musst für dich selbst die antworten finden.
so ins blaue hinein kann man da als aussenstehender wenige tipps geben.
gepostet vor 18 Jahre, 5 Monate von Sarge
Original von RoKa
Wo findet man Vorlagen für Designdokumente auf Deutsch?
Wie realisiert man ein Browsergame auf der Seite des Servers (Server OS, Datenbankmanagementsysteme, usw.)?
Laufen in C bzw. C++ geschriebene Backends auf "allen" Betriebssystemen, genauer Windows, Linux und Mac OS X?
Welche Software lässt sich für die Entwicklung eines BGs empfehlen? (Speziell solche die auch Arbeiten mehrerer Leute an einem Dokument per Netzwerk erlauben [s. SubEthaEdit für Mac OS X], und solche für das eigentliche Projektmanagement)
1) Denke ich kaum das du Vorlagen für "Designdokumente" eines BG's finden wirst, soetwas ist dir überlassen wie das aussehen soll.
Du kannst dir aber einmal die Definitionen von Lasten- / Pflichtenheft anschauen, dazu gibt es mehr oder weniger Standards wie diese Aufgebaut sind. Allerdings ist das dann auf einer wesentlich konkreteren Ebene als die meisten ein Designdoc ansehen würden.
2) Reine Geschmackssache, meist eine LAM(P) konfiguration (Linux, Apache,Mysql,PHP).. allerdings ist genauso Windows, Tomcat+Java,PostgreSql oder sonstwas denkbar.. das ist Dir überlassen
3) Das kommt natürlich darauf an wie du Sie geschrieben hast. Der Frage nach zu urteilen solltest du Dir ersteinmal C/C++ zur Gemüte führen wenn du das vorhast zu verwenden.
4) Wiederrum reine Geschmackssache. Allerdings muss ich stark empfehlen eine Versionshaltungssoftware wie CVS oder besser SVN zu nutzen, insbesondere wenn man im Team arbeitet. Schadet beim alleine Arbeiten aber auch nicht.
Den Fragen nach zu urteilen solltest du Dich ersteinmal mit dem Programmieren selbst beschäftigen bevor du gleich auf so ein komplexes Ziel wie das eines BG's hinauswillst.
gepostet vor 18 Jahre, 5 Monate von RoKa
OK. Dann versuche ich mal kurz und bündig das "Problem" genauer zu spezifizieren:
Das Spiel.....
...sollte in Echtzeit laufen.
...wird hoffentlich gut ankommen und viele Spieler anziehen.
...soll keine Cronjobs/Ticks benutzen.
...soll ein selbstständig Arbeitendes Backend besitzen das nach dem Polling-Prinzip arbeitet und auf den drei Betriebssystemen Linux, Mac OS X und Windows lauffähig ist.
...das Frontend wird in PHP geschrieben sein.
...als "Wissen" ist PHP, MySQL, C++ (unabhängig vond er Anzahl der Leute) vorhanden.
...desweiteren sind aus 4 Semestern Informatik am Gymnasium Projektmanagement und Software-Life-Cycle hängen gegblieben.
...wird keine Ingame-Echtzeitkommunikation zur Verfügung stellen.
...(@blum) wird nach dem "Klick-Neue-Seite-Prinzip arbeiten.
...@blum: es ist erstmal egal ob schon ein Team vorhanden ist oder nicht.
Ich hoffe jetzt bin ich "leichter zu verstehen".
MfG RoKa
Das Spiel.....
...sollte in Echtzeit laufen.
...wird hoffentlich gut ankommen und viele Spieler anziehen.
...soll keine Cronjobs/Ticks benutzen.
...soll ein selbstständig Arbeitendes Backend besitzen das nach dem Polling-Prinzip arbeitet und auf den drei Betriebssystemen Linux, Mac OS X und Windows lauffähig ist.
...das Frontend wird in PHP geschrieben sein.
...als "Wissen" ist PHP, MySQL, C++ (unabhängig vond er Anzahl der Leute) vorhanden.
...desweiteren sind aus 4 Semestern Informatik am Gymnasium Projektmanagement und Software-Life-Cycle hängen gegblieben.
...wird keine Ingame-Echtzeitkommunikation zur Verfügung stellen.
...(@blum) wird nach dem "Klick-Neue-Seite-Prinzip arbeiten.
...@blum: es ist erstmal egal ob schon ein Team vorhanden ist oder nicht.
Ich hoffe jetzt bin ich "leichter zu verstehen".
MfG RoKa
gepostet vor 18 Jahre, 5 Monate von blum
Original von RoKa
...soll keine Cronjobs/Ticks benutzen.
ganz auf cronjobs wirst du nicht verzichten können. sei es, nur hin und wieder die datenbank aufzuräumen, inaktive benutzer zu löschen, fertige bauafträge abzuschliessen etc.
Original von RoKa
...soll ein selbstständig Arbeitendes Backend besitzen das nach dem Polling-Prinzip arbeitet und auf den drei Betriebssystemen Linux, Mac OS X und Windows lauffähig ist.
betriebssysteme auf dem server oder client?
client sollte egal sein, wenn man sich an den standard hält. zumindest sollte es mit ie, ff, opera laufen.
oder wenn du das OS auf dem server meinst:
das wird schwer bis unmöglich sein, ein backend zu programmieren, das überall läuft. es sei denn du verwendest java.
wenn ich dein anliegen richtig verstanden habe
gepostet vor 18 Jahre, 5 Monate von RoKa
Ich denke schon, dass man auf Cronjobs/Ticks verzichten kann, denn wenn das in C oder C++ geschriebene Backend auf dem Server als Deamon läuft, kann dieser das "Reinigen" der Datenbank übernehmen, vorrausgesetzt, dass eine Schnittstelle zwischen Backend/Deamon und DB geschaffen werden kann. Mit C/C++ und MySQL geht es auf alle Fälle. Das Backend kann ja so programmiert sein alle X Minuten "das" und "jenes" zu machen.
---
Das mit dem Betriebssystem bezog sich auf den Server, nicht auf den Client. Bei einem BG ist es eigentlich unwichtig was für ein OS der Benutzer nutzt.
Ich denke, dass höchstwahrscheinlich ein dedizierter Root-Server mit Linux (Debian, Fedora oder Suse) zur Verwendung kommen wird.
Auf alle Fälle ist es möglich ein und denselben C/C++ Quelltext mit den entsprechenden Compilern für mehrere Betriebssysteme zu kompilieren. Am Wichtigsten hierbei: Das Backend/ der Deamon sollte auf alle Fälle unter Linux und Mac OS X laufen.
@blum: Vllt. bezog sich deine Aussage über die "Cross-Platform-Fähigkeit" von C-Programmen auf solche mit einer GUI. Das Backend/ der Deamon braucht aber keine GUI, da letztenendes per "Terminal" (SSH) mit diesem kommuniziert werden soll (Schliesslich will ich nicht jedesmal ins Rechenzentrum fahren um irgendwas einzustellen oder hochzuladen ).
MfG RoKa
---
Das mit dem Betriebssystem bezog sich auf den Server, nicht auf den Client. Bei einem BG ist es eigentlich unwichtig was für ein OS der Benutzer nutzt.
Ich denke, dass höchstwahrscheinlich ein dedizierter Root-Server mit Linux (Debian, Fedora oder Suse) zur Verwendung kommen wird.
Auf alle Fälle ist es möglich ein und denselben C/C++ Quelltext mit den entsprechenden Compilern für mehrere Betriebssysteme zu kompilieren. Am Wichtigsten hierbei: Das Backend/ der Deamon sollte auf alle Fälle unter Linux und Mac OS X laufen.
@blum: Vllt. bezog sich deine Aussage über die "Cross-Platform-Fähigkeit" von C-Programmen auf solche mit einer GUI. Das Backend/ der Deamon braucht aber keine GUI, da letztenendes per "Terminal" (SSH) mit diesem kommuniziert werden soll (Schliesslich will ich nicht jedesmal ins Rechenzentrum fahren um irgendwas einzustellen oder hochzuladen ).
MfG RoKa
gepostet vor 18 Jahre, 5 Monate von abuzeus
Sobald du solche Späße wie Sockets oder Multithreading dabei hast, ists aus mit der Plattformunabhängigkeit. Sowas gitbs nunmal nicht in Standard-C++. Allerdings gibt es genügend Bibliotheken, die das nachrüsten, und zwar plattformunabhängig.
Cronjobs brauchst du definitiv nicht, einen Daemon so zu programmieren, dass er alle X Minuten etwas tut ist ja nicht weiter wild (und ja, es geht besser und flexibler als mit sleep() ;-)).
Cronjobs brauchst du definitiv nicht, einen Daemon so zu programmieren, dass er alle X Minuten etwas tut ist ja nicht weiter wild (und ja, es geht besser und flexibler als mit sleep() ;-)).
gepostet vor 18 Jahre, 5 Monate von TheUndeadable
Schau dir zum Beispiel mal die APR (Apache Runtime) an, die kapselt genau die Objekte ab, die man für plattformunabhängige Programmierung von Servern benötigt. Weiß allerdings, nicht, ob das eine GPL-Lizenz ist und wie die Freiheit da aussieht, oder ob sie unfrei (GPL oder ähnlicher Schund) ist.
gepostet vor 18 Jahre, 5 Monate von RoKa
OK. Dann heißts wohl für das Backend "linux only". Schade.
Obwohl: Das Backend dient eigentlich nur der Abarbeitung von Aufträgen aus einer DB alle X Minuten. Ist das so unterschiedlich zwischen den verschiedenen OS?
@TheUndeadable: APR, Apache Runtime? Was hat es damit auf sich?
Wie würde denn eine ähnliche "C++Backend-Lösung mit Sockets" aussehen?
Was ist mit Multithreading gemeint?
MfG RoKa
Obwohl: Das Backend dient eigentlich nur der Abarbeitung von Aufträgen aus einer DB alle X Minuten. Ist das so unterschiedlich zwischen den verschiedenen OS?
@TheUndeadable: APR, Apache Runtime? Was hat es damit auf sich?
Wie würde denn eine ähnliche "C++Backend-Lösung mit Sockets" aussehen?
Was ist mit Multithreading gemeint?
MfG RoKa
gepostet vor 18 Jahre, 5 Monate von kudi
Warum manche nach so vielen Jahren Google und Wikipedia noch immer nicht kennen
1. de.wikipedia.org/wiki/Multithreading
2. de.wikipedia.org/wiki/Apache_Portable_Runtime - womit auch die Frage nach der Lizenz geklärt wäre
Lg Kudi
1. de.wikipedia.org/wiki/Multithreading
2. de.wikipedia.org/wiki/Apache_Portable_Runtime - womit auch die Frage nach der Lizenz geklärt wäre
Lg Kudi
gepostet vor 18 Jahre, 5 Monate von Freshman
Du solltest dich vielleicht erstmal mit c++ auseinandersetzen, bevor
du mit sowas anfängst.
Natürlich kann man c++ auf jedes System protieren, vorrausgesetzt
man hält die Standards ein, die dieser Sprache zugrundeliegen.
Was Multithreading angeht, da gibt es wie schon gesagt librarys die
auch in andere System konvertierbar sind. Wenn es sowas nicht gibt,
dann gibt es immer noch
#ifdef LINUX usw.
Um es Systemunabhängig zu halten könnte Java auch eine Alternative
sein, wie ich rausgehört habe steht das wohl aber nicht zu Debatte.
Die Frage die sich stellt ist allerdings, warum du das Betriebssystem
wechseln willst.
Es ist ja klar, dass du für jedes Betriebssystem ( Windows, Mac OS, Linux usw )
das Programm ja eh neu Kompilieren musst, Du kannst ja nicht einfach eine
exe nehmen, und sie auf Linux laufen lassen, auch wenn der code das
hergeben würde.
Niemand hat gesagt, dass es "Linux only" sein muss. Es wurde ja gerade
mit der Apache Portable Runtime eine Library genannt, die genau deine
Probleme behebt.
du mit sowas anfängst.
Natürlich kann man c++ auf jedes System protieren, vorrausgesetzt
man hält die Standards ein, die dieser Sprache zugrundeliegen.
Was Multithreading angeht, da gibt es wie schon gesagt librarys die
auch in andere System konvertierbar sind. Wenn es sowas nicht gibt,
dann gibt es immer noch
#ifdef LINUX usw.
Um es Systemunabhängig zu halten könnte Java auch eine Alternative
sein, wie ich rausgehört habe steht das wohl aber nicht zu Debatte.
Die Frage die sich stellt ist allerdings, warum du das Betriebssystem
wechseln willst.
Es ist ja klar, dass du für jedes Betriebssystem ( Windows, Mac OS, Linux usw )
das Programm ja eh neu Kompilieren musst, Du kannst ja nicht einfach eine
exe nehmen, und sie auf Linux laufen lassen, auch wenn der code das
hergeben würde.
Niemand hat gesagt, dass es "Linux only" sein muss. Es wurde ja gerade
mit der Apache Portable Runtime eine Library genannt, die genau deine
Probleme behebt.
gepostet vor 18 Jahre, 5 Monate von RoKa
@Freshman:
Das ergibt sich aus der Tatsache, dass ich den Switch von Windows zu Mac vollziehen werde, das Backend wahrscheinlich auf nem Linux-Server laufen wird und 'nen paar RLs die mitmachen unter Windows entwickeln. Und da kann es unter Umständen einfacher sein, wenn das Backend unter mehreren OS lauffähig ist.
---
Mmh, gut. Habe mich jetzt so ein bisschen in die Materie "hineingefriemelt" und möchte mich für alle Tipps und Beiträge bedanken. Die Idee nimmt langsam gestalt an.
Das Topic kann geschlossen werden.
MfG RoKa
Die Frage die sich stellt ist allerdings, warum du das Betriebssystem
Das ergibt sich aus der Tatsache, dass ich den Switch von Windows zu Mac vollziehen werde, das Backend wahrscheinlich auf nem Linux-Server laufen wird und 'nen paar RLs die mitmachen unter Windows entwickeln. Und da kann es unter Umständen einfacher sein, wenn das Backend unter mehreren OS lauffähig ist.
---
Mmh, gut. Habe mich jetzt so ein bisschen in die Materie "hineingefriemelt" und möchte mich für alle Tipps und Beiträge bedanken. Die Idee nimmt langsam gestalt an.
Das Topic kann geschlossen werden.
MfG RoKa