Frage von 2Pac2, 165

Mit welchen Programmiersprachen kann man eine App programmieren?

Habe vor ein 2D Spiel für iOS oder Android (wenn es geht beides) zu entwickeln. Jetzt frage ich mich mit welchen Programmiersprachen es möglich wäre und wieviele ich dafür benötige.

Hilfreichste Antwort - ausgezeichnet vom Fragesteller
von androhecker, 65

Wenn du eine fertige Engine willst, dann Unity mit Unityscript oder C#.

Wenn du es komplett selber machen willst, dann würde ich Java mit der Rendering Library libGDX empfehlen, damit hat man das Spiel von Android auch sehr schnell für PC und iOS portiert. (Für iOS mit RoboVM oder Intels Multi OS Engine)

Antwort
von kingbongo, 59

Das geht mit Unity und C# oder UnityScript als Programmiersprache und dann später für iOS und Android exportieren (macht Unity automatisch), darin kann man 2D Platformer entwicken nicht nur 3D Games. Gute Tutorials gibts auf YT zB von Hummelwalker


Antwort
von regex9, 66

Du hast mehrere Möglichkeiten, an dein Ziel zu gelangen. Du kannst eine native App entwickeln oder eine Web-App.

1. Native App

Für die Entwicklung würde dir Qt oder Java empfehlen. So kannst du beide Plattformen gleichzeitig bedienen. Es gibt jeweils Game-Engines wie V-Play oder libGDX, die eine gute Grundlage geben sollten.

Wenn du nur für iOS entwickeln möchtest, kannst du genauso auch Objective-C oder Swift verwenden.

Des Weiteren könntest du mit Unity3D oder der Unreal Engine ein Spiel kreieren und dann für die geeignete Zielplattform bauen lassen.

2. Web-App

In dem Fall würde dein Spiel über eine Webseite erreichbar sein, die auf dem mobilen Endgerät aufgerufen wird. Für Web-Applikationen eignen sich viele verschiedene Sprachen: ASP.NET, PHP, Python, Perl, Java, Ruby, usw.

Kommentar von androhecker ,

Seit wann ist libGDX eine Game Engine? Das ist eine 2d/3d Rendering Library.

Kommentar von regex9 ,

Seitdem Mario Zechner es als solche benannt hat und Basisfunktionalitäten wie Audio, Zustandsspeicherung, Physics, Grafik-Rendering und das Eingabe-Verhalten unterstützt werden.

Kommentar von androhecker ,

Dem ist eben nicht so, libGDX selbst übernimmt nur Rendering und bietet noch plattformunabhängige Interfaces für Input/Output an, das ist noch keine Engine, denn libGDX übernimmt keinerlei Spiellogik. Zur Engine wird es nur durch Addons wie Box2d, dann ist aber Box2d die Engine und nicht libGDX selbst.

Kommentar von regex9 ,

Die Spiellogik wird üblicherweise vom Nutzer einer Engine entworfen. Eine Engine stellt nur die Funktionalitäten zur Verfügung, die er dafür benötigen wird.

libGDX nutzt mehrere third party libraries um seine Funktionalitäten zur Verfügung zu stellen, das stimmt. Doch stellt es als Framework den Deckmantel dar.

Ich denke, die Entwickler von libGDX wissen besser als du, ob sie gerade eine Engine vor sich haben oder nicht. Wenn du das ignorieren möchtest, ist das deine Sache.

Kommentar von androhecker ,

Einfache Physik und die automatische Darstellung von Elementen bietet jede Engine an, Unity, Unreal Engine etc. Bei libGDX muss man die gesamte Welt selber implementieren, genauso wie das Rendering. libGDX ist hat große Ähnlichkeiten zu LWJGL (basiert ja auch darauf), das wird auch als Game Library bezeichnet.

Kommentar von regex9 ,

Eine Engine braucht nicht zwingend eine GUI wie Unity3D, die Grundfunktionalitäten reichen.

Interview mit Zechner:

https://libgdx.badlogicgames.com/downloads/interview_mario_zechner.pdf

Kommentar von androhecker ,

Ich habe auch nicht behauptet, dass ein GUI nötig ist. Es ist auch egal, was der Developer meint, libGDX fällt nicht unter den allg. Begriff Engine bzw Game Engine, wie zum Beispiel hier: https://de.wikipedia.org/wiki/Spiel-Engine. Auch wird nirgendwo libGDX als Engine außer in diesem Interview von Engine geredet, nur Game Development Framework, was es auch ist.

Kommentar von regex9 ,

Ein Framework, welches alle Funktionalitäten beinhaltet, die notwendig sind, um ein Spiel zu entwickeln, ist eine Game Engine.

Außerdem solltest du die Kompetenz eines Entwicklers nicht mit der eines Wikipedia-Artikels vergleichen, der nicht einmal mit hinreichend Belegen ausgestattet ist. ;)

Kommentar von androhecker ,

Es ist ziemlich schwach sich nur auf das Wort des Entwicklers zu verlassen. JMonkeyEngine ist eindeutig eine richtige Engine für Java, diese bietet eine fertige Implementation der Darstellung an und übernimmt auch großteile der Physik, was eben ausschlaggebend ist. libGDX bietet von diesen Funktionen, welche direkt das Spielverhalten beeinflussen nichts. Im Grunde genommen ist libGDX nur LWJGL auf höherem Level (mit Sprite Batches) und ist noch plattformunabhängig. LWJGL ist eindeutig keine Engine und libGDX damit auch nicht. Auch auf den LWJGL Seiten wird libGDX nicht als Engine gelistet, andere wie JMonkeyEngine jedoch schon.

Kommentar von regex9 ,

Komisch, hier steht es aber:

It is also used in popular game engines, like libGDX and jMonkeyEngine.

https://www.lwjgl.org/ (über dem Footer, im Abschnitt "Looking for LWJGL 2?")

Kommentar von androhecker ,

Hier wieder rum nicht: http://wiki.lwjgl.org/wiki/Game_Engines_and_Libraries_Using_LWJGL Man kann da viele Beispiele liefern, die Eigenschaften von libGDX sprechen aber eher dagegen.

Kommentar von regex9 ,

Es war klar, dass du dich nun wiederum gegen deine eigene benannte Quelle ("auf den LWJGL Seiten") stellst. 😄

Hör in Zukunft einfach auf, Dinge zu kritisieren, die bereits richtig sind oder zeige wenigstens den Willen, einmal dazuzulernen.Weiteres kannst du in meinen Kommentaren oben nochmal nachlesen. 😉

Kommentar von androhecker ,

Deine Vorstellungen einer Game Engine sind einfach nicht ganz richtig.

"Basisfunktionalitäten wie Audio, Zustandsspeicherung, Physics, Grafik-Rendering und das Eingabe-Verhalten"

Physik nur in dem Sinne, dass es in einem 2d/3d Raum angezeigt wird, Spiel Physik fehlt aber (Fallbeschleunigung, Bewegungen, etc). Genau so trifft das auch auf LWJGL zu, dass das aber keine Engine ist steht außer Frage.

"Ein Framework, welches alle Funktionalitäten beinhaltet, die notwendig sind, um ein Spiel zu entwickeln, ist eine Game Engine."

Auch nicht gerade eindeutig, demnach wären sogar Swing, JavaFX, Qt und GTK+ Game Engines.

Es fehlen einfach wichtige Eigenschaften. Eine Game Engine hat mindestens eine Rendering Engine und eine einfache Physik Engine, beides hat libGDX nicht und muss über echte Engines wie Box2d nachgerüstet werden. Man kann das ganze zwar etwas ausdehnen, dass libGDX halb unter den Begriff fällt, aber als vollwertige Engine geht es nicht durch.

Kommentar von androhecker ,

Das hier führt sowieso zu nichts, die Antwort verschwindet sogar schon aus meinem Verlauf...

Antwort
von wolfgang1956, 28

Mit den für iOS bzw. Android vorgesehenen Programmiersprachen:

iOS: Objective-C oder/und Swift

Android: Java

Antwort
von spriday, 64

iOS-Apps werden mit Objective C programmiert, Android-Apps mit C# bzw. Java.

Kommentar von Trytogetme ,
iOS-Apps werden mit Objective C programmiert, Android-Apps mit C# bzw. Java

sie WURDEN mit ObjectiveC programmiert 

Apple will jetz aber Swift durchdrücken http://www.apple.com/de/swift/

Kommentar von 2Pac2 ,

Und was ist mit VisualBadic ? Damit werden doch auch Android Apps programmiert ?

Kommentar von Trytogetme ,

Visual Basic für Android Apps....ehm nein. Oder meinst du Visual Studio?

Antwort
von Myrmiron, 56

Ich würde Java nehmen, da es Platformunabhängig und sowohl komplex als auch einsteigerfreundlich ist.


Kommentar von 2Pac2 ,

Kann ich mit Java auch Apps für iOS programmieren ?

Kommentar von Myrmiron ,

Leider keine Ahnung, Apple macht ja immer sein eigenes Ding.

Kommentar von getname ,

Nein kannst du nicht

Antwort
von TheCookieOfDoom, 75

Bevor du beginnst ne richtige App zu entwickeln, solltest du Gundlagen der Programmierung lernen. Beginne einfach mit Java/C++/Python

Und bitte Learning by Doing Hol dier die IDE Eclipse

Antwort
von LeCux, 57

Androidstudio, Xcode.

Daneben gibt es ein paar andere Multiplatformen wo mir gerade der Name entfallen ist.

Kommentar von LeCux ,

Könnte Phonegap gewesen sein.

Antwort
von capcarot, 37

Java für Android apps
Xcode für ios

Kommentar von rmnstr ,

Xcode ist die Entwicklungsumgebung. Die Sprachen sind Objective-C und Swift.

Kommentar von capcarot ,

Stimmt hast recht

Keine passende Antwort gefunden?

Fragen Sie die Community