Seite 2 von 2 ErsteErste 12
Ergebnis 21 bis 33 von 33

Thema: Programmiersprache für games

  1. #21
    Eine ganz gute Möglichkeit, sich in das Skripten hineinzusteigern, wären Spiele wie "Clonk" oder "The Battle for Wesnoth". Sie besitzen eine einfache Skriptsprache und viele Skriptbeispiele, aus dessen Teilen man das gewünschte Produkt erzielen kann. Und irgendwann kann man sich an fortgeschrittenere Möglichkeiten und Skriptsprachen hineinwagen und diese sogar einbinden.
    Diese Methode zeigt zumindest bei mir eine positive Wirkung

  2. #22
    Zitat Zitat von elvissteinjr Beitrag anzeigen
    Mal sehen...

    C# läuft nur im .net Framework, also nur unter Windows und leider nur sehr schlecht mit Mono. Dadurch dass beim .net Framework nur Bytecode, aber kein Maschienencode erzeugt wird, sind die Programme prinzipiell Plattformunabhängig, sind es in der Praxis aber nicht wegen oben genanntem.

    Java läuft in der Java Virtual Machine, welche den Bytecode wie bei .net während der Laufzeit kompiliert. Die Programme sind plattformunabhängig, solange eine JVM auf dem Gerät vorhanden ist.

    Nur haben beide eines gemeinsam: Durch die Laufzeitkompilierung sind die Sprachen ein gutes Stück langsamer als jede kompilierte Sprache.
    Wie kann C++ kein Industriestandard mehr sein, in einer Industrie wo jedes FPS zählt? Sicher kann man gute Spiele mit den erwähnten Sprachen programmieren, aber die Spieleindustrie muss so viel wie möglich an Leistung rausquetschen können. Da ist eine laufzeitkompilierte Sprache fehl am Platz.
    Du hast nicht viel Ahnung von Codeoptimierung. Eigentlich hast du so gut wie keine Ahnung von dem, was du hier ansprichst, denn das ist einfach nur zusammengereimt und oberflächlich.

    Es wird dich übrigens überraschen, aber es ist relativ schwer in C++ performanten Code zu schreiben und benötigt tiefgehendes Wissen über die Sprache.

    Zitat Zitat von Aperetif Beitrag anzeigen
    Das ist sowieso das Beste. Java muss sein, genaso wie C und im Endeffekt kann man dann auch schon fast C# , da es im Grunde eine Mischung aus beidem ist.
    Ich würde eigentlich sagen, D muss sein, damit die Leute endlich aufhören C++ für das nonplusultra zu halten und all die Schwächen und Designfehler, genauso wie man's besser machen kann, vor die Augen gesetzt bekommen.

    Geändert von Kyuu (26.08.2010 um 00:45 Uhr)

  3. #23
    Bin ich der einzige, der die Performancefrage im Hobbybereich für höchst belanglos hält?

    Was programmiert man so hobbymässig? Unreal Engine 4 Kernel, optimiert darauf auch bei 4-Kern Prozessoren keinen unnötigen Takt zu benötigen?

    Die Sprache ist doch völlig schnuppe im Grunde und vor allem sollte man keine Sprache die man nicht so mag statt ner Sprache die man sehr mag verwenden nur weil angeblich irgendwo die Performance minimal besser ist.

    Die eigentliche Spielperformance ( 5fps oder 60 fps~ das ist doch der Performanceunterschied, an den man da denkt oder? ) hängt eher von der verwendeten Grafikausgabe ab. Die 0815 Grafikausgabe von Java ist für 8Bit okey, 24Bit PNGs mit Alphamap animiert über den Screen schieben kann man dagegen völlig vergessen. Nimmt man statt dessen eine OpenGL-Grafikausgabe, ja sowas gibts für Java, läuft das alles superflüssig.

  4. #24
    Ich finde sowieso Kyuu sollte mal ein paar konstruktive Sachen bringen, als ständig den Leuten nur zu sagen, wie wenig Ahnung sie haben.

    zu D: Ist sicher vielversprechend, genau wie Go, aber im Endeffekt macht es keinen Sinn einem Einsteiger auf diese Sprache zu bringen, wenn es noch nicht absehbar ist, ob sie sich irgendwann durchsetzen wird. Lieber doch erstmal was solides und wenn man dann vielleicht wirklich C kann, dann ist D auch gar nicht mehr so fern!

  5. #25
    Zitat Zitat von Aperetif Beitrag anzeigen
    Ich finde sowieso Kyuu sollte mal ein paar konstruktive Sachen bringen, als ständig den Leuten nur zu sagen, wie wenig Ahnung sie haben.
    Du solltest mal deinen Groll gegen mich beiseite legen und meine vorherigen Posts hier nochmal in Ruhe durchlesen, hoffentlich entdeckst du dann die ein oder andere "konstruktive Sache".

    Ich finde solche Vorhaltungen nehmen der Diskussion die Basis.

    Zitat Zitat von Aperetif Beitrag anzeigen
    zu D: Ist sicher vielversprechend, genau wie Go, aber im Endeffekt macht es keinen Sinn einem Einsteiger auf diese Sprache zu bringen, wenn es noch nicht absehbar ist, ob sie sich irgendwann durchsetzen wird. Lieber doch erstmal was solides und wenn man dann vielleicht wirklich C kann, dann ist D auch gar nicht mehr so fern!
    D hat eine Binärschnittstelle zu C, das heißt du kannst von D aus C-Code aufrufen und ich glaube sogar umgekehrt mit einigen Einschränkungen, die den GC betreffen.

    Jetzt wirst du dir wahrscheinlich denken, dass man gerade deswegen zuerst C lernen sollte, aber das ist kein Argument dafür, denn die Schnittstelle zu C ist eher dafür gedacht, bereits vorhandene C-Bibliotheken von D aus zu nutzen und damit ist es nichts, was man bei D unbedingt benötigt.

    Verstehe mich nicht falsch, ich finde dass C sogar heute noch einen festen Platz in der Informatik hat und diesen kaum in den nächsten Jahrzehnten verlieren wird, aber das heißt nicht, dass man es unbedingt benötigt und in der Tat, ich kenne einige, die mit C nur in der Schule in Berührung kamen und heute, ohne sich damit nochmal näher zu beschäftigen, kaum über Hello World hinaus kämen. Außerdem kann ich dein Argument auch umdrehen: Wenn man D kann, ist C auch nicht mehr weit!

    Das dazu. Und nun zu dem, was mich hier stört: "durchsetzen" und "solide". Was ist für dich "durchsetzen"? Anwendung im professionellen Bereich? Verdrängung von Sprachen wie C++? Das letztere ist tatsächlich noch nicht eingetreten, auch wenn ich persönlich einen Trend dahin sehe und D das Zeug dazu hat. Im professionellen Bereich wird D allerdings bereits eingesetzt und hat sich damit mehr als bewährt. Nun zu "solide". D wird bereits seit 1999 entwickelt und wenn du auf der offiziellen Website warst, hast du sicher bemerkt, dass die Sprache sich bereits in der zweiten Version befindet, es also bereits eine Version erreicht hat, die eine Vollständigkeit signalisiert. Dann wirst du sicherlich bemerkt haben, dass D von zahlreichen Compilern und vielen Platformen unterstützt wird, von vielen professionellen Entwicklungswerkzeugen, wie etwa SCons bereits berücksichtigt wird, eine äußerst umfassende Standardbibliothek besitzt, sowie eine anerkannte alternative Community-Standardbibliothek, die noch viel mehr bietet und - nicht zu vergessen - für so gut wie alles Bibliotheken bietet, von denen die meisten auf die bereits vorhandenen C-Bibliotheken zurückgreifen.
    Allen Ernstes, das ist für mich sehr solide.

    Und zum Schluss: Es macht sehr viel Sinn, einem Einsteiger D zu empfehlen (auch wenn ich das nicht getan habe, sondern im speziellen Fall des OP Python und Lua empfohlen habe), denn es steht weder im vornherein fest, dass er jemals im professionellen Bereich tätig sein wird und damit auf "Industriestandards" fixiert sein muss, noch welche Sprache er benötigen wird. Außerdem weißt du ja, wenn man D kann, ist jede andere Sprache nicht mehr weit! Nicht zu vergessen: D hat alles was man braucht, ist "solide", sehr weit fortgeschritten, modern, konsistent, performant, kurzum: eignet sich hervorragend für so gut wie jeden Zweck, mit ein paar Ausnahmen. Man sollte auch bedenken, dass es der erste Eindruck ist, der zählt und da sollte man optimalerweise etwas nehmen, das es "richtig" macht.

  6. #26
    Was das lernen selbst angeht, eine Sprache können ist besser als keine Sprache können.

    Wenn man jetzt C# lernt und Microsoft in 5 Jahren sagt "oh nose, wir stoppen das C# projekt weil wir gegen Java eh abscheissen kthxbye" ist das immernoch wertvolle Programmiererfahrung. Die "hat Zukunft"-Debatte kommt immer so rüber, als wenn jemand mit 5 Jahren Erfahrung in C# in Java genau so viel kann wie jemand, der in seinem Leben noch nie ein "Hello World" zustande gebracht hat.

    Ob nun der eine Dialekt mehr Zukunft hat als ein anderer ist imo völlig scheissegal.

  7. #27
    Zitat Zitat von Aperetif Beitrag anzeigen
    Ich finde sowieso Kyuu sollte mal ein paar konstruktive Sachen bringen, als ständig den Leuten nur zu sagen, wie wenig Ahnung sie haben.
    Wenn man mal als ausstehender Leser dazu seinen Senf beigeben darf: Meinst du nicht das du da einfach konstruktives überliest? Mit offenen Augen quasi? Wenn man sich deine erste Reaktion anschaut:

    Zitat Zitat
    Wenn man irgendwann mal professionell arbeiten will, wird man aufgrund von Industriestandards und Mächtigkeit der Sprache und der Vielfalt an Bibliotheken nicht um C/C++ herumkommen, capisci?
    Dann ist das kaum die Reaktion die man auf ein "wie bitte?" erwartet. Es ist eher, pardon, die Reaktion eines verletzten Egos. So reagieren in der Regel Programmierfortgeschrittene die Glauben sie hätten nun wirklich Ahnung von der Materie. Nicht unbedingt die beste Art und Weise eine konstruktive Diskussion zu starten.

    Kyo mag nicht wirklich freundlich reagieren, aber er sagt klar und deutlich was Sache ist. Mehr nicht.

    @Thema
    Spieleprogrammierung ist so eine Sache für sich. Sie kann klasse als Motivationsträger dienen um die Programmierung kennen zu lernen. Über die ersten Versuche in HTML, was ja noch nichts mit Programmierung an sich zutun hatte, zu der Maker P&C Sprache, zu solchen Exoten wie Blitz Basic also dann anschließend Java, C++ und Consorten hat sie mich zu meiner jetztigen Berufswahl motiviert. Auch wenn es nie wirklich zu einem Spiel gereicht hat.

    Dir eine Sprache zu empfehlen ist so eine Sache. Eine Sache die immer nötig ist, ist das du am Anfang damit Leben musst das du nicht viel siehst von dem was du da tust. Du musst also Spaß daran finden das dein Code Schrift und ähnlicher hervor bringt. Wie Corti schon sagt ist dabei die Erfahrung die Sache die den Brei fett macht. Selbst der Maker hat dort einen gewissenen Lernwert, da man auch hier die nötigen Grundstrukturen in eingeschränkter Form besitzt. Eine Abfrage funktioniert soweit überall gleich. Also solltest du nach meiner Meinung etwas nehmen was dich motiviert. Was dir Spaß macht das Thema weiter zu verfolgen. Das ist in meinen Augen der beste Garante dafür das du dich weiter entwickelst und mehr lernst.

    Zum reinschnuppern kann ich dir also durchaus diverse Basic Dialekte wie z.B. Blitz Basic empfehlen. Du hast einen relativ klaren Befehlssatz mit dem du schnell sichtbare Ergebnisse erzielen kannst. Wie gesagt, auch der Maker ist durchaus dafür zu gebrauchen um sich die Grundlagen beizubringen.

  8. #28
    Wie schon erwähnt ist der Perfomanceunterschied zu gering um allein danach zu entscheiden welche Sprache man wählt.

    Ich wollte nach dem Maker zu C++ gehen, allerdings habe ich nach einem Monat wieder aufgehört. Der Sprung vom Maker war mir einfach zu groß und Ergebnisse konnte man keine aufregenden sehen (grafische ^^).
    Seitdem bin ich bei den BlitzBasic Dialekten (aktuell BlitzMax) hängen geblieben worüber ich zurückblickend sehr froh bin. Meiner Meinung nach ist C++ keine Standardsprache mehr, eher ein Standardformat, was eben auf allen exotischen Platformen läuft. Allerdings finde ich es für einen Anfänger viel zu überladen und man braucht lange bis man mal einen richtigen Überblick kriegt.

    Die Sprache musst dir aber du aussuchen, denn wenn sie dir nicht gefällt (und sei es nur die Syntax) wirst du keinen Spaß dran haben.

    Meine Empfehlungen: BlitzMax, Phyton(mit Py Game), Lua

    Geändert von Greyce (28.08.2010 um 23:06 Uhr)

  9. #29
    Zitat Zitat von Greyce Beitrag anzeigen
    Meiner Meinung nach ist C++ [...] Allerdings finde ich es für einen Anfänger viel zu überladen und man braucht lange bis man mal einen richtigen Überblick kriegt.
    Man merkt C++ an, dass es im Grunde steinalt ist. In den Jahren der Entwicklung und bei den einzelnen Komponenten wurde anders als bei zB Java weniger drauf geachtet alles in der selben Struktur zu halten. Java ist viel durchstrukturierter und somit einfacher lernbar. Bei C++ hat man selbst als Fortgeschrittener noch seine "wtf, warum ist DAS jetzt so?"-Momente.

    Klingt strange aber wer beide mal gemacht hat wird wissen, was ich mein.

  10. #30
    Java hat dafür das Problem einer in die Jahre gekommenen API. In C++ gibt es dafür keine wirkliche einheitliche API. Es gibt Boost und diverse Sachen, aber trotzdem habe ich das Gefühl das jedes C++ Programm seine eigenen Standard-Datenstrukturen und Algorithmen schreibt, das Rad also jedes Mal neu erfunden wird oO Was mich in C++ aber eher stört ist, dass es dem Programmierer zu viele Möglichkeiten gibt. Dadurch das selbst so grundlegende Operatoren wie der Zuweisungsoperator überladen werden können, kann man sich letztlich überhaupt nicht mehr darauf verlassen das ein Stück Code das tut was man von ihm erwartet. Hier ist Java halt sehr übersichtlich, da die Sprache in sich recht einfach aufgebaut ist. Dafür muss man halt sehr viel Code schreiben ^^°
    So Scriptsprachen wie Python, Ruby oder Lua sind natürlich auch ganz was feines. Ich denke aber das es für Anfänger sehr sinnvoll ist sich erst mal mit einer statisch typisierten Sprache vertraut zu machen um überhaupt die Ideen und Konzepte der Typisierung zu verstehen. Denn auch wenn in Python oder Ruby die Variablen keine Typen haben, sind deren Objekte dennoch strikt typisiert.

  11. #31
    Das Rad muss nicht immer neu erfunden werden, wenn man frei-nutzbare Code-Schnipsel (sogenannte Snipets, z.B. aus Tutorials) nutzt um seinen Code zusammen zu schreiben (Code-Recycling). C und C++ sind die meist-genutzten Programmiersprachen, da findet man vieles, was man haben will, und viel Unterstützung.

    Ich nutzte an der Runtime, die ich unter Ubuntu schreibe, C++ als Programmiersprache, für die Grafik ist SDL verantwortlich und für die Skriptbarkeit wird LUA rein gelinkt. Es funktioniert wunderbar damit.

    Bei Java und .Net braucht man immer noch eine VM die den Bytecode just-in-time interpretiert. Mono ist zwar schon weit, aber ist nicht 100%-.Net kompatibel.

    PS: Einziges Manko bei SDL: Es fehlt die Darstellung von Schrift. Es gibt zwar das Paket SDL_TTF, das aber irgendwie rumzickt. In 9 von 10 Fällen stürzte mein Programm mit einer "Segmentation Fault" ab. Deswegen nutze ich jetzt einen Bitmap-Font.

  12. #32
    Zitat Zitat von niR-kun Beitrag anzeigen
    Bei Java und .Net braucht man immer noch eine VM die den Bytecode just-in-time interpretiert. Mono ist zwar schon weit, aber ist nicht 100%-.Net kompatibel.
    Für alle die jetzt denken eine VM ist eine Seltenheit: Nein, jeder hat so was auf seinem Rechner, der einen modernen Browser nutzt.

    @Topic

    Was Maki und Kyuu gesagt haben sagt eigentlich alles. Ich hab mit dem Maker angefangen und bin da zu Java gegangen.

  13. #33
    Zitat Zitat von R.D. Beitrag anzeigen
    Für alle die jetzt denken eine VM ist eine Seltenheit: Nein, jeder hat so was auf seinem Rechner, der einen modernen Browser nutzt.
    Die Java VM, ob nun IceTea6 oder die OpenJDK/JVM nutzt ist ja egal - funktioniert größtenteils überall. Bloß bei .Net ist das Problem, dass es auf älteren Windows-Versionen nicht geht und nur eingeschränkt mit Mono läuft.

    Ob man nun Programmier-Sprachen nutzt, die auf einer VM laufen oder die nativ, ist eine Glaubensfrage. Beides hat Vor- und Nachteile:

    VM:
    Vorteil: - läuft auf so gut wie allen Systemen (.Net nur teilweise)
    - kein neu-kompilieren nötig bei anderem OS
    Nachteil: - die VM muss installiert sein und unterstützt werden
    - der Bytecode muss jedes mal beim aufrufen neu interpretiert werden

    nativ:
    Vorteil: - man brauch nur einmal zu kompilieren
    - keine VM nötig
    Nachteil: - für anderes OS (und z.B. bei Update der Shared-Libarys) neu-kompilieren notwendig

    PS: Ich hab mit dem RM2K angefangen, bin zwischendurch mal bei Pascal geblieben, dann auf RM2K3 umgestiegen und habe dann angefangen zu C++ um zu steigen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •