Tools4Travian Toolsammlung für ein Browsergame

Du hast eine Idee für ein Projekt?
Antworten
Lasse
User
Beiträge: 112
Registriert: Donnerstag 3. Februar 2011, 18:25

Hallo,

ich habe mir vorgenommen eine Website zu programmieren, genauer gesagt eine Seite, die die Traviankarte (wird für so etwas täglich aktualisiert zum Download bereitgestellt) ausliest und daraus Informationen bekommt. Auch sollen Truppen eingetragen werden können und so weiter. Ähnlich wie das hier: http://www.getter-tools.de/ nur erstmal mit weniger Funktionen und dafür besser

Was ich von euch wissen will ob mein Plan so funktioniert.
1. Die Datenbank:
Ich bekommme über eine .sql Datei täglich Daten zu den Dörfern einer Travian Welt. Diese sollen verarbeitet werden und auch Daten zu Spielern und Allianzen abgeleitet werden. Eine Welt enthält 30000 Spieler und läuft im Schnitt 250 Tage. Es gibt rund 100 Server weltweit. getter-tools behauptet eine über 200.000MB große Datenbank mit 685 Welten zu haben. Ist für eine solche Datenmenge eine sqlite3 Datenbank noch geeignet oder braucht man dafür eher etwas in Richtung mysql?
EDIT: Ein Travian Server ist am Ende zwischen 100 und 200MB groß
Welches System bei den Datenbanken ist besser? Für jeden Server eine eigene Datenbank oder eine einzige Datenbank?
2. Webframework:
Als Webframework will ich Django benutzen.
3. Webhoster:
Taugt heliohost etwas oder habt ihr eine andere Empfehlung?

Ich hoffe auf eure Antworten.
BlackJack

@Lasse: Ich denke so grundsätzlich kann Dir niemand sagen ob der Plan funktioniert, da wir die Anforderungen nicht kennen.

Ob `sqlite3` ausreicht, oder ein grösseres DBMS benötigt wird, hängt zum Beispiel von den Anforderungen ab. Wobei das bei SQL-Datenbanken aber eigentlich auch egal ist, solange Du Dich nicht an Spezialitäten eines bestimmten Systems bindest. Dann kann man die nämlich relativ problemlos austauschen. `sqlite3` kann auch mit grösseren Datenmengen klar kommen. Bei dem DBMS ist die Schwachstelle, dass man zwar viele parallele Lesezugriffe machen kann, aber grundsätzlich immer nur ein Schreibzugriff zu jedem gegebenen Zeitpunkt aktiv sein kann, der dabei die komplette DB sperrt. Solange die Leute nur lesend auf die Daten zugreifen und neue Daten nicht so oft hinzu kommen, ginge das vielleicht.

Meinst Du bei `heliohost` das kostenlose Angebot? Sofern die so grosse Datenbanken überhaupt zulassen, ist das sicher nicht geeignet. Schon alleine an der zuverlässigen Erreichbarkeit scheitert das. So einen Dienst wird man wohl schon auf einem ordentlichen Server laufen lassen müssen.
Lasse
User
Beiträge: 112
Registriert: Donnerstag 3. Februar 2011, 18:25

Welche URL-Struktur ist eigendlich besser
http://www.beispiel.com/sprache/travian ... seite.html
oder
www.beispiel.com/travian-server/beispielseite.html und die eingestellte Sprache versteckt weiterleiten?

@BlackJack
Heißt ich kann ersteinmal mit sqlite3 entwickeln und bei Bedarf dann umstellen?
Schreibzugriffe gibt es in großer Menge zwischen morgens 4-8 Uhr wenn von den Travian Servern neue Karten veröffentlicht werden. Ansonsten sollen aber auch die Mitglieder Möglichkeiten haben eher wenige Datenbankeinträge zu machen.
Welchen Hostingdienst würdest du denn Empfehlen? Soll Python, Django haben, einfach zu konfiguieren sein, und natürlich schnell, immer erreichbar und günstig sein.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Ist das überhaupt zulässig? Wir reden doch hier von einem Browsergame? Da gibt es ja allgemein ziemlich regide AGBs...
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Hyperion hat geschrieben:Ist das überhaupt zulässig? Wir reden doch hier von einem Browsergame? Da gibt es ja allgemein ziemlich regide AGBs...
Ich zitiere aus dem ersten Posting: "[...] die Traviankarte (wird für so etwas täglich aktualisiert zum Download bereitgestellt) [...]".

Das klingt doch recht eindeutig danach, als sei das zulässig.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

/me hat geschrieben: Das klingt doch recht eindeutig danach, als sei das zulässig.
Oops, den Satz habe ich überlesen :oops:
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Lasse
User
Beiträge: 112
Registriert: Donnerstag 3. Februar 2011, 18:25

Hallo,
hier ist eine Liste von den geplanten Models:
Server (Daten zu den einzelnen Travianservern: Land, Internetadresse...), User (Daten zu den Spielern: Allianz, Name, Id, Einwohner...), Alliance (Daten zu den Allianzen: Mitglieder, Name, Einwohner...), Village (Daten zu Dörfern: besitzender Spieler, Name...)... Das sind erstmal die wichtigsten für die Statistik von den einzelnen Servern

Zusammenhänge:
-User, Alliance, Village haben einen Server
-Village hat einen "Besitzer" (Spieler)
-User ist oft (nicht zwingend) in einer Alliance

Diese Zusammenhänge kann man dann ja mit ForeignKeys verbinden.
Meine Frage ist ob diese Models in verschiedene Apps, oder in eine einzige App gehören?
BlackJack

@Lasse: App ist Abkürzung für Application, also Anwendung. Du schreibst doch *eine* Anwendung, oder!?
Lasse
User
Beiträge: 112
Registriert: Donnerstag 3. Februar 2011, 18:25

Projects vs. apps

What's the difference between a project and an app? An app is a Web application that does something -- e.g., a Weblog system, a database of public records or a simple poll app. A project is a collection of configuration and apps for a particular Web site. A project can contain multiple apps. An app can be in multiple projects.
aus dem Django Tutorial.

Eigendlich will ich ein Projekt machen (Tools4Travian) und für mich ist die Frage, ob ich alles in eine Application schreiben soll, oder es auf mehrere Verteilen soll. Eventuell kommen auch noch fremde Apps für ein Forum hinzu.
BlackJack

@Lasse: Die Frage ist jetzt aber schon wieder eine andere als ob aus jedem Model eine App werden sollte.

Apps können in mehreren Projekten verwendet werden, wie der letzte von Dir zitierte Satz aus der Doku sagt — also ist die Frage ob Du Teile Deines Projekts in anderen Projekten wiederverwenden willst oder kannst.
Lasse
User
Beiträge: 112
Registriert: Donnerstag 3. Februar 2011, 18:25

Nein, wahrscheinlich kann man das nicht wiederverwenden, also alles in eins.
Antworten