Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.03.2015, 16:44

Neues Spieleprojekt: C++ oder Java?

Hallo liebe Spieleprogrammierer :)

Aktuell habe ich mal wieder einen neuen Angriff gestartet Richtung Spieleprogrammierung.
Gleich vorab: Ich habe vor etwa 7 oder 8 Jahren versucht C++ zu lernen - habe aber aufgrund fehlender Programmiererfahrung aufgehört.
In der Schule habe ich dann später Java kennen gelernt und damit schon einige Spielchen programmiert. In letzter Zeit habe ich mich aufgrund meines Studiums dann mit Processing, quasi eine Engine für Java, speziell ausgelegt auf kreative Nutzung, beschäftigt und kann damit ziemlich gut umgehen.

Ich möchte jetzt wie gesagt ein neues Projekt angehen und bin am Überlegen ob es Sinn macht jetzt umzusteigen auf C++, eventuell in Verbindung mit openFrameworks (das aufgrund der Nähe zu Processing) oder vielleicht einer Library wie der SFML. Bisher bin ich Java immer aufgrund der einfach Cross-Platform Unterstützung treu geblieben, aber man hat eben dadurch auch seine Performanceschwächen, speziell wenn man mit Processing hantiert.

Mich würde eure Meinung dazu interessieren. Wie gesagt, C++ ist mir prinzipiell nicht fremd, ich spreche fließend OOP und habe kein Problem mir die ein oder andere Sache neu beizubringen oder zu lernen. Fakt ist allerdings auch, dass es hauptsächlich um das Spieleprojekt geht und nicht um das Lernen einer "neuen" Sprache.

Vielen Dank im Voraus und liebe Grüße :)

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

2

16.03.2015, 17:08

Ich bin mir nicht sicher, was du damit meinst, dass es dir primär um das Spielprojekt, nicht aber ums Lernen geht. Wenn du damit meinst, dass die Fertigstellung des Projekts, ggf. mit möglichst geringem zeitlichen Aufwand, dann wäre das Verwenden von bereits bekannten Sprachen und Frameworks durchaus sinnvoll. C++ zu lernen, um damit ein Spiel zu entwickeln, dürfte grundsätzlich kein Ding der Unmöglichkeit sein, die Umsetzung des Spiels würde aber länger dauern, da du dich eben erst noch in C++ einfinden müsstest.

Man kann einfach keine Pauschalaussage darüber treffen, ob Java oder C++ besser ist. Beide Sprachen haben in bestimmten Gebieten ihre Vorteile und in anderen ihre Nachteile. Wie diese Vor- und Nachteile gegeneinander abgewogen werden, kommt auf die Rahmenbedingungen (Vorkenntnisse, Zielplattform, Budget, Art der Anwendung, ...) an.
Wenn eine der beiden Sprachen als besser dargestellt wird, dann liegt das meist daran, dass die entsprechende Person die verschiedenen Kriterien bereits gewichtet beurteilt hat (bspw. "Performance ist wichtig, Entwicklungszeit interessiert mich nicht, ...") oder von Präferenzen ("Java Code sieht nicht hübsch aus") beeinflusst ist.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

propper

Frischling

Beiträge: 21

Wohnort: Internet

  • Private Nachricht senden

3

16.03.2015, 17:12

Also aus eigener Erfahrung (hab ich jetzt auch nicht unendlich von) kann ich sagen: bevor du daran denkst, ein neues Projekt zu beginnen, solltest du die Sprache des Projektes beherrschen. Je nach Größe des Projekts und vorheriger Programmierkenntnisse sind bei mir etwa so 2 - 3 Monate wo ich mich nur um die neue Sprache kümmere. Nur ich habe immer den Fehler gemacht mich nicht über die Sprache zu informieren, die ich grade lerne (z.B. Anwendungsgebiete, Plattformen, nachteile usw....) und habe deswegen schon oft angefangen neue Sprachen zu lernen um dann nach einem halben Jahr festzustellen, dass sie mir nicht gefällt oder das ich mich einfach weiterentwickeln möchte. Bei mir ist es grade C++, die Sprache gefällt mir aber ganz gut, nutze es mit SFML und habe gestern überlegt mich in Box2D einzuarbeiten, ich würde mich darüber und über andere Physikengines aber gerne noch mal aus den eben genannten Gründen besser informieren ^^
Aber ist ja schon mal gut, dass du hier um Rat fragst, bist schon weiter als ich :thumbsup:

mfg propper

4

16.03.2015, 17:26

Ich bin mir nicht sicher, was du damit meinst, dass es dir primär um das Spielprojekt, nicht aber ums Lernen geht. Wenn du damit meinst, dass die Fertigstellung des Projekts, ggf. mit möglichst geringem zeitlichen Aufwand, dann wäre das Verwenden von bereits bekannten Sprachen und Frameworks durchaus sinnvoll. C++ zu lernen, um damit ein Spiel zu entwickeln, dürfte grundsätzlich kein Ding der Unmöglichkeit sein, die Umsetzung des Spiels würde aber länger dauern, da du dich eben erst noch in C++ einfinden müsstest.


Zur Erklärung: Ich habe eine Spieleidee im Kopf und möchte diese umsetzen. Das ist mein Hauptaugenmerk. Dass ich dabei eine neue Sprache lernen könnte ist schön, aber nicht mein höchstes Ziel. Da die Idee an sich vom Zeitaufwand relativ groß sein wird möchte ich aber nicht inmitten der Umsetzung merken, dass ich letztlich mit der Wahl der Processing-Bibliothek (als Beispiel) einen Fehler begangen habe und die Performance zu stark darunter leidet.

Man kann einfach keine Pauschalaussage darüber treffen, ob Java oder C++ besser ist. Beide Sprachen haben in bestimmten Gebieten ihre Vorteile und in anderen ihre Nachteile. Wie diese Vor- und Nachteile gegeneinander abgewogen werden, kommt auf die Rahmenbedingungen (Vorkenntnisse, Zielplattform, Budget, Art der Anwendung, ...) an.
Wenn eine der beiden Sprachen als besser dargestellt wird, dann liegt das meist daran, dass die entsprechende Person die verschiedenen Kriterien bereits gewichtet beurteilt hat (bspw. "Performance ist wichtig, Entwicklungszeit interessiert mich nicht, ...") oder von Präferenzen ("Java Code sieht nicht hübsch aus") beeinflusst ist.

Ich möchte hier auch keine Pauschalaussagen provozieren, geschweige denn einen Glaubenskrieg unter Jüngern der verschiedenen Sprachen anzetteln. Hier ging es mir mehr darum nach Erfahrungen von anderen zu fragen. Hattet ihr ähnliche Situationen, wie habt ihr euch entschieden?
Gibt es handfeste Vorteile von C++ gegenüber Java, sodass sich ein Umstieg auf Dauer lohnt oder eher nicht? :)

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

5

16.03.2015, 17:34

Ich habe jetzt mehrere Spiele in C++ und Java geschrieben. C++ ist, sobald man es kann, auf jeden Fall die schönere Sprache. Aus vielen Gründen die schon in den anderen Glaubenskriegthreads genannt wurden (aber du wolltest ja meine Meinung ;)).
Das Setup ist mit Java aber erheblich einfacher, daher habe ich mich immer dafür entschieden wenn ein Spiel in irgendeinem Zeitraum fertig werden sollte (z.B. für eine Challenge/Jam). Bzw. es eher um das Ergebnis ging und ich den Code nie wieder anpacke.

Ich glaube dass wenn du diese Frage schon stellst ja doch eine gewisse Neugier vorhanden ist, wie das ganze in C++ wohl wäre. Von daher würde ich dir einfach raten es mal auszuprobieren. C++ ist es auf jeden Fall wert. Und irgendwann lernst du es sowieso wenn du darüber nachdenkst.
Wenn du einfach nur deine Idee umsetzten möchtest macht Java evt. mehr Sinn, da du das auch schon kannst. Vielleicht von Processing weg und "reines" Java, mit SFML oder sonst was.

Tankard

Treue Seele

Beiträge: 192

Beruf: Student, Hardware- und Softwareentwicklung als wissenschaftliche Hilfskraft

  • Private Nachricht senden

6

16.03.2015, 18:21

Es hört sich so an, als seist du nicht gerade abgeneigt C++ zu lernen. Wenn dein eigenes Projekt etwas größer wird, könntest du ja eventuell erst ein kleines Projekt wie Pong in C++ machen. Das ist dann überschaubarer Aufwand, bei dem du aber schon mal die Sprache, eine Grafik- und Physikbibliothek kennen lernen kannst.

7

16.03.2015, 18:37

Erst einmal danke für die ganzen Antworten :)
Da es hier nur um ein Hobbyprojekt geht gibt es kein Zeitlimit, ich möchte aber viel Zeit investieren und umso wichtiger ist es mir, dass ich auf lange Sicht den Willen behalten kann auf meiner jetzigen Basis weiter zu machen.

Nun daran, dass ich C++ so oder so lernen werde ist vermutlich etwas dran. Ich habe schon seit geraumer Zeit einen großen Reiz mal wieder zurückzukehren und dieses Mal alles durchzuziehen. Ich werde mich in den nächsten Tagen wohl erst einmal hinsetzen und einige Mini Experimente wagen und sehen wie weit und wie gut ich zurecht komme, dann kann ich noch immer entscheiden.

Ich rate Anfänger immer erst zu Java oder C#. Wenn sie mit C++ gleich starten, so kann es leicht passieren, dass sie schnell die Lust verlieren, weil mit C++ einiges mehr abverlangt wird. Über was genau muss man nicht viel quatschen, da man es auch googlen kann.


Auch dir danke :) Wie bereits erwähnt, ich bin kein blutiger Anfänger mehr, habe schon viel Erfahrung mit Java gesammelt und C++ auch schon einmal angekratzt. Jetzt reizt es mich irgendwie eben doch wieder es mal richtig zu lernen.

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

8

16.03.2015, 18:39

Achso richtig, wenn du Java kannst sollte der Sprung zu C++ zwar hier und da etwas holprig werden, aber besser als ganz von vorne anzufangen.
Ich denke du solltest es tun :D

DeKugelschieber

Community-Fossil

Beiträge: 2 641

Wohnort: Rheda-Wiedenbrück

Beruf: Software-Entwickler

  • Private Nachricht senden

9

16.03.2015, 22:31

C++ ist hoch abstrakt, mit dem 11er Standard komfortabler als Java, bietet first class functions, ist nicht object-obsessed sonder OO, mächtiger, weniger Schreibarbeit, nicht so mehrdeutig, weniger boilder code, ...

Ja doch kann man als schön bezeichnen denke ich. Aber lass uns das nicht wieder anfangen :P

propper

Frischling

Beiträge: 21

Wohnort: Internet

  • Private Nachricht senden

10

16.03.2015, 22:34

Zitat

C++ ist hoch abstrakt, mit dem 11er Standard komfortabler als Java, bietet first class functions, ist nicht object-obsessed sonder OO, mächtiger, weniger Schreibarbeit, nicht so mehrdeutig, weniger boilder code, ...


+1 :thumbup:

Ich kann nur bestätigen, dass es mit C++11 übelst entspannter ist zu coden, macht auch gleich noch mehr Spaß

Werbeanzeige