php.de

Zurück   php.de > php.de Intern > Off-Topic Diskussionen

Off-Topic Diskussionen Mach mal Pause vom Programmieren!

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 4 Stimmen, 3,00 durchschnittlich.
Alt 19.09.2011, 16:51  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

So, ich habe nun doch einmal das gesamte Tutorial durchgelesen.

zu 1) Truppenbewegungen. Soweit gut, auch der Verweis darauf, dass dies explizit der direkte Weg ist. Ich würde da auch nicht zu sehr ins Detail gehen, denn wie du richtig sagst, ist das Problem der Wegfindung etwas, was extrem auf die Komplexität gehen kann. Das kann bedeuten, dass es an einem Meerbusen u.U. die Truppen direkt durchs Wasser schickt statts an der Küste entlang. Ich würde dieses plastische Beispiel im Nachsatz noch erwähnen, damit man sich als Laie unter einer Wegfindung auch etwas vorstellen kann und evtl. seine Spielkarte auch so designt, dass solche Meerbusen nicht vorkommen

zu 2) Datenbank. Ich würde durchaus den Begriff für diese fast zeitgleichen Zugriffe nennen. Also durchaus einfach sagen, dass man sowas "Race Condition" nennt. Damit hat man auch gleich bei dererlei Problemen das richtige Google-Suchwort an der Hand.
Im Unterkapitel, wie man das vermeidet würde ich darauf verweisen, dass man nicht bei jedem Schreibzugriff zwingend eine Transaktion öffnen muss. Auch wenn du das nicht explizit so sagst, kann man bei dir schon rauslesen: Am besten mache ich immer Transaktionen auf... Beispiel der Registrierung: Ich kann die doppelte Vergabe eines Benutzernamens auch per Unique Key verbieten. Dann muss ich nicht zwingend einen Select ausführen um zu gucken ob der Benutzername bereits vergeben ist. Stattdessen auf Verdacht den Insert ausführen. Kriege ich einen Duplicate Key weiss ich, dass der Benutzername vergeben wurde. Ob nun via Race Condition oder nicht, ist mir dann egal. Also: Gerade weil Transaktionen durchaus Overhead für die DB sind und auch hinsichtlich Locking evtl. nicht immer zielführend sollte man sich auch mit anderen Lösungsstrategien auseinandersetzen. Aber bei sowas sollte der Entwickler immer wissen, was er tut und auch gezielt per Kommentar darauf verweisen, warum er eine Transaktion aufmacht und warum nicht.

3) Die Karte: Soweit ok denke ich. Ich würde noch Stichworte geben und weiterführende Links, denn "realistische" Zufallskarten zu erzeugen, das kann durchaus etwas kompliziert werden. Dafür gibt es dann Hilfsprojekte, die einen echten Fluss, ausgehend von einem Berg einbauen usw. Auch hier darauf verweisen, dass man typischerweise die Karte nur einmal anlegegt und abspeichert (hast du ja bereits den Hinweis) und sich daher um Performance beim Generieren von Karten nicht so ganz so viel Gedanken machen muss.

4) Rangliste: Ich würde den Satz "in regelmäßigen Abständen" fett machen, denn das Berechnen der Rangliste ist eines der größten Overkills. An Vorteilen ruhig mit aufnehmen, dass ein Cronjob den Vorteil hat, dass man sich nicht sofort festlegen muss, wie oft die Rangliste aktualisiert wird. Du kannst später auch noch die Zeit auf einmal pro Stunde erhöhen oder auf "einmal am Tag, 3 Uhr nachts"

5) Ressourcen-Produktion: Ich würde mal behaupten: bcmath ist der falsche Weg in diesem Fall. Falsch im Sinne von nicht zielführend. Dass bcmath richtig rechnet, das meine ich aber nicht. Eine echte Notwendigkeit, Fließkommazahlen (im eigentlichen Sinn) zu verwenden besteht in den wenigsten Fällen. Bei genauer Betrachtung kann man die Präzision eigentlich vernachlässigen. Wobei vernachlässigen das falsche Wort ist. Man kann sie auf primitive Regeln zusammenstreichen und damit wie von Zauberhand verschwinden lassen. Sprich: Man arbeitet hier nie mit beliebig vielen Nachkommastellen. Ein einfacher Trick ist das programminterne Verwenden von Ganzzahlen.
Das erreicht man mit 2 Möglichkeiten: a) Beim Aufteilen immer auf Ganzzahlen setzen. Das heisst auch, wenn 3 Spieler zusammen spielen und eine Beute von 50 Gold aufteilen, bekommen zwei Spiele 17 Gold und ein Spieler 16 Gold.
b) Die Nachkommastellen "faken". In der DB und im Programm wird dann stehen, dass jemand 5000 Gold besitzt und pro Sekunde 1 Gold dazu verdient. Angezeigt wird das als "50 Gold" und 0,6 Gold pro Minute, sprich die letzten beiden Stellen werden abgeschnitten. Rein Programmtechnisch arebitet man mit Ganzzahlen. Doch der Benutzer sieht dann optisch lediglich, dass er alle 100 Sekunden 1 Gold verdient.
Hintergrund: bcmath ist auch etwas langsamer als "richtige Ganzzahlen".

Zum Eventsystem habe ich weiter oben bereits was gesagt. Was mir fehlt ist in der Einleitunsseite ein "Was wollen wir machen". Also der Projektvorspann. Und wenns nur in einem Satz ist. Du musst dir im Klaren sein, dass auch Anfänger das Tutorial lesen. Bei Browsergames ist der Prozentsatz der Kinder, die einen Traum haben aber 0 Ahnung, wie ein Projekt umgesetzt wird, extrem hoch. Daher würde ich es persönlich gut finden, wenn auf der ersten Seite sowas steht wie "Am Anfang steht ein gutes und durchdachtes Konzept" und ein "In diesen Tutorials beschäftigen wir uns mit typischen Browsergames, 2dimensionalen Karten usw."
Rollenspiele zum Beispiel, bei denen man als Abenteurer durch die Spielwelt läuft, haben zwar eine Karte und dort bewegt man sich selbst über die Karte, aber man hat kein Produktionsgebäude und Rohstoffe müssen in der Spielwelt selbst durch Monster-Töten, Erledigen von Quests oder Pflücken von Blümchen "gefarmt" werden. Das, was du augenscheinlich beschreibst, ist eher ein Gott-Modus ala Siedler. Das sollte in der Einleitung deutlich werden denke ich.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.09.2011, 16:57  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.870
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Gibs zu, du hast ne Sekretärin, die die Textwände für dich tippt Oo
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 19.09.2011, 20:16  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
splasch kann nur auf Besserung hoffen
Standard

Zitat:
Zitat:
Zitat von Frajac (Browsergame Tutorial)
Die Klasse "EventScripts1" ist nicht zu unterschätzen. Hier werden die ganzen Geschäftslogiken hinterlegt. Ich würde also empfehlen, die hier verwendeten Methoden getrennt zu lassen und eindeutig zu benennen. Das erhöht die Lesbarkeit des Codes immens.


Zitat von Frajac (Browsergame Tutorial)
Wenn man jetzt noch weitere Events nachladen muss (aus welchen Grund auch immer), können diese erst gesammelt und dann in einem Rutsch sortiert werden. Das macht die ganze Sache nochmal etwas performanter.

Das raff ich ehrlich gesagt nicht. Wann genau macht ein Nachladen Sinn? Doch nur, wenn du etwas paketweise lädst. In diesem Fall die 20 ersten Events. Wieso willst du die dann unsortiert im ersten Schritt abfragen? Dann weisst du doch nie, ob beim zweiten Nachladen ein weiteres Event kommt, was du hättest früher abarbeiten müssen. Wenn du die DB sortieren lässt, kriegst du hingegen die 20 ältesten Events, dann die 20 neuern. Da wäre die PHP-Sortierung eher von Nachteil.
Hier muss ich mepeisen zustimmen. Ein unsotiertes abrufen aus der Datenbank erzeugt unötige mehr overhead. (Um es später per php zu sortieren). Ich kann mir vorstellen das deine Frajac erfahrungswerte auf geteillte Webserver beruhen.
Hier kann es durchaus vorkommen das ein Datenbank Server mehr ausgelastet ist als der Php Server.
Das liegt aber nicht am eigenen Script sonderen meisten an noob Scripten die von anderen Datenbanken belastet werden (Cronjobs). So ist der geteillte Datenbank Server sogut wie immer ausgelastet. Je nach Anbieter 10, 50, 100 Datenbanken pro Server. Vorallem weil viele Admin es mit dem Cronjobs intervalen übertreiben. (Am liebsten jede Sekunde)

Davon ausgehen die Sortierung nach hintenverlegen empfinde ich als falsch. Egal ob nun was Nachgeladen wird oder ob alles auf einmal abgearbeitet wird.

Mfg Splasch
splasch ist offline   Mit Zitat antworten
Alt 19.09.2011, 22:20  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.234
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
Gibs zu, du hast ne Sekretärin, die die Textwände für dich tippt Oo
Ich hab mir heute den RSA zerlegt, eigentlich Freitag schon. Und wärend das www.dreckstool.de sich neu installiert und neu einrichtet, habe ich Zeit.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline   Mit Zitat antworten
Alt 22.09.2011, 11:54  
Neuer Benutzer
 
Registriert seit: 05.01.2011
Beiträge: 24
PHP-Kenntnisse:
Fortgeschritten
Frajac befindet sich auf einem aufstrebenden Ast
Standard

Hi,

zunächst einmal möchte ich mich für die nett formulierten und interessanten Anmerkungen zu den Tutorials bedanken

Ich bin z.Z. leider im Stress und finde momentan keine Zeit um mich den angesprochenen Themen so zu widmen wie ich gerne würde. Deshalb möchte ich um ein wenig Geduld bitten.

Ich versuche mir am WE mal ein bisschen Zeit dafür freizuhalten.

Dank und Gruß,
- Frank -
Frajac ist offline   Mit Zitat antworten
Alt 22.09.2011, 22:47  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.654
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo Frajac,

ich habe die Texte hier nur quergelesen, du solltest jedoch noch deutlich mehr auf das Thema Persistenz und Datenmodell eingehen. Mit Ralf und Tobi aus dem APF-Forum habe ich für deren Browsergame ein Daten-Modell diskutiert, das gerade noch auf ein A2-Papier passt. Ohne vernünftiges Daten-Modell wird das daher IMHO nichts.

Just my 2 cents,
Dr.E.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 18.03.2012, 15:31  
Neuer Benutzer
 
Benutzerbild von PHPfreak123
 
Registriert seit: 18.03.2012
Beiträge: 15
PHP-Kenntnisse:
Fortgeschritten
PHPfreak123 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke, hab schon länger nach einem Ansatz gesucht...
DANKE!!
PHPfreak123 ist offline   Mit Zitat antworten
Alt 25.03.2012, 12:12  
Erfahrener Benutzer
 
Benutzerbild von _cyrix_
 
Registriert seit: 22.10.2008
Beiträge: 222
PHP-Kenntnisse:
Anfänger
_cyrix_ befindet sich auf einem aufstrebenden Ast
Standard

Ich schreib ja selbst eins und hab ihr und da auch meine eigenen Erfahrungen in vielen Sachen gesammelt und gemacht.,.

Ich bin froh, dass ich mein System / Spiel zum Laufen bekomme, was hier und da noch einigen Stellen nicht ganz so das macht, was ich mir vorstelle, aber ich kann sagen, dass ich es mit meinen wenigen Mitteln und wirklich Learning by Doing und Dank euch ( Com ) , mit meinen dussligen Fragen erstellt hab.

Ich hab das hier mal komplett gelesen und muss sagen, hier werden / wurden Sachen angesprochen, da wird einem gleich wieder anders, weil ja auf Sachen geachtet werden muss, an die man so noch nie gedacht hat.,.

Warum ist die Rangliste so ein Performencekiller ? Ich habs bei mir so gemacht, dass nach dem Ende des Prozesses, die Punkte für das aktuelle Ereigniss ( Stadt in meinem Fall ) neu errechnet werden, damit hab ich nur einmal einen kleinen Aufwand, die Punkte korrekt zu errechnen.

Es gibt Sachen, die mir definitiv mehr Kopfzerbrechen machen und das ist mein Kampfsystem, was mir einfach nicht gelingen will.,. Weil ich denke, dass ich es mir einfach zu kompliziert mache.,.


Ich würde mich freuen, wenn das Thema offen bleibt und es kein Mod dicht macht, weil es ja doch schon ein paar Tage alt ist.,. Zum Erfahrungstausch ist es definitv gut geeignet.,.
__________________
Learning by Doing --> Projekt eigenes BG <--
So lernt man am Besten alle Funktionen und kann sich dadurch viel aneignen --> Closed Beta Test <--
_cyrix_ ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Suche] Verstärkung für Browsergame luks2com Freizeit 3 05.08.2010 13:01
Hobby Browsergame Nuc Beitragsarchiv 0 12.11.2009 21:09
Online - Einsatz Browsergame h3nny Beitragsarchiv 2 23.10.2009 22:01
Gesucht: 3D-Grafiker und Programmierer für bestehendes Browsergame Ray94 Beitragsarchiv 1 03.10.2009 23:26
Tutorial: PHP/MySQL und OOP Chriz Tutorials 11 19.08.2009 23:51
Lerne Grundlagen | Quellensammlung cycap PHP Einsteiger 0 12.11.2008 16:23
[Erledigt] Problem mit Tutorial PrisonerOfDreams PHP Tipps 2008 4 16.05.2008 11:59
Browsergame Beitragsarchiv 3 01.04.2005 14:33

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php browsergame tutorial

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:21 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum