Spieleentwicklung HTML5 - NodeJS oder C++?

  • Allgemein

Es gibt 16 Antworten in diesem Thema. Der letzte Beitrag () ist von ichduersie.

    Spieleentwicklung HTML5 - NodeJS oder C++?

    Guten Tag!
    Ich habe in der letzten Zeit echt großes Interesse an Spieleprogrammierung, sei es mit Unity oder Unreal Engine, aber da ich
    echt ein Anfänger in diesem Bereich bin, wollte ich erstmal ein MMORPG Spiel in HTML5 erstellen.

    Meine Frage wäre da: Node.JS oder doch C++?

    Ich habe eigentlich vor C++ zu lernen, aber ich weiß nicht recht, ob ich doch NodeJS verwenden sollte.
    Bei beidem kann ich Socket.IO verwenden, damit ich via Client <-> Server kommunizieren kann.
    Die Entscheidung fällt mir echt schwer und weiß auch nicht wirklich weiter. Was würdet Ihr mir genau empfehlen?

    Mit freundlichen Grüßen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „meikel__“ ()

    meikel__ schrieb:

    Ich habe eigentlich vor C++ zu lernen
    Das kann aber etwas Zeit benötigen. Die Sprache an sich kann man in einer Stunde lernen, aber die Standard Library nicht (brauchste ca. 1 Jahr).

    Du könntest Unity nutzen, da haste C# und kannst dein Spiel als WebGL-Spiel exportieren, welches ebenfalls im Browser läuft (ohne Unity Web Player!). Sonst Node.JS, da es mMn einfacher ist!

    LG :)

    ichduersie schrieb:

    Die Sprache an sich kann man in einer Stunde lernen

    Wohl kaum.

    ichduersie schrieb:

    Sonst Node.JS, da es mMn einfacher ist!

    Öhmm nä. Du vergleichst Äpfel mit Birnen und ob da Node so einfach ist würde ich auch nicht sagen. Oder hast du Erfahrung damit vorzuweisen? Unity mit Node Vergleichen geht meiner Meinung nach nicht. Ansonsten erklär mir bitte wie.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Vollzitat entfernt. ~Trade

    Ich würde mir dafür die Zeit nehmen, aber mit Unity ein Spiel zu erstellen?
    Ist mir ein wenig zu komplex, wegen dem Designer (?) und ich hatte nicht vor mit C# zu arbeiten.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „meikel__“ ()

    meikel__ schrieb:

    nicht vor mit C# zu arbeiten.
    Dann fliegt Unity raus, es sei denn, du willst mit JavaScript arbeiten, was aber inzwischen von den Entwicklern nicht mal mehr empfohlen wird.

    Edit: @thefiloe: (zum Beispiel). Gut, wenn man evtl. noch ein schriftliches Tutorial dazu nimmt, wie bspw. dieses hier, das Video immer wieder pausiert und zurück spult kann es natürlich etwas länger dauern, aber wie gesagt, Sprache != stdlib.
    @meikel__ Reden wir von 2D oder 3D? Falls 2D, wäre es sicherlich interessant, sich das mal alles im Detail anzsuchauen, denn das ist da recht leicht verständlich.
    Im 3-Dimensionalen ist die Mathematik dahinter schon komplexer, da wäre dann, falls Du Dich nicht etwas länger damit beschäftigen willst, eine Engine ganz gut. Würde Dir aber auch zu Unity raten, denn mit C# ist das Ganze doch recht gut machbar und verständlich, zumal die Dir im Hintergrund das halt alles schon implementiert anbieten, sodass Du es nur noch nutzen musst. Muss dazu sagen, dass ich aber nie die Unreal Engine mit C++ probiert habe, aber C++ ist, wie schon gesagt, ein etwas anderes Pflaster, wenn Du das lernen möchtest.
    Ansonsten, wenn Du erstmal im 2D-Bereich bleiben möchtest, kannste auch inkludierbare Engines wie Sharpex2D von @ThuCommix benutzen. Ist ziemlich gut und das kannst Du einfach über die erforderlichen Abhängigkeiten Deinem Projekt hinzufügen und hast wirklich 'ne Auswahl an Renderern, die flexibel sind und so gut wie alles, was Du brauchst, damit Du alles anständig implementieren kannst. Dazu hast Du dann halt noch Dein gewohntes VB.NET/C#-Projekt in Visual Studio und kannst damit arbeiten. Mit Unity z.B. haste halt von vorne bis hinten eine Engine, also wirklich ein Programm, mit der/dem Du alles machst. Nur zum Coden haste halt dann Deine Standard-IDE.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    @ichduersie

    Da Trade hier den Zwang verspürt Polizei zu spielen, nochmal:
    Du wirst mit dem Video niemals C++ lernen. A) lernst du mit 99% der YT-Videos sowieso nix anständiges. Und B) kratzt du damit maximal an der Oberfläche. Das Video mag zwar vll. nicht soo schlecht sein wie man es sonst kennt. Trotzdem wirst du damit bei den ersten 100 Zeilen auf Probleme stoßen die du nicht lösen kannst, nein sogar nichmal verstehst. Grad bei C++ gibts einfach sehr viele Sonderfälle welche ein tieferes Verständnis erfordern. Auch habe ich auf die Schnelle nirgends eine Erklärung des Build-Processes gesehen. Fakt: Du wirst innerhalb von wenigen Stunden niemals eine Sprache lernen und erst recht nicht C++. Es gilt dort die Faustregel, 1 Jahr wirklich aktiv damit arbeiten, bis man da wirklich in der Materie drinnen ist. Was du mit der stdlib hast, weiß ich nicht. Ich denke das wird eher das kleinere Problem sein. Das ist halb eine Bibliothek wie es viele andere. Natürlich im C++ Umfeld wohl die am häufigsten verwendete Bibliothek wo einfach verankert ist wie in z.B. C# das .NET Framework. Aber wenn du C# kannst, haste auch kein Problem die Klassen des Frameworks zu verwenden.
    Kurz: Zu glauben, dass man in wenigen Stunden oder Tagen C++ lernt halte ich für absolut unmöglich und naiv. Maximal so, dass man es halbwegs lesen kann. Aber niemals um eine komplexere Software aufziehen zu können.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Gut, dann halt nicht. Dann fallen Unreal und Cry ebenfalls weg und node.js bleibt übrig, es sei denn, du hast kein Problem damit, dass du dich über einen längere Zeitraum in Sprache und Engine einarbeitest. Wobei du dich natürlich auch in node.js einarbeiten musst, und wenn du vorher immer mit .NET gearbeitet hast, würde ich dir Unity ans Herz legen, weil du dann bei .NET bleiben kannst und für so ziemlich alle Plattformen entwickeln kannst (geht natürlich auch mit anderen Engines). Außerdem hast du inzwischen einen expliziten 2D-Editor, falls du mit 3D gar nichts am Hut haben möchtest und Unity ist sowohl für kleine, als auch für große Projekte, die ein ganzes Team erfordern, ausgelegt. Weitergehend finde ich das Lizenzierungsmodell bei Unity angenehmer: Nach den ersten $100.000 Einnahmen musst du dir die Pro-Version kaufen. Bspw. bei der Unreal Engine musst du nach den ersten $3.000 monatlich 5% der Einnahmen abgeben und die Cry Engine, die musst du dir sowieso von Anfang an mieten.

    Alternativen wären sonst bspw. Blender, aber da arbeitest du mit Python und sonstige Engines können in Bereich Grafik nicht das liefern, was die obigen können.

    LG :)

    ichduersie schrieb:

    Ja, aber es gibt Engines für node.js.

    Verzeih mir meine Unwissenheit. Ich bin bei weitem nicht so tief in der Materie, jedoch ist nodejs meines Wissens für serverseitige Anwendungen. Wie also willst du damit ein Spiel entwickeln?
    Natürlich könnte man die Server Logik damit abbilden, sofern dies überhaupt notwendig ist. Sehe ich das so falsch?


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    @thefiloe mit Hilfe von nw.js lassen sich Desktopanwendungen erstellen, die die Node.js-API verwenden können und ne GUI haben. Also quasi node.js mit DOM bzw. Browserfenster. Darin kann man dann aauch HTML5-Spiele laufen lassen.
    Vergleichbar mit C++-Spieleentwicklung ist das natürlich eher weniger.
    Von meinem iPhone gesendet

    thefiloe schrieb:

    jedoch ist nodejs meines Wissens für serverseitige Anwendungen. Wie also willst du damit ein Spiel entwickeln?

    @ichduersie @meikel__
    Hier muss ich @thefiloe recht geben, Node.js ist hauptsächlich für serverseitige Anwendungen bzw. Webapplikationen. Ein Spiel mit Node naja sagen wir es so ich würds nicht ausprobieren, denn ich schätze so performant würde das dann auch nicht laufen (wenn man es auf Desktop etc. portiert). Wie @nikeee13 sagte gibt es ja nw.js, ich will das jetzt auch nicht schlecht reden nur die Applikationen die darin teilweise geschrieben sind laufen bei mir nicht wirklich "gut" (i5, 8GB RAM trotzdem immer flackern etc.). Wenn du ein 3D-Spiel schreiben willst nimm entweder C# mit Unity oder C++ und Unreal. Beide geben dir die Möglichkeit Web/Desktopgames zu schreiben & laufen dabei noch sehr gut und sehen echt ziemlich nice aus. Bei JS ist das Problem das Game Engines sich dort nur auf 2D fokussieren oder wenn du 3D nutzen willst viel selber machen musst was woanders bspw. Unity oder Unreal übernehmen

    Grüße
    Jan

    EDIT: Gugge mal da vorbei ;) toptal.com/nodejs/why-the-hell-would-i-use-node-js
    Software being "Done" is like lawn being "Mowed". (Jim Benson)
    Wie KidRick schon gesagt hat, gibt es nwjs.io/ für Desktopanwendungen.
    GameDev Tycoon ist mit Nw.Js gemacht und läuft gut.
    CrossCode ist in Nw.js + Impact JS und läuft auf meinen Rechner auch super flüßig.
    Ansonsten muss ich @KidRick rechtgeben.
    "Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." Albert Einstein