ενσωμάτωση flash με mysql για games

Λύσεις προβλημάτων για το δημοφιλές πρόγραμμα κατασκευής παρουσιάσεων στο διαδίκτυο.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
zezar1
Δημοσιεύσεις: 17
Εγγραφή: 01 Νοέμ 2008 19:00
Τοποθεσία: peristeri

ενσωμάτωση flash με mysql για games

Δημοσίευση από zezar1 » 10 Φεβ 2011 16:36

εχω φτιαξει ενα παιχνιδι με τουσ φιλους μου απο flash κ περνει τα δεδομενα καθε παιχτη μεσω php-mysql αργει πολυ να μασ δειξει το στιγμα κ τα χτυπηματα. υπαρχει καποιος τροπος να μας δειχνει κατευθυαν τοις κινησεις του αλλου?

ευχαριστω

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

ενσωμάτωση flash με mysql για games

Δημοσίευση από dva_dev » 10 Φεβ 2011 20:10

Οταν λες αργεί πολύ, το "πολύ" πόσο είναι; 10 λεπτά; μισή ώρα; 1 ώρα;

zezar1
Δημοσιεύσεις: 17
Εγγραφή: 01 Νοέμ 2008 19:00
Τοποθεσία: peristeri

ενσωμάτωση flash με mysql για games

Δημοσίευση από zezar1 » 10 Φεβ 2011 21:03

15 me 20 deftera alla an enas alaksi thesi o pextis to blepis meta

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

ενσωμάτωση flash με mysql για games

Δημοσίευση από dva_dev » 10 Φεβ 2011 21:38

Το τρέχετε από το internet ή σε τοπικό δίκτυο;

zezar1
Δημοσιεύσεις: 17
Εγγραφή: 01 Νοέμ 2008 19:00
Τοποθεσία: peristeri

ενσωμάτωση flash με mysql για games

Δημοσίευση από zezar1 » 10 Φεβ 2011 22:07

apo to internet tora to exo katevasi.
moy ipane na xrisimopiiso to
Flash Media Server alaine poli akrivo.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

ενσωμάτωση flash με mysql για games

Δημοσίευση από dva_dev » 10 Φεβ 2011 23:46

Δοκίμασε πως παίζει σε τοπικό δίκτυο μήπως μπορέσεις να εντοπίσεις καθυστερήσεις, optimization στη βάση, indexes, δοκίμασε διαφορετικά queries που να φέρνουν τα ίδια δεδομένα, τσεκάρισε του χρόνους της php, ξαναβάλτο online και σύγκρινε.

Το να φτιάξεις κάτι, είναι παιχνιδάκι, το να φτιάξεις κάτι που να παίζει σωστά, δεν είναι και εύκολο αλλά ούτε και ακατόρθωτο, αλλά το να φτιάξεις κάτι που να παίζει σωστά και γρήγορα θέλει να αφιερώσεις χρόνο, να κάνεις δοκιμές, να κάνεις συγκρίσεις σε διαφορετικές τεχνικές, τεχνολογίες, γλώσσες, εξοπλισμό, γενικά τα πάντα.

Μπορεί να φταίει απλώς ότι το download που σου δίνει ο server δεν ξεπερνάει τα 10Kbps, μπορεί να φταίει η database που κάνει μια ώρα να βρει τα δεδομένα, μπορεί να φταίει ο κώδικας της php που κάνει μια ώρα να φτιάξει ένα response, μπορεί να φταίει ο flash κώδικας που κάνει 1000 υπολογισμούς από την αρχή ενώ τους 999 θα μπορούσε να τους έχει κασαρισμένους, μπορεί να φταίει ότι ζητάς κάθε 12" ενημέρωση από το server. Μπορεί να φταίνε τα πάντα.

nkast
Δημοσιεύσεις: 137
Εγγραφή: 15 Νοέμ 2009 20:31
Επικοινωνία:

ενσωμάτωση flash με mysql για games

Δημοσίευση από nkast » 11 Φεβ 2011 11:45

Περνώντας τα δεδομενα μεσα απο mysql δεν θα πετύχεις ποτε την ταχυτητα που χρειάζεται ενα realtime multiplayer game.

Μια λύση είναι η χρήση του Real Time Messaging Protocol (RTMP).
Μερικά ετοιμα πακέτα RTMP που γνωρίζω:
Flash Media Server (πολύ ακριβό όπως είπες και εσύ.)
FluorineFX (open source , dot.net/C#)
Red5 (open source , java)
HaXeServer (open source , HaXe)

Ίσως να πιστεύεις πως είναι πιο απλο να υλοποιήσεις μια λύση μόνος σου! Αν τολμήσεις να πάρεις αυτό το δρόμο, φρόντισε να αφήνεις τα conections με τον server ανοιχτά (κάθε νεο request θα σου κοστίζει αρκετές δεκάδες Miliseconds!) και να κράτάς τα δεδομενα του κάθε χρήστη στην μνήμη σε ενα structure (η χρήση οποιασδήποτε DB αποκλείεται!) τα οποια θα κάνεις broadcast τακτικά σε όλους.
Πιθανόν να μην τελειώσεις ποτέ το παιχνίδι, αλλα αν το όλο project γίνεται απο hobby θα βγείς κερδισμένος απο αυτα που θα μάθεις. Αν πρέπει οποσδήποτε να βγει στον αερα, ασχολήσου με ενα απο τα παραπάνω RTMP. period.

Ισως να σου φανεί χρήσιμο και το Flash P2P protocol.
http://labs.adobe.com/technologies/cirrus/
Προσωπικά δεν ξέρω να σου πω κάτι παραπάνω για αυτό.


Αντε, και καλή συνέχεια.. , περιμένουμε να το δούμε Live!
:D

Άβαταρ μέλους
HeRu
Flash Moderator
Δημοσιεύσεις: 800
Εγγραφή: 16 Αύγ 2004 10:49
Επικοινωνία:

ενσωμάτωση flash με mysql για games

Δημοσίευση από HeRu » 11 Φεβ 2011 16:21

Ένα καλό service για multiplayer games είναι αυτό: http://playerio.com/

Αν θες να παραμείνεις με php+mysql θα πρέπει να κάνεις διάφορα κόλπα ώστε να γίνει compensation της καθυστέρησης και να μπορείς με να κάνεις sync τα positions μεταξύ clients.

DeveloperGR
Δημοσιεύσεις: 67
Εγγραφή: 08 Νοέμ 2009 22:59

ενσωμάτωση flash με mysql για games

Δημοσίευση από DeveloperGR » 28 Φεβ 2011 22:08

Να ρωτήσω,

Σε αυτους τους RTMP Servers, πως γράφεις την λογική στο backend;;

π.χ εαν θέλω να φτιάξω μια τρίλιζα, πως ακριβώς θα έγγραφα δικό μου κώδικα σε J2SE,PHP,etc;;;;

Άβαταρ μέλους
Kainourios
Ruby Moderator
Δημοσιεύσεις: 504
Εγγραφή: 18 Μάιος 2005 16:20
Τοποθεσία: Κορυδαλλός
Επικοινωνία:

ενσωμάτωση flash με mysql για games

Δημοσίευση από Kainourios » 28 Φεβ 2011 23:20

DeveloperGR έγραψε:Να ρωτήσω,

Σε αυτους τους RTMP Servers, πως γράφεις την λογική στο backend;;

π.χ εαν θέλω να φτιάξω μια τρίλιζα, πως ακριβώς θα έγγραφα δικό μου κώδικα σε J2SE,PHP,etc;;;;
Ο κάθε RTMP server έχει τη δική του γλώσσα, με την java να επικρατεί σε γενικές γραμμές (αν και υπάρχουν RTMP servers και σε php, ruby, python). Εδώ ένα tutorial για το πώς στήνεις το eclipse σε windows και γράφεις backend λογική σε red5 ο οποίος είναι σε java.

Κατά τα άλλα μιας και αναφέρθηκε οτι η php είναι "αργή", δεν είναι απαραίτητα πρόβλημα της γλώσσας. Αν περνάς τα δεδομένα με polling στον flash player τότε θα έχεις μεγάλη καθυστέρηση (αλλά είναι και εύκολο), αλλά μπορείς να χρησιμοποιήσεις sockets και να μη μπλέξεις με το πρωτόκολλο RTMP (και σαν backend να χρησιμοποιήσεις π.χ. nodejs ή και php). Βέβαια η php δεν προτείνεται για τέτοια δουλειά για πολλούς λόγους.

Ένα ωραίο βιβλίο για flash που διαπραγματεύεται με αυτά είναι το actionscript 3.0 cookbook, στο κεφάλαιο 24 μιλάει για socket programming και έχει και διάφορους άλλους τρόπους για το πώς ανταλλάζεις δεδομένα με τον flash player.

DeveloperGR
Δημοσιεύσεις: 67
Εγγραφή: 08 Νοέμ 2009 22:59

ενσωμάτωση flash με mysql για games

Δημοσίευση από DeveloperGR » 01 Μαρ 2011 02:00

Παλιότερα ειχα φτιάξει εναν Server σε J2SE ο οποιος έστελνε/λάμβανε packets στους clients όταν συνδέονταν, ήταν ενα απλό chat και έπαιξα με Sockets(NIO εαν θυμάμαι καλά που έχουν καλύτερο performance) και όχι με http Service(Request/Response). Σε αυτο είχα πλήρη έλεγχο του κώδικα και της λογικής που έγγραφα. Σε ενα RTMP έτοιμο Server υπάρχει τέτοια δυνατότητα δηλ;; Επίσης σε απόδοση τι ειναι καλύτερο;; Τα Sockets ή το RTMP(που φαντάζομαι κ αυτο με sockets θα παίζει λογικά) που ακούω 1η φορά να πω την αλήθεια ;;

Απάντηση

Επιστροφή στο “Flash γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 3 επισκέπτες