1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Spiele programmiersprache

  • Alpha_omega
  • 3. Mai 2011 um 20:06
  • Unerledigt
  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 3. Mai 2011 um 20:06
    • #1

    Hallo,

    Ich habe bereits in Java, 3D Spiele (wie kleine Egoshooter), und in C (nicht C++!), Spiele wie Snake programmiert.
    Allerdings stoße ich bei beiden auf ein Problem!
    Java.) - 'Clean but Slow' (Auserdem ist Java bei Spielen auch EXTREM Fehleranfällig)
    + Platformunabhängig

    C .) - C ist eine REINE Textkonsole, und daher EXTREM schlecht für Spiele.
    + C ist 'Fast but Dirty' daher ist C (wenn man es nicht perfekt beherscht) generell Fehleranfällig.

    Daher jetzt meine Frage:
    Welche Programmiersprache ist die am allergeeignetsten Sprache für 3D-Spiele?

  • Zaru
    8
    Zaru
    Mitglied
    Reaktionen
    12
    Punkte
    592
    Beiträge
    116
    • 3. Mai 2011 um 20:19
    • #2

    C++ hat sich vom "Markanteil" her eingebürgert - Nicht zwangsweise weil es die beste Wahl ist, der Erfahrungsschatz und verfügbares Zeug dazu ist einfach enorm. Historisch gewachsen. Es ist halt auch dieser Mittelweg zwischen Java und C.

    Es gibt auch so Sachen wie XNA, die direkt auf Spieleentwicklung getrimmt sind (im Microsoft-Bereich, wohlgemerkt)

  • freiBär
    8
    freiBär
    Mitglied
    Reaktionen
    47
    Punkte
    687
    Beiträge
    124
    • 3. Mai 2011 um 20:28
    • #3
    Zitat von Alpha_omega

    Hallo,

    Ich habe bereits in Java, 3D Spiele (wie kleine Egoshooter), und in C (nicht C++!), Spiele wie Snake programmiert.
    Allerdings stoße ich bei beiden auf ein Problem!
    Java.) - 'Clean but Slow' (Auserdem ist Java bei Spielen auch EXTREM Fehleranfällig)
    + Platformunabhängig

    C .) - C ist eine REINE Textkonsole, und daher EXTREM schlecht für Spiele.
    + C ist 'Fast but Dirty' daher ist C (wenn man es nicht perfekt beherscht) generell Fehleranfällig.

    Daher jetzt meine Frage:
    Welche Programmiersprache ist die am allergeeignetsten Sprache für 3D-Spiele?

    Alles anzeigen

    Deine Aussagen würd ich nicht unterschreiben ;). Fehleranfälligkeit liegt definitiv nicht an Java, sondern am Programmierer. Das könnte man maximal über C /C++ sagen, wenn man sich mit Speicherverwaltung nicht auskennt. C ist auch keine Textkonsole, sondern eine Programmiersprache. Es gibt einen Haufen von Frameworks für C/C++, mit denen du 3D Spiele entwickeln kannst. Zudem ist C++ nur eine Erweiterung von C, die sich auf verschiedene Paradigmen (zB Objektorientierung) stützt. C++ ist seit Jahren Standard für 3D Spiele, wobei ich auch schon welche in C# (sehr ähnlich zu Java) gesehen hab. Mittlerweile gibts auch schon genug OpenGL Framworks für Java und C#, mit denen sich 3D Spiele entwickeln lassen. Wenn du aber auf Performance aus bist, würd ich die aber nicht besonders empfehlen.

    edit: Übrigens is das doch recht bekannte Minecraft in Java geschrieben.

    Why?... Because we can take it. We are not heroes, we just love science. We are silent guardians, watchful protectors of knowledge. We are dark knights (sometimes in white labcoats).

    freiBär für alle!
    https://twitter.com/freiBaer

  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 3. Mai 2011 um 20:30
    • #4

    ok, danke für deine Hilfe.
    Könntest du mir da eine besondere Programmieroberfläche (muss natürlich gratis sein) empfehlen?
    Habe schon Erfahrung mit Code::Blocks und DevC++.
    Hätte zwar auch (von der Schule aus) MS Visual Studio zur verfügung, aber die Oberfläche ist nicht so mein Ding.

    Zitat

    Das könnte man maximal über C /C++ sagen, wenn man sich mit Speicherverwaltung nicht auskennt



    Und da liegt auch noch ein Problem:
    Wir lernen größtenteils C nur als Einstieg in die Programmierung und lernen daher auch nur mit Text zu arbeiten,
    Werte zu berechnen etc...
    Und in C vorallem auch die Grundkenntnisse wie z.B. Strings, Arrays, natürlich auch Schliefen, Funktionen, usw...
    Also heißt das soviel wie das wir in C die programmierung extrem Oberflächlich machen.

    Und mitlerweile funktioniert bei mir "3D-Java" auch nichtmehr so gut,
    weil mitlerweile keine vernünftigen *.jar Files von JMonkeyEngine mehr erstellt werden.
    Unser Schwerpunkt liegt auf Java.

    Zitat

    Fehleranfälligkeit liegt definitiv nicht an Java, sondern am Programmierer



    Mit der Fehleranfälligkeit meine ich auch auch nicht direkt Java, sonder vieleher die Systemverträglichkeit.
    Der Thread "Fehler beim Wasser" ist auch von mir und der liegt nicht an der Programmierung sondern
    eher an der "Verträglichkeit zur Hardware" bzw der der Treiber.
    und ich persöhnlich finde einfach z.B. C++ schöner zum Spieleprogrammieren, weil Java bei meinen Treibern
    nicht all zu gut "ankommt".

    Und mitlerweile funktioniert bei mir "3D-Java" generell nichtmehr so gut.

    5 Mal editiert, zuletzt von Alpha_omega (3. Mai 2011 um 20:50)

  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 3. Mai 2011 um 20:55
    • #5

    Also würdet ihr mir C++ empfehlen?
    Und...
    Welche Oberfläche wäre dafür perfekt geeignet? (die Oberfläche muss gratis sein)

  • Apfelsaft
    14
    Apfelsaft
    Mitglied
    Reaktionen
    84
    Punkte
    2.049
    Beiträge
    365
    • 3. Mai 2011 um 20:56
    • #6

    Wenn bei euch in der Schule der Schwerpunkt auf Java liegt würde ich einfach vorerst dabei bleiben. Es spricht nichts dagegen ein Spiel in Java zu programmieren. Bei der Performance hat man zwar ein paar Einschränkungen, aber wenn du nicht gerade Far Cry 3 programmieren willst dürfte dich das nicht all zu stark einschränken. Außerdem lernst du dann gleich wie du deinen Code ordentlich optimierst. Später, wenn du mehr Erfahrung mit Programmierung hast dürfte es nicht all zu schwer fallen auf eine andere Sprache wie z.B. C++ umzusteigen. Wenn du dich für Java entscheidest würde ich dir aber empfehlen nicht Java3D sondern OpenGL Bindings wie LWJGL (wird auch beim weiter oben erwähnten Minecraft verwendet) oder JOGL zu verwenden.

    Aus 100% Apfelsaftkonzentrat. Kann Spuren von Nüssen enthalten.

  • polymorph10
    5
    polymorph10
    Mitglied
    Reaktionen
    20
    Punkte
    270
    Beiträge
    50
    • 3. Mai 2011 um 20:56
    • #7
    Zitat von freiBär

    ...Das könnte man maximal über C /C++ sagen, wenn man sich mit Speicherverwaltung nicht auskennt.


    Dazu fällt mir folgendes ein, was ich vor Ewigkeiten mal gelesen hab, wens interessiert: http://www.mistybeach.com/articles/WhyID…geProjects.html

  • freiBär
    8
    freiBär
    Mitglied
    Reaktionen
    47
    Punkte
    687
    Beiträge
    124
    • 3. Mai 2011 um 21:52
    • #8
    Zitat von polymorph10

    Dazu fällt mir folgendes ein, was ich vor Ewigkeiten mal gelesen hab, wens interessiert: http://www.mistybeach.com/articles/WhyID…geProjects.html



    Ok, da muss ich dir recht geben. Meine letzten Arbeiten in C++ liegen schon ca. 5 Jahre zurück. Vielleicht hab ichs ein wenig zu stark vereinfacht :winking_face:

    Why?... Because we can take it. We are not heroes, we just love science. We are silent guardians, watchful protectors of knowledge. We are dark knights (sometimes in white labcoats).

    freiBär für alle!
    https://twitter.com/freiBaer

  • Nudel
    3
    Nudel
    Mitglied
    Reaktionen
    3
    Punkte
    53
    Beiträge
    9
    • 4. Mai 2011 um 09:37
    • #9

    Javascript mit Canvas und WebGL. o/
    Im ernst, ich hab mir zumindest mal das Canvas Element angesehen und bin begeistert davon. Man kann sehr schnell was auf die Beine stellen und das debuggen war eine regelrechte Freude. Nachteile gibts aber auch genug:
    - keine Operatorüberladung. Sehr ungut für Vektor und Matrizenrechnungen. (Ich warte sehnsüchtigst darauf, dass jemand in Javascript einen Javascript Parser schreibt, der Operatorüberladung einführt)
    - Bilder können nur asynchron geladen werden.
    - keine Methodenüberladung. Auch Käse.
    - Keine Gamepads. Javascript erkennt nur Tastatur und Maus.
    - Abspielen von Sounds ist auch nicht so trivial.

    Nimm halt wasauchimmer dir liegt und für deine Vorhaben ausreichend ist.

  • Adok
    20
    Adok
    Mitglied
    Reaktionen
    49
    Punkte
    4.199
    Beiträge
    714
    • 4. Mai 2011 um 11:44
    • #10

    Auf meiner Homepage findest du ein paar Spiele, die ich in den letzten Jahren programmiert habe. Die meisten davon habe ich in C++ geschrieben, wobei ich für die Grafik OpenGL verwendet habe. Meiner Meinung nach ist das eine gute Kombination. C++ ist eine relativ leicht zu erlernende und absolut mächtige Programmiersprache, für die es Compiler gibt, die sehr effizienten Code erzeugen. Mit IDEs wie Microsoft Visual Studio gestaltet sich das Programmieren sehr angenehm. OpenGL ist besonders einfach zu erlernen, und man kann damit sowohl 2D- wie auch 3D-Grafik erzeugen, ohne sich erst mit den der 3D-Projektion zu Grunde liegenden mathematischen Formeln herumschlagen zu müssen.

    Eines der Spiele auf meiner Homepage habe ich mit C# und XNA Game Studio entwickelt. XNA Game Studio ist ein Framework, das vor allem für Anfänger sehr gut geeignet ist, weil es einem bei gewissen Routinearbeiten hilft. Es gibt einen vordefinierten Game Loop, die Methoden Draw, Update etc. werden in einem bestimmten periodischen Abstand in vordefinierter Reihenfolge aufgerufen - um diese Sachen muss man sich also nicht mehr kümmern. Man muss die Methoden nur mehr mit Inhalt befüllen. Wie gesagt, ist das für Anfänger sehr hilfreich, aber wenn man ein bisschen Erfahrung in der Spieleprogrammierung hat, kann man ohne weiteres auf C++ und OpenGL umsteigen. Denn alles, was XNA einem abnimmt, kann man auch selbst implementieren - es ist halt mit etwas höherem Aufwand verbunden.

    Ein Tutorial, das ich zum Thema XNA geschrieben habe, findest du ebenfalls auf meiner Homepage.

  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 4. Mai 2011 um 13:19
    • #11

    Könnte mir bitte jemand eine Liste mit Vor- und Nachteilen von DirektX und OpenGL auflisten?
    Wäre echt nett.

  • Archonius
    4
    Archonius
    Mitglied
    Punkte
    125
    Beiträge
    25
    • 4. Mai 2011 um 15:07
    • #12

    DirectX ist Windows only, OpenGL ist relativ Plattformunabhängig. DirectX enthält mehrere Komponenten die für Spiele nützlich sind, OpenGL ist daher eher mit DirectX Graphics vergleichbar. OpenGL steht bei Spielen noch etwas Abseits, meinen Beobachtungen nach dauert es auch meistens länger bis neue Funktionen in OpenGL einzug finden als in DirectX. Was besonders schade ist, ist das ATI/AMD-Treiber sich manchmal etwas schwer mit OpenGL tun (wie bspw. in deinem anderen Thread) obwohl sie es eigentlich Unterstützen.

    "Erfahrungen sammeln heißt Fehler begehen." - Herbert George Wells

  • Alpha_omega
    3
    Alpha_omega
    Mitglied
    Punkte
    90
    Beiträge
    15
    • 4. Mai 2011 um 16:36
    • #13

    ok,
    und is das mit den Treibern nur bei ATI/AMD-Treibern?
    Oder tritt der Fehler auch bei anderen Grafikkarten auf?

  • Archonius
    4
    Archonius
    Mitglied
    Punkte
    125
    Beiträge
    25
    • 4. Mai 2011 um 20:18
    • #14

    Also ich würde jetzt nicht sagen das alle anderen fehlerfrei sind, aber die meisten & häufigsten Probleme gibt es mit den ATI/AMD-Treibern.

    "Erfahrungen sammeln heißt Fehler begehen." - Herbert George Wells

  • Wings-of-Glory
    28
    Wings-of-Glory
    Mitglied
    Reaktionen
    105
    Punkte
    8.305
    Beiträge
    1.573
    • 4. Mai 2011 um 23:37
    • #15

    nicht die programmiersprache ist ausschlaggebend, sondern die gameengine oder das framework.
    du kannst ja mal mit unity3d beginnen, wenn du magst. kannst dann wahlweise in c#, javascript und boo programmieren.

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • _Linuxhippy
    6
    _Linuxhippy
    Mitglied
    Reaktionen
    1
    Punkte
    376
    Beiträge
    64
    • 14. Mai 2011 um 21:36
    • #16
    Zitat von Alpha_omega

    ok, danke für deine Hilfe.
    Der Thread "Fehler beim Wasser" ist auch von mir und der liegt nicht an der Programmierung sondern
    eher an der "Verträglichkeit zur Hardware" bzw der der Treiber.
    und ich persöhnlich finde einfach z.B. C++ schöner zum Spieleprogrammieren, weil Java bei meinen Treibern
    nicht all zu gut "ankommt".



    Hmm, deine Treiber wissen doch überhaupt nicht in welcher Sprache dein Spiel geschrieben ist.

    - Clemens

    To avoid horrible confusion, please pronounce the G in the word GNU when it is the name of this project.

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Tags

  • java
  • programmiersprache
  • spieleprogrammierung

Rechtliches

Impressum

Datenschutzerklärung