Ich habe vor kurzem beschlossen, eine Engine für ein Kartenspiel zu schreiben. Ich bin kein großer "Kartenspieler", aber ein Freund hat mich in das Spiel eingeführt (es ist eine Neuerung des dänischen Spiels), und ich habe mich verliebt.
Ich möchte das Spiel in 3 Segmenten entwickeln:
- Die Basis-Engine verwaltet Karten / Decks / Gamestate usw.
- Eine Benutzeroberfläche (in Form einer mobilen / Desktop-Webanwendung)
- Eine künstliche Intelligenz mit verschiedenen Strategien / Schwierigkeiten usw.
Ich denke, das sind sehr unterschiedliche Projekte ... und ich habe Probleme damit, zu sehen, wie sie auf lange Sicht alle zusammenpassen. Zuerst möchte ich nicht einmal in der Lage sein, das Spiel mit der Engine zu "spielen". Der Motor wird in erster Linie durch seine Unit-Tests getestet. Die Spieletests werden erst gestartet, wenn ein Client vorhanden ist. Hier besteht also eine Art Client-Server-Beziehung.
Der Motor ist ein sehr großer Teil des Puzzles. Was ich wissen möchte ist: Wie würden Sie die "öffentliche API" für diese Engine entwickeln?
Ich dachte, die Engine könnte ein sehr einfacher Webdienst sein, der seinen Status über Abfragen an eine RESTful-API zurückgibt, aber ich mache mir Sorgen, dass die Entwicklung der Engine selbst als Web-App zu schlechten Programmierentscheidungen führen könnte. (Wenn ich zum Beispiel ein MVC-Mikroframework wählen würde, hätte diese API keine wirklichen Ansichten ... sie gibt nur serialisierte Objekte über JSON zurück oder etwas in diesem Sinne. Ist es schlecht, MVC für einen Dienst wie zu verwenden? diese? )
Meine andere Idee war, dass die Engine nur eine Konsolen-App sein würde, und ich würde später eine Brücke schreiben, um Daten zwischen ihr und der Web-App zu leiten. (Die Brücke könnte wirklich alles sein. Ich meine, der Webserver und die Spiel-Engine könnten beide auf einem IRC-Server inaktiv sein und ihren Status in Kanälen teilen.)
Welchen Ansatz würden Sie wählen (als Webdienst entwickeln oder als eigenständige App entwickeln und später überbrücken) und warum?
Danke, Robbie.
EDIT: Also ich denke, das gehört in die Spieleentwicklung. Zur Verdeutlichung werde ich eine Kartenspiel-Engine schreiben. Ich versuche herauszufinden, wie die API der Engine am besten verfügbar gemacht werden kann, damit sie in Zukunft in einen Webclient und einen AI-Client integriert werden kann.
Ich hatte hier nicht einmal einen Account, also grüß dich :)