Hallo,
Flash ist hierfür eine mögliche Option, jedoch würde ich mich an deiner Stelle auf Spieleentwicklung in HTML5 spezialisieren.
Warum?
Mobile Geräte haben kein Flash, HTML5 schon.
Damit kannst du also direkt auf alle Plattformen entwickeln, und hast ein Browsergame was jederzeit von überall gespielt werden.
Grafisch lässt sich damit eine Menge machen.
Von CSS3 Animation über Canvas bis letzendlich WebGL (3D) hast du eine Vielfallt technischer Möglichkeiten, das Spiel grafisch darzustellen. Nur bei WebGL würde ich nicht so scharf darauf sein, da es sehr in den Kinderschuhen ist. Jedoch gibt es gleichermaßen für Canvas (2D grafik) und auch WebGL eine Handvoll guter Frameworks, wie etwa KineticJS, Three.js usw.
Der Nachteil ist jedoch eine weit aus größere Spanne an Performance deines Endgerätes als bei Flash. Bei Flash gilt heutzutage eher "gibts, oder gibts nicht", und wenn es vorhanden ist, laufen die Flashprojekte halbwegs gleich perfomant (im Vergleich zu HTML5)
Bei HTML5 hast du halt kompakte Smartphones mit wenig Leistung bis hin zu Schlachtschiffen mit zig Kernen, viel RAM usw.
Nicht zuletzt sei erwähnt, dass der Browser auch eine große Rolle spielt, denn was bei Flash ActionScript ist, ist bei HTML5 JavaScript. Und jenes arbeitet in verschiedenen Browsern verschieden gut.
Die Wahl des Backends "kann" PHP sein, muss es aber nicht. Insbesondere bei Socketentwicklungen (sprich Spielgeschehen für viele Spieler gleichzeitig synchronisieren) macht PHP nicht mehr mit.
Hier empfehle ich dir dich mit Node.JS (serverseitiges, mächtiges JavaScript) auseinander zu setzen, da du praktischerweise Front- und Backend in einer Sprache entwickeln kannst.
Fazit: Du willst grafische Browsergames entwickeln, die man morgen noch spielt? Setzt auf HTML5 und Node.js, damit hast du eine solide Grundlage für plattformunabhängige Spiele im Browser.
Gruß