Wir planen die Entwicklung eines 2D-Puzzlespiels auf Gitterbasis, und obwohl es noch sehr früh in der Planungsphase ist, möchten wir unsere Entscheidungen von Anfang an gut treffen.
Unsere Strategie wird darin bestehen, das Spiel so vielen Plattformen wie möglich zur Verfügung zu stellen, beispielsweise PCs (Windows, Mac und / oder Linux), Mobiltelefonen (iPhone und / oder Android-basierte Telefone), Spielekonsolen (XBLA und / oder PSN). PC wird einen Schwerpunkt haben, aber ich glaube, das ist die flexibelste Plattform, so dass dies kein Problem sein sollte.
Welche Programmiersprache, Spiel-Engine, Frameworks und Allround-Tools sind für unser Ziel am besten geeignet?
PS: Ich wette, dass eine Reihe von Tools nicht ALLE von ihnen abdeckt und dass es für einige Plattformen immer noch eine Art "Übersetzungsaufwand" geben wird, aber wir möchten gerne wissen, welche am weitesten reichen.
quelle
Antworten:
Wir haben ein dickes C ++ - Framework auf einer dünnen Plattformschicht, auch C ++. Beim Portieren eines Spiels auf eine neue Plattform muss eine neue Plattformebene implementiert werden, die sehr schnell und schnell ausgeführt werden kann.
Alle unsere Abhängigkeiten sind Open Source- und plattformübergreifende Bibliotheken wie SDL, Ogg, LibPNG usw.
Zum Beispiel haben wir eine Win32 / DirectX-Plattform, eine SDL / OpenGL-Plattform für Linux und Mac, die auf einer iOS-Plattform für iPhone / iPad arbeitet, und ein Android-Port wäre ebenfalls möglich. Für einige Zeit hatten wir eine Playground-Plattform, was bedeutet, dass unser Framework auf der Playground-Engine von PlayFirst lief. Mit diesem mehrschichtigen Ansatz können Sie jede Schnittstelle zur zugrunde liegenden Hardware / zum zugrunde liegenden Betriebssystem nutzen. Solange Sie ein strukturiertes Quad zeichnen, Eingaben erhalten und einen Sound abspielen können, sind Sie ziemlich fertig.
Ich werde dafür in Flammen stehen, aber C ++ ist wahrscheinlich die plattformübergreifendste Sprache, die es gibt. Jede Architektur und jedes Betriebssystem verfügt höchstwahrscheinlich über einen C ++ - Compiler, oder gcc kann darauf portiert werden.
quelle
Verwenden Sie einfach Unity
quelle
Ich habe gerade vor ein paar Tagen in einer anderen Frage von NME erfahren und dachte, es könnte sich lohnen, das Wort zu verbreiten. Zum Thema Multi-Plattform-Support heißt es auf der Titelseite:
Ich habe es noch nicht persönlich getestet, aber es hat mich aus vielen Gründen als interessant empfunden:
Ich habe im Moment nicht viel Zeit, es zu versuchen. Wenn es jemand tut, wäre es hilfreich, wenn Sie ein Feedback dazu hinterlassen könnten.
quelle
Nun, das hängt davon ab, können Sie in C / C ++, Obj-C und C # programmieren?
Unity3D ist die beste 1-Größe für alle, aber 2D-Spiele können etwas schwierig sein (für ein 2D-Spiel sowieso).
Wenn Sie mit XNA (auch bekannt als Indie-Store) auf die Xbox abzielen, müssen Sie C # verwenden. Aber Sie können C # nicht wirklich mit iOS verwenden (außer mit Unity). Während Sie C / C ++ für iOS verwenden können, müssen Sie immer noch ein wenig Obj-C verwenden, es sei denn, Sie verwenden eine Art Middleware.
Wenn Sie keine Engine verwenden, ist es meiner Meinung nach am besten, eine eigene Abstraktionsebene zu schreiben. Damit alle Aufrufe Ihrer Bibliothek diese mittlere Ebene durchlaufen müssen, müssen Sie beim Portieren nur die Implementierung der Abstraktionsschicht ändern, und Ihr Spielcode ist mehr oder weniger intakt.
quelle
Andere Antworten haben Tools und Sprachen ziemlich gut behandelt, aber auf der Grafikseite würde ich definitiv empfehlen, Ihre (2D-) Grafiken in einem Vektorformat zu erstellen und sicherzustellen, dass sie bei kleinen und großen Größen gut aussehen. Zu viele Details werden schlecht verkleinert, zu wenig Details werden schlecht vergrößert.
quelle
Moai SDK ist ein Open Source Framework und kann derzeit auf Android, IOS und Chrome veröffentlichen. Moai kann je nach Ihren Fähigkeiten und Kenntnissen in diesen Bereichen auf Hosts wie Spielekonsolen ausgedehnt werden.
quelle
Ich würde sagen, Ihre beste Sprachwahl wäre c #. Sie können es verwenden, um in Unity für eine Reihe von Plattformen zu entwickeln. c # ist auch die Sprache, die in MonoTouch (für die Entwicklung für iOS) und MondoDroid (noch nicht verfügbar, aber für die Ausrichtung auf Android-Plattformen) verwendet wird. Und natürlich kann c # in XNA verwendet werden, mit dem Sie auf XBOX 360- und Windows-Telefone abzielen können.
Das deckt so ziemlich alles ab. Es wird noch viel zu tun geben, da Sie verschiedene Tools zum Bearbeiten von Spielinhalten verwenden, aber Ihre Kernspiellogik sollte sich nicht ändern müssen, wenn alles in c # ist.
Oh, und natürlich wird in Silverlight c # verwendet, mit dem Sie auch auf das Web abzielen können.
quelle
Schritt eins sollte wahrscheinlich darin bestehen, das Spiel, zumindest einen anständigen Prototyp, mit Ihren bevorzugten Tools / Technologien für eine einzelne Plattform (oder eine kleine Anzahl von Plattformen) zu erstellen.
Es ist sehr einfach, sich in plattformübergreifenden Tools / Tech-Entwicklungen zu verlieren. Sich zu sehr auf plattformübergreifende Aktivitäten zu konzentrieren, bevor man ein Spiel hat, ist wie eine vorzeitige Optimierung. Es lohnt sich auf jeden Fall, früh darüber nachzudenken, aber verbringen Sie nicht Ihre ganze Zeit damit, bis Sie tatsächlich ein Spiel haben.
Der Versuch, jede Plattform zu unterstützen, bevor man weiß, ob das Spiel ein Erfolg wird, klingt nach einer Strategie mit hohem Risiko - insbesondere, wenn es sich um ein einfaches Low-Budget-Spiel handelt (bei dem die Kosten für die Entwicklung plattformübergreifender Systeme die Kosten für die Entwicklung des Spiels massiv überwiegen könnten selbst?).
Wäre es nicht sinnvoll, es auf einer kleinen Anzahl von Plattformen zu starten, zu sehen, wie gut es funktioniert, und festzustellen, ob es sich lohnt, die anspruchsvolleren Plattformen zu unterstützen (z. B. weniger leistungsfähige Systeme, solche mit umständlichen Eingabegeräten oder solche, die eine vollständige Plattform benötigen) Port nach C # oder Java)
quelle
Ich weiß, dass es unbeliebt ist, aber AS3 mit Starling könnte Ihre Antwort für Mobile, Desktop und Web sein. Es ist atemberaubend und funktioniert auf überraschende Weise. Ich habe ein iOS-Kinect-Spiel gemacht, das auch unter Windows und Android lief. Es gab nichts anderes, das die Rechenanforderungen erfüllen konnte, und es war diese plattformübergreifende. Außerdem können Sie beliebige Arduino-Projekte nahtlos einbinden. Die meisten Leute haben einfach nicht bemerkt, was Adobe in letzter Zeit mit den Flash / Flash Builder-Tools gemacht hat ....
quelle
Flash und Java werden sehr häufig unterstützt. Sie funktionieren auf allen PCs (mehr oder weniger) und auf vielen mobilen Geräten (mehr oder weniger), und ich bin sicher, dass sie ungefähr so einfach auf eine Konsole portiert werden können wie jedes andere Projekt mit PC-Einfluss.
quelle