Einige Fragen zur Programmamierung Freewars

Hier kann alles rund um Freewar diskutiert werden.
Benutzeravatar
kanu
Kriechlapf
Beiträge: 58
Registriert: 15. Apr 2008, 13:49
Wohnort: Welt 9
Kontaktdaten:

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von kanu » 1. Sep 2010, 20:52

bwoebi hat geschrieben:Warum ich es hier schreibe? Naja, weil ich dachte es würde auch vllt. den einen oder anderen interessieren wenn er selber etwas proggen will für fw?
Naja, was will man für FW programmieren? Um Sotrax wirklich unterstützen zu können, müsste man viel mehr wissen, vor allem auch viel wesentlichere Dinge als das. Da aber Sotrax an keinen weiteren Admins interessiert scheint - man muss ja schon froh sein, dass er sich von Andocai etwas helfen lässt - und somit wohl vorerst niemanden weiter einblicken lassen wird ...

Zudem glaube ich, dass es Sotrax wurscht ist, ob du nun IF nutzt oder ?:; .
Da wäre viel eher die Frage, ob ihm deine Variablennamen passen, wie du deinen Code strukturierst etc. Wobei ihn wsl noch nichtmal das interessiert, denn man munkelt, der FW-Code wär ohne jegliche Struktur, mit falschen Kommentierungen durchzogen usw.
Bild

bwoebi
Administrator
Beiträge: 3439
Registriert: 28. Apr 2008, 19:13

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von bwoebi » 1. Sep 2010, 21:51

Nun Sotrax findet meinen Code "gut strukturiert" :D

das mitm if - ich wollte wissen wie Sotrax' Gewohnheiten so wären^^
man muss ja schon froh sein, dass er sich von Andocai etwas helfen lässt - und somit wohl vorerst niemanden weiter einblicken lassen wird ...
:lol: Ich bin zu jung ;(
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...

Benutzeravatar
Adrion
Kopolaspinne
Beiträge: 988
Registriert: 4. Jul 2009, 09:56

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von Adrion » 1. Sep 2010, 21:52

bwoebi hat geschrieben:Nun Sotrax findet meinen Code "gut strukturiert" :D
<?php
?>
<--- auch gut strukturiert ;o

Benutzeravatar
kanu
Kriechlapf
Beiträge: 58
Registriert: 15. Apr 2008, 13:49
Wohnort: Welt 9
Kontaktdaten:

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von kanu » 1. Sep 2010, 22:06

"Du bist zu jung, FW ist nicht darauf ausgelegt, dass mehrere Leute gleichzeitig daran programmieren." Das ist, was man so zu hören bekommt. Und wenn wer als Admin in Frage kommt, schiebt man ihn Richtung DF. Also mach dir nicht zu große Hoffnungen.
Ich muss sagen, mir ist's sowieso lieber wenn zwei produktive Leute an FW arbeiten, als so gewisse andere Browsergames *hust*, bei denen 6 Entwickler nicht so richtig in die Gänge kommen wollen (aus welchen Gründen auch immer).
Bild

Benutzeravatar
Galak
Klauenbartrein
Beiträge: 1613
Registriert: 9. Jan 2007, 15:23
Wohnort: Welt 4
Kontaktdaten:

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von Galak » 2. Sep 2010, 05:52

bwoebi hat geschrieben:Nun Sotrax findet meinen Code "gut strukturiert" :D

das mitm if - ich wollte wissen wie Sotrax' Gewohnheiten so wären^^
man muss ja schon froh sein, dass er sich von Andocai etwas helfen lässt - und somit wohl vorerst niemanden weiter einblicken lassen wird ...
:lol: Ich bin zu jung ;(
Außerdem bist du oft viel zu voreilig und deswegen ist es auch gut, dass Sotrax dich nur ab und zu was proggen lässt und dir keine Adminrechte gibt. :wink:

Allerdings kann ich die PN an Sotrax nur empfehlen, bei technischen Fragen ist er immer viel motiverter, als bei anderem Kram. :)

(Stellt ihm aber niemals Fragen zum Forum, die sind bei Sotrax hoffnungslos verloren. Wenns um das Forum geht, muss man Andocai fragen. :mrgreen: )
Bild

Benutzeravatar
Latzhosenträger
großer Laubbär
Beiträge: 3309
Registriert: 2. Apr 2008, 15:14

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von Latzhosenträger » 2. Sep 2010, 06:46

Nighti aus W12 hat geschrieben:sry aber das wäre das einzigste wozu ich des fragen würde...

wie schon gesagt wenn du für Sotrax programmiert und er das auch benutzt...warum sollte des jetzt auf einmal falsch sein?^^
Weil sich Programmierstandarts weiterentwickelt haben, und Sotrax den Code nicht umgestellt hat, wie man beispielsweise in der Ajax Diskussion sieht.
Ich glaube auch, dort gelesen zu haben, dass die Grundstränge der Engine in PHP3 sind.

Und ich halte es aus mehreren Gründen für richtig, dass bwoebi keine Adminrechte bekommt. Nimm es mir nicht persönlich.

Benutzeravatar
Sotrax
Administrator
Beiträge: 35027
Registriert: 8. Nov 2003, 04:26

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von Sotrax » 2. Sep 2010, 06:52

Ich kann hier keine Internas über die Engine rausgeben, aber ein paar Dinge kann ich durchaus beantworten:

Ja, Freewar wurde damals unter PHP3 entwickelt. Mittlerweile läuft Freewar mit PHP5.

Wir verwenden in Freewar möglichst kompatible Standardkonstrukte, so dass es bisher nie eine große Hürde war auf neue PHP Versionen umzusteigen, total abgefahrene Konstruktionen vermeide ich möglichst.

Ja, Freewar ist Objektorientiert Programmiert und das schon seit Version PHP Version 3. Allerdings verwenden wir nicht die OOP-Konstrukte von PHP dafür. Ohne Objektorientierung, wäre FW bei weitem nicht so leicht zu erweitern, so gibt es Objekte wie Orte und z.B. Items und diese können spezifische Funktionen haben, so können Items die Funktion "Anwenden" besitzen etc. (was recht klassischem OOP Polymorphismus entspricht, in C++ würde man jetzt sagen, "Anwenden" ist einfach eine virtuelle Funktion der abstrakten Klasse Item). Die Engine selbst kann deswegen dann einfach sagen "Wende Item XYZ an" und muss nicht wissen, was dieses Item wirklich tut.

Es ist sogar so, dass Orte z.B. die Funktion anderer Orte erben können, so erben alle Auftragshäuser den Code vom Hauptauftragshaus etc etc.

Das gute war, dass diese Vorgehensweise sogar bereits in PHP3 funktionierte. Wer sich da weiter auskennt, weiß aber auch, dass man mit C genauso objektorientiert programmieren kann wie mit C++, in C++ hilft einem nur die Sprache selbst dabei eben mehr und unterstützt aktiv die objektorientierte Programmierung.

Von den restlichen Standardkonstrukten wird man so ziemlich alles in FW finden, von normalen if {} else {} blöcken, über switch()-blöcke und auch : ?-Konstrukte wird man finden.

Ansonsten wurde FW immer wieder mit einem Profiler auf Geschwindigkeit optimiert. Mittlerweile ist es so, dass 80-90% der Gesamtgeschwindigkeit nur für die Datenbankabfragen draufgeht und nicht mehr für den PHP Code. FW hat mittlerweile also eine durchaus erstaunliche Geschwindigkeit, für die Menge an Abfragen. An der Datenbank können wir auch optimieren, aber teilweise eben nur bedingt.
---
Sotrax

Benutzeravatar
Flummi
Gelbbart-Yeti
Beiträge: 2339
Registriert: 17. Mai 2008, 11:22

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von Flummi » 2. Sep 2010, 06:58

Tjaja die lieben Datenbanken.. Kenne ich nur zu gut.
Man scriptet etwas, alles läuft verdammt schnell.. Koppelt man dies dann mit einer Datenbank... Zum kotzen. :mrgreen:
(Wenn es dann auch noch ein anderer Server ist, also nicht lokal, wirds besonders schlimm.)
Nyrea hat geschrieben: 17. Jan 2020, 14:18#BigBugBob

bwoebi
Administrator
Beiträge: 3439
Registriert: 28. Apr 2008, 19:13

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von bwoebi » 2. Sep 2010, 09:32

Latzhosenträger hat geschrieben:Und ich halte es aus mehreren Gründen für richtig, dass bwoebi keine Adminrechte bekommt. Nimm es mir nicht persönlich.
Ich halte es auch von Sotrax richtig; ich kann einiges aber ich bin teilweise noch zu unerfahren (für kompliziertes wie fw) ;) wenn ich in 3 1/2 Jahren 18 bin, werde ich wohl auch noch viel besser Programmieren; und so wie so ist es eh rechtlich nicht möglich vor 18 Jahren.

EDIT: Äh, danke Sotrax - aber wie ist das mit der mysqli-Klasse?
Bogs sind meine Spezialität - Signaturen sind eigentlich doch überflüssig...

Benu
Zauberer der Bergwiesen
Beiträge: 658
Registriert: 26. Okt 2008, 13:21

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von Benu » 2. Sep 2010, 10:59

Er hat doch gesagt, dass keine Klassen verwendet werden.

Und Fw ist nicht kompliziert. Das denkt man zwar am Anfang aber wenn man sichs mal genauer überlegt und nachdenkt, wird man zu dem Schluss kommen, dass es nicht kompliziert ist.
http://fwrails.net
lokale Styes in Google Chrome
lokale Styles in Gologle folgen...
I'm beginning to feel like a Spam God

hackerzzzz
Kopolaspinne
Beiträge: 1237
Registriert: 7. Aug 2007, 15:59
Wohnort: Lardikia

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von hackerzzzz » 2. Sep 2010, 11:08

Benu hat geschrieben:Er hat doch gesagt, dass keine Klassen verwendet werden.
ähm, nein, hat er nich?
Sotrax hat geschrieben:Ja, Freewar ist Objektorientiert Programmiert und das schon seit Version PHP Version 3.
bwoebi spricht die Verwendung einer Klasse für die Datenbankverbindung an. Das ist was anderes.
Die Hoffnung stirbt zuletzt.

Benu
Zauberer der Bergwiesen
Beiträge: 658
Registriert: 26. Okt 2008, 13:21

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von Benu » 2. Sep 2010, 11:13

hackerzzzz hat geschrieben: ähm, nein, hat er nich?
Sotrax hat geschrieben:Ja, Freewar ist Objektorientiert Programmiert und das schon seit Version PHP Version 3.
Diese Leute mit ihren Zitatverstümmelungen immer :)
Sotrax hat geschrieben: Ja, Freewar ist Objektorientiert Programmiert und das schon seit Version PHP Version 3. Allerdings verwenden wir nicht die OOP-Konstrukte von PHP dafür.
OOP-Konstrukte sind sowas wie $mysqli->foo oder $mysqli::bar und das Versteh ich unter der mysqli-Klasse und sowas wird aut Sotrax Aussage nicht verwendet.

Da du wohl nicht verstanden dass mein Post ironisch gemeint war, das mysqli auch prozedural vorliegt, hier mein Tipp:
Verwende einfach Funktionen, die in php3 schon verfügbar waren. Umschreiben in mysqli ist kein besonders großer Aufwand. Ja klar mysqli hat schon einen netten Mehrwert aber für simple Sachen reicht die Mysql Erweiterung völig aus.
http://fwrails.net
lokale Styes in Google Chrome
lokale Styles in Gologle folgen...
I'm beginning to feel like a Spam God

flipper3040
Kriechlapf
Beiträge: 41
Registriert: 8. Sep 2008, 14:58

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von flipper3040 » 2. Sep 2010, 12:18

Kann nicht mal jemand den Threadtitel korrigieren? ist ja furchtbar :?

Benutzeravatar
kanu
Kriechlapf
Beiträge: 58
Registriert: 15. Apr 2008, 13:49
Wohnort: Welt 9
Kontaktdaten:

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von kanu » 2. Sep 2010, 13:42

Wenn schon grad mal Fragestunde ist, fallen mir auf die Schnelle auch noch ein paar Fragen ein. Und zwar geht es um eine Stelle aus: http://welt9.freewar.de/freewar/internal/refresh.php. Genauer folgende Zeile:

Code: Alles auswählen

httpReloadChat.open("GET",'rel_files/154.htm?dynamicid='+6, true);
Ajax-Anfrage, oke. 154 ist meine ID, auch klar.
Meine erste Frage wäre gewesen, was es mit der dynamicid auf sich hat. Dass es mit Caching zusammenhängt, dachte ich mir schon. Es hatte mich nur verwundert, wieso die dynamicid immer 6 ist. Die Frage hat sich aber quasi geklärt, wenn denn benus Aussage hierzu richtig ist (wie ich stark vermute).

Nun aber, was ich nicht versteh: Wieso .htm?
Diese rel_files scheinen mit Parametern umgehen zu können. Was hat es damit auf sich?

Und wieso erhält jeder Spieler eine eigene file?
Der oben zitierte Codeschnipsel sendet ja eine Anfrage an diese 154.htm und erhält die Antwort, ob der Chatframe aktualisiert werden soll oder nicht. Wo aber wird gespeichert, ob der Chat bei mir aktualisiert werden muss oder nicht? Direkt in dieser File oder in einer DB-Tabelle? Und was ist der Vorteil gegenüber der jeweils anderen Methode? Wäre die DB-Variante nicht einfacher zu handhaben? Und was ist schneller? Ein fwrite auf mehrere solche .htm-Files anwenden oder eine DB-Query?

(Und müsste es solche Files dann nicht auch noch für die anderen Frames geben? Hab hierzu auch keine JavaScript-Stelle gefunden.)

Vielleicht hat ja auch der ein oder andere Nicht-Admin eine Antwort auf eine oder mehrere dieser Fragen. Ich hoffe man versteht, was ich wissen möchte und die Antworten sind nicht allzu einfach und offensichtlich :)


PS: Kann vorerst auf keine Antworten reagieren, da ich ab jetzt gleich auf dem Weg in den Urlaub bin.
Bild

Benu
Zauberer der Bergwiesen
Beiträge: 658
Registriert: 26. Okt 2008, 13:21

Re: Einige Fragen zur Programmamierung Freewars

Beitrag von Benu » 2. Sep 2010, 14:47

kanu hat geschrieben: Nun aber, was ich nicht versteh: Wieso .htm?
Diese rel_files scheinen mit Parametern umgehen zu können. Was hat es damit auf sich?
htm, html...alles das gleiche. Außer das Apache Handler verarbeitet auch htm Files als php. Die Parameter sind wie ich schon gesagt hatte nur für Ajax interessant. Damit zwingt man Ajax das Dokument wirkich nochmal neuzuholen. Wie gesagt nur notwendig wenn not modified gesendet wird. Da aber keine echte dynamic_id übergeben wird, scheint last_modified standardmäßig auf 1970 zu stehen :D

Ansonsten glaub ich, dass alle Reloads über chatupdate laufen.

Ansonsten würde michs auch mal interessieren, ob Datei oder Datenbankbasiert schneller ist bzw besser zu handhaben ist. Ich schätze aber mal, dass das von Sotrax gemacht wurde :)
http://fwrails.net
lokale Styes in Google Chrome
lokale Styles in Gologle folgen...
I'm beginning to feel like a Spam God

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste