C++-App, eventuell kostenpflichtig



  • Hallo,
    ich würde gerne ein kleines Spiel in C++ entwickeln. Eigentlich wollte ich Qt verwenden, da es sich um ein 2D-Spiel handelt, in welchem auch Videos abgespielt werden sollen (Phonon oder QtMultimedia).

    Jetzt habe ich mir aber überlegt, das Spiel am besten auch als App zur Verfügung zu stellen (auf Smartphones) und eventuell Geld dafür zu verlangen.
    Leider habe ich noch kaum/keine Ahnung davon.

    Soweit ich weiß, wäre es am besten die Anwendung einfach in Java zu entwickeln. Ich schätze mal, dass zumindest bei Android eine Java-API vorhanden ist. Allerdings gibt es dann das Spiel vermutlich nur für Android?

    Wenn ich Qt verwende, kann ich die App schlecht kostenpflichtig anbieten. Dafür müsste ich wohl eine (teure?) Qt-Lizenz erwerben. Außerdem hat Qt4 keinen Android-Support, aber gut ich kann auch Qt5 verwenden.

    Die GUI des Spiels wird vermutlich sehr einfach aufgebaut. Daher meine Frage: Gibt es ein Framework (am besten C++), mit welchem ich das Spiel einmal entwickeln kann und mit minimalem Aufwand auf die Smartphone-Betriebssysteme portieren kann (also z. B. auch iOS) und für das ich keine Lizenzkosten bezahlen muss?

    Eigentlich bin ich für Open Source, aber wenn man den Quell-Code des Spiels anbietet, kauft es vermutlich keiner mehr oder?

    Sollte ich überhaupt C++ verwenden und hat jemand Erfahrung mit dem Anbieten von Apps? Ist das kompliziert, muss man Gebühren bezahlen? Darf ich überhaupt eine App einfach so kostenpflichtig anbieten und gibt es Plattformen, welche die Anwendung auch für den PC kostenpflichtig anbieten (Steam?)? Ich möchte wirklich möglichst viele Plattformen erreichen, aber eben mit minimalem Aufwand.

    Bevor ihr mich jetzt runtermacht: Ich würde gerne mit dem Erlös der App ein weiteres Projekt finanzieren. Sprich Crowdfunding wäre auch eine Möglichkeit.



  • Du kannst Qt auch in der opensource variante für Android/iOS Apps verwenden
    siehe: https://wiki.qt.io/Licensing-talk-about-mobile-platforms



  • Du könntest es natürlich auch eine HTML5 Anwendung erstellen und eine Game Engine einsetzen, wie http://phaser.io/

    Allerdings wird das dann JavaScript sein ... und der Code sieht dann jeder im Browser. (Hier kannst Du nur den Code unkenntlich machen.)

    Sonst würde ich zusätzlich mal prüfen ob Unity oder ähnliche Game Engines nicht zufällig für Deinen Anwendungsfall gibt. Evtl. sparst Du Dir dann viel Schreibarbeit.



  • Hallo, danke für die Antworten. Wenn ich die Anwendung kostenpflichtig anbieten will, ist JavaScript auf dem Client eher schlecht. Eigentlich wollte ich wissen, wie teuer es mit Qt wäre und wie schnell man es auf Android zum Laufen bekommt. Außerdem wäre interessant wie aufwendig das Anbieten in einem App-Shop ist. Ich bin der einzige Entwickler.

    Ist es z. B. mit Java oder Gtk eher möglich das Ganze kommerziell anzubieten?

    HTML5 würde ja auch bedeuten, dass der Code sichtbar ist.

    Neben dem Quellcode ist natürlich auch der Inhalt (Grafiken, Sound usw.) geschützter Inhalt.

    edit:
    Weitere Fragen hätte ich bezüglich Video- und Audio-Codecs. Bei Videos hätte ich an MKV und Theora gedacht, bei Audio an OGG. Damit würden Lizenzgebühren entfallen?



  • Für eine portable App mit UI hätte ich auch HTML 5 gesagt. Es gibt die Möglichkeit Browser + HTML 5 Content in eine App zu gießen, die dann Standalone läuft. So sieht man nicht das es sich um eine Webapp handelt und kommt auch nicht direkt auf den Quellcode. Mehr Schutz bieten in Java oder mit Unity entwickelte Apps auch nicht wirklich.

    Unity wäre die Wahl wenn es doch mehr richtung Game geht. Vorteil ist auch, dass es bereits Anbindungen für Dienste verschiedener Plattformen gibt (z.B. inApp Käufe oder GameCenter).

    Du wirst aber nicht darum herum kommen dir die Details der Plattformen durchzulesen. Gerade für iOS ist der ganze Prozess mit Developer Program, Zertifikate und die Anforderungen die an die App gestellt werden beim ersten Mal ziemlich aufwändig. Abgesehen davon das du dafür Zugriff auf einen Mac + iOS Gerät brauchst.

    Was Gebühren angeht, sind es meistens grundsätzlich 30% der Einnahmen. Dazu kommt dann z.B. noch sowas wie 25€ einmalig bei Android oder 99€/Jahr bei iOS.

    Was Videos angeht ist iOS sehr restriktive. Von Haus aus geht da nur H264 und MPEG-4 (siehe https://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/index.html). Für Theora gibt es zwar eine Lib die auch unter iOS laufen soll, die müsste man dann aber selber anbinden etc.



  • Eigentlich wollte ich wissen, wie teuer es mit Qt wäre und wie schnell man es auf Android zum Laufen bekommt.

    Glaub Qt ist gar nicht so das Problem ...
    Qt steht unter LGPL, glaub auch unter Android, ... d.h. du darfst die Bib linken, ohne selber Code veröffentlichen zu muessen. Das Geschäftsmodell ist auch egal. Bedingung ist nur das Du dynamisch linkst, den QT code nicht veränderst, und den License Text der Qt veröffentlichst, anhängst ... etc.

    Android:
    Problem ist eher die direkte Abhängigkeit zur gnu c++ runtime lib (libstdc++). Welche unter GPLv3 steht, und bei verwendung (linken und header includes) zu einer GPL kompatiblen License zwingt.

    Unity kenn ich mich auch nicht so aus ... weiß ich nur das die License erst zuschlägt, wenn du erfolgreich bist (Desktop) ^^ Für Mobile Plattforms (IOS + Android) musst aber IMHO gleich Addons kostenpflichtig lizensieren. Ist mit Qt aber eh ned zu vergleichen, 2D vs. 3D library ...

    Das ist keine Rechtsauskunft, und ich bin mir auch nicht sicher ob alles so stimmt / akutell ist. Also nicht drauf verlassen sondern selber nochmal nachlesen !!!

    Ciao ...



  • RHBaum schrieb:

    Android:
    Problem ist eher die direkte Abhängigkeit zur gnu c++ runtime lib (libstdc++). Welche unter GPLv3 steht, und bei verwendung (linken und header includes) zu einer GPL kompatiblen License zwingt.

    Woher hast du das? Wenn das der Fall wäre dann würde es überhaupt keine komerziellen closed source programme (in c++ geschrieben) für Linux geben.
    Die lizenz für die lib enthält eine exception:
    https://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.license.what



  • Oh, stimmt, hasst recht, mittlerweile gibts ne umfassende Ausnahme ....

    No. The special exception permits use of the library in proprietary applications.

    Wie gesagt, selber lesen ... ^^
    Dacht eben grad bei Android das die ne eigene/andere standard lib mitbringen und das da was wegen licensegründen war ....

    Wenn das der Fall wäre dann würde es überhaupt keine komerziellen closed source programme (in c++ geschrieben) für Linux geben

    gibt doch nicht nur eine standard c++ library.
    Wenn mal auf nen "Rolling Release" basierten Linux System schaust, ist da sicher auch nicht nur eine std c++ lib drauf oder ?

    Auf meiner aktuellen Spielkiste (nvidia plattform) hier z.b. ist nen Ubuntu 14.04 , gcc 4.8, und mehrere libc++ irgendwas ^^ und die mitgelieferte Entwicklungsumgebung nutzt zwar den gcc (meldet sich auch als gcc und nicht als llvm), aber nicht die gnu c++ lib ...

    Ciao ...



  • Danke für die Antworten. Also das bei Android und iOS mit den Gebühren habe ich bereits gelesen.
    Aus diesem Grund würde iOS erstmal wegfallen, auch weil ich kein IPhone besitze und Android die meistgenutzte Plattform ist. Außerdem war die Arbeit Qt auf Android zum Laufen zu bringen schon mehr als gedacht. Allerdings habe ich auch gehört, dass IPhone-Nutzer eher bereit sind Geld zu bezahlen.

    Ich denke eine Web-App wäre besser gewesen bzw. dann eben verpackt, aber da ich mit Qt schon mehr Erfahrungen hatte, habe ich Qt gewählt.

    Die Anwendung sieht leider auf Android noch entsprechend unschön aus, auch scheint Qt auf Android nicht automatisch das Layout anzupassen, wenn man z. B. das Phone dreht (im Emulator).
    Ein weiteres Problem ist das Abspielen von Videos, das angeblich nur in QML auf Android geht. Ich habe ein QML-Skript dynamisch in C++ geladen, aber auch hier geht nur der Ton. Der Videocodec wird als unterstützt aufgelistet (auf der offiziellen Android-Seite).

    Was die C++ stdlib angeht muss ich noch mal nachsehen. Würde Clang z. B. gehen? Ich schätze mal, der hat auch seine eigene Lib? Ansonsten, wenn diese Ausnahme existiert sollte das ja gehen. Bedenken habe ich noch bei dem CMake-Modul, das meine Qt-App per Java lädt. Der generierte Java-Code ist minimal aber eben vom Modul vorgegeben.

    Jetzt noch mal zur Frage der eigentlichen Finanzierung. Eigentlich geht es ja nur darum, dass unser Spiel eventuell finanziell gefördert wird.
    Die Anwendung gibt es natürlich auch unter Linux und Windows. Hier würde nun Steam in Frage kommen, aber ich glaube auch da sind die Gebühren relativ hoch.

    Vielleicht wäre ein anderes Finanzierungsmodell, z. B. über freiwillige Spenden, doch besser. Dann könnte die Anwendung doch Open Source sein und man könnte z. B. über die App über einen Button zur Spendenseite gelangen. Da kenne ich mich aber ebenfalls kaum aus. Es gibt ja auch Crowdfundingseiten, aber lohnen die sich überhaupt?



  • Ist das Spiel so gut, dass es jemand kaufen will? Das bezweifle ich doch irgendwie. Es ist schon sehr unwahrscheinlich, einfach so mal irgendwas zu schreiben, dass andere dann kaufen. Die Konkurrenz ist riesig und du musst es erstmal schaffen, überhaupt mal in eine Top 10 Liste zu kommen, damit dich überhaupt jemand wahrnimmt, geschweige denn deine App kauft. Schau dir mal die Verkaufszahlen anderer Apps und Spiele für Android an, kaum jemand gibt Geld dafür aus (ja, bei Apple schauts etwas anders aus). Paar der besten/bekanntesten Spiele mit zig Millionen Downloads haben vielleicht ein bisschen was verdient, alles andere ist kostenlos.



  • Na ja deshalb wäre vielleicht ein freiwilliger Spendenservice besser.

    Dann kann man das Spiel erstmal spielen und wenn man Lust hat spenden.


  • Mod

    Du willst Geld für ein Spiel?
    Investier in eine gut gemachte Kickstarter Kampagne, evtl. wirds was.

    Ob Qt/QML die ideale Wahl für Spiele ist, ist wohl eine andere Frage. Bisher habe ich nicht wirklich viele Spiele gesehen, welche auf QML basieren. Auch die Qt company ist mir bisher in diesem Bereich nicht aufgefallen, dass sie dies als Option besonders promoten.



  • nehme SDL das hat Support für alle Plattformen die du benötigst und ist für Spiele und Multimedia Anwendungen gedacht https://www.libsdl.org/.


Log in to reply