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

Fred

Supermoderator

Beiträge: 2 121

Beruf: Softwareentwickler

  • Private Nachricht senden

31

04.05.2014, 15:19

Dann geht es weiter mit objektorientierter Programmierung. Und an dieser Stelle setzt Java eigentlich erst ein... Schade eigentlich, dass man, sollte man mit Java anfangen, danach die basics der rechentechnik erfährt :/


Wieso schade? Ist das nicht fast überall so, dass man nicht auf der untersten Abstraktionsebene anfängt? Als ich meinen ersten Computer gekauft habe, habe ich diesen auch nicht gleich selbst zusammengebaut. Als ich dann meinen ersten selbst zusammengebaut habe, hatte ich auch noch keine Ahnung, wie ein Prozessor funktioniert. Aber mein Ziel war es am Anfang, einen Computer zu bedienen und da war mir der Aufbau des Computers relativ egal. Dann war es mein Ziel, einen Computer zusammenzubauen und da war mir der Prozessor relativ egal.
Und genau das ist es, was ich vorhin gesagt habe: Wenn es nur mein Ziel ist, möglichst schnell Ergebnisse zu sehen und ein Spiel zu entwickeln, dann ist Unity o.ä. möglicherweise die bessere Wahl als erst mal Monate lang C++ zu lernen. Möchte ich aber wirklich programmieren lernen, weil es mich einfach interessiert, dann ist C++ gar nicht so verkehrt, allerdings brauche ich mir dann jetzt keine Gedanken darüber machen, ob ich lieber UE4 oder die CryEngine lizenziere. Es kommt einfach darauf an, was man will. Und letztlich ist das, was C# und Java machen, ja auch nicht so verkehrt. In C++ lernt man, wie Pointer funktionieren, wo man überall aufpassen muss, wann man Speicher freigeben muss und kommt so dann schließlich zu dem Schluss, dass man Speicherverwaltung besser doch nicht selbst übernimmt, sondern lieber SmartPointer verwendet. C++ ist keine Sprache, die man mal eben so an einem Wochenende lernt und mit der man dann alles machen kann, was man will - geschweige denn die CryEngine auf eigene Bedürfnisse anzupassen. Da ist es dann besser man nimmt sich Unity, wo man für kleinere Projekte oft nur kleine C#-Klassen schreibt, die die wichtigsten Spielfunktionen übernehmen.
Und aus den Beiträgen des Threaderstellers lese ich, dass es ihm lieber wäre, möglichst schnell auch was spielbares mit der gewählten Engine zu erlangen und da ist dann Unity die einsteigerfreundlichere Wahlmöglichkeit.

C++ ist ja auch noch nicht die unterste Ebene. Also müsste man ja egtl. auf Maschinensprachebene anfangen, damit man begreift, wie einzelne Befehle übersetzt werden und man somit ggf. optimieren oder Fehler vermeiden kann. Aber man kann eben nicht alles auf der untersten Ebene anfangen, sondern muss sich langsam durcharbeiten und je nach Ziel und Absicht ist die Einstiegseben eben unterschiedlich. Wenn jemand Systemprogrammierung lernen möchte, würde ich ihn nicht mit Java anfangen lassen, wenn jemand wirklich Programmieren lernen möchte, würde ich auch C++ empfehlen, aber wer einfach möglichst schnell etwas Spielbares erstellen möchte und sondieren möchte, ob das überhaupt Spaß machen wird, dem würde nicht zu C++ raten, weil der Einstieg dort einfach sehr langwierig ist.

32

04.05.2014, 15:20

Das sehe ich persönlich nicht so.
C++ ist noch immer sehr aktuell und nicht überholt. Ich finde, dass es völlig egal ist, welche Programmiersprache man nutzt, wenn man ganz am Anfang steht. Aber:


Das die Sprache nicht überholt ist sollte klar sein, das meinte ich auch nicht. Viel mehr halte ich sie für den Einstieg überholt da es eben bessere Alternativen gibt. Es ist zwar so, dass theoretisch jede Sprache für den Einstieg geeignet ist, in der Praxis gibt es aber nicht für jede Sprache einen großen Fundus an didaktisch aufbereiteten und sinnvollen Einführungen. C++ ist so eine Sprache, bedingt dadurch das sich die Sprache und wie man mit ihr arbeitet in den letzten Jahren extrem verändert hat.


Dann geht es weiter mit objektorientierter Programmierung. Und an dieser Stelle setzt Java eigentlich erst ein... Schade eigentlich, dass man, sollte man mit Java anfangen, danach die basics der rechentechnik erfährt :/


Ich sehe das anders. Im Gegensatz zu allgemeinen Programmierung und den Konzepten von OOP, braucht man für gute C/C++ Programmierung auch ein grundlegendes Verständnis über Rechnerarchitekturen und den Aufbau von Betriebssystemen bzgl. der Speicherverwaltung. Von daher ist es didaktisch sinnvoller, erstmal überhaupt grundlegende Konzepte der Programmierung zu erlernen z. B. in Java oder C# , parallel sich mit den Grundlagen der Technischen Informatik und den Aufbau von Betriebssystem zu widmen und sich dann erst mit einer Hardwarenahen Sprache und Programmierweise zu beschäftigen - wozu z. B. das Konzept Pointer eben zweifelsfrei zu gehören. Die meisten anderen Sprachen sind von ihrer "Schnittstelle" zum Programmierer viel abgekapselter von der Hardware als C/C++ so das es didaktisch überhaupt keinen Mehrwert hat sich erstmal mit einer strikten Prozeduralen Programmierung in einer hardwarenahen Sprache zu beschäftigen als dies hinterher zu tun wenn man bereits eine allgemeine Einführung in die Programmierung erhalten und sich parallel mit den Technischen Grundlagen auseinander gesetzt hat. Denn die Sachen lernt man ja nicht "mit C++" sondern die muss man sich Mühsam nebenbei aneignen um mit C++ überhaupt sinnvoll arbeiten zu können.

Das war bei mir an der Hochschule auch genau so aufgebaut, und ich war dankbar dafür. Erstes Semester eine allgemeine Einführung in die Programmierung anhand von Java, parallel Technische Grundlagen der Informatik, im zweiten Semester dann der Aufbau und Konzepte von Betriebssystem und parallel als Aufbaumodul zur Programmierung ein Modul OOP. Und erst im dritten Semester ging es dann mit der Hardwarenahen Programmierung los Anhand von C und später als Wahlpflichtfach dann noch OOP mit C++. (Natürlich gab es nebenher noch viele andere Module über Algorithmen und Datenstrukturen, Mathe usw.).

Wenn man jemand zum Einstieg C oder C++ emfpiehlt, dann sollte einem auch klar sein, was parallel alles unnötiger Weise auf den Lernenden einschlägt. Und ich finde es schon irgendwie unverantwortlich hier teilweise Minderjährigen zu empfehlen gleich C++ zu nehmen, weil es einfach ein riesiger Rattenschwanz an Wissen ist das man Aufnehmen muss um einigermaßen sinnvolle Programme in dieser Sprache schreiben zu können - obwohl man es in einer anderen Sprache viel allgemeiner und schneller hätte umsetzen können, die Funktionstoleranz viel geringer sein muss. Die richtige Sprache kann zum Einstieg ein echten Mehrwert bieten, wenn es einen großen Fundus an didaktisch aufbereiteten Material gibt. C++ hat davon überhaupt nichts - oder? C++ für Spieleprogrammierer und dann der C++ Programmierer oder the c++ programming language? Ernsthaft? ...

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Fuchsi« (04.05.2014, 15:27)


Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

33

04.05.2014, 19:12

Fuchsi ich stimme dir größtenteils zu. Du musst hier halt überlegen dass viele Anfänger unterwegs sind. Die kennen teilweise nur C++ und bis jetzt sind sie damit zufrieden. Vieles kann man da noch nicht besser wissen und teilweise sind Problemstellen in der eigenen Entwicklung noch gar nicht aufgefallen. Ich will hier niemanden angreifen und meine hier niemanden spezielles. Wer anfangen will sollte das meiner Meinung nach einfach tun. Nicht zu lang überlegen.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

34

04.05.2014, 19:56

Puhh.. was man mit der frage welches buch soll ich mir holen sowas bei rumkommen kann^^
Ok ich werde mich erstmal für java entscheiden um kleine spiele zu entwickeln.brauch ich dafür bücher, bestimmte internetseiten wo ich bestimmte sachen lernen kann usw?

BrokenInsane

Frischling

Beiträge: 56

Wohnort: Wien

  • Private Nachricht senden

35

04.05.2014, 20:04

Zu Java gibt's ne schöne Tutorialreihe von Brotcruncher auf YouTube. Ansonsten kann ich dir die Bücher "Java von Kopf bis Fuß" und "Java ist auch eine Insel" empfehlen.

36

04.05.2014, 22:34

Zitat von »Fred«

Ist das nicht fast überall so, dass man nicht auf der untersten Abstraktionsebene anfängt?


Du fängst aber auch nicht an, ein Flugzeug zu steuern, wenn du nichteinmal weißt, wozu die ganzen Knöpfe eigentlich da sind ;)

Und, ja gut, natürlich gibt es unterschiedliche Meinungen zu Java als erste Sprache. Ich persönlich bin mit Basic am Atari eingestiegen - da gabs kein "public", kein "class" oder "extends". Ich persönlich, und ich möchte das persönlich wieder stark betonen, finde nicht, dass es klug ist, Code blind abzuschreiben und dann wegen jedem kleinen Fehler nach Hilfe zu ringen. Und selbst helfen kann man sich nur, wenn man Hintergründe versteht. Metaphorisch gesprochen: Was machst du, wenn der Boardcomputer im Flugzeug mehrere Kritische Meldungen anzeigt, die normalerweise sofort sagen, was los ist, du sie jedoch nicht verstehst, weil du kein Hintergrundwissen hast ;)

Natürlich kann man sich auch durch Codebeispiele solange "durchfressen", bis man an dem Punkt ankommt, wo man das Handbuch über Speicher, Speicheradressen und allem was dazu gehört aufschlägt... oder eben im Forum fragt. Aber warum sollte man sich nicht erst die Mühe machen, wenigstens die Basics zu lernen um es dann von Anfang an leichter zu haben? ;)

Natürlich gibt es für C++ ausreichend aufarbeitete Materialien, wenn man nur mal danach sucht... Ich habe damals mit dem C/C++ Kompendium von Dirk Louis angefangen, auch wenn das schon etwas fortgeschrittener war. Dieses Buch habe ich in Kombination mit dem Buch "Spieleprogrammierung für Kids mit Genesis3D" (so hieß es glaub ich) von Hans-Georg Schumann verwendet und habe mich sehr sehr schnell hereingefunden - auch wenn ich kein "Kid" mehr war ^_^. Letzendlich verlangt ja auch keiner von C++ Anfängern, sich erst bis in die Tiefen mit Hardwarearchitektur etc. zu beschäftigen. ;)

Aber wenn der OP sich bereits für Java entschieden hat ist das natürlich vollkommen in Ordnung ;)
EnvisionGame(); EnableGame(); AchieveGame(); - Visionen kann man viele haben. Sie umzusetzen und auf das Ergebnis stolz zu sein ist die eigentliche Kunst.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

37

05.05.2014, 06:42

Youtube mag modern sein, eignet sich aber für Code und das Erlernen von Programmiersprachen kein Stück. Wofür es sich lohnen würde, das wären Erklärungen wie man seine IDE und seinen Debugger verwendet, sowie eine Erklärung darüber, was gewisse Compiler- und Linker-Fehler bedeuten. Aber das schaut sich dann ja trotzdem wieder niemand an.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

38

05.05.2014, 08:24

C++ ist und bleibt für deine Verhältnisse einfach unbrauchbar, du möchtest erste Ergebnisse sehen und bist da mit Java ganz gut beraten.
Wenn du noch etwas Zeit investieren möchtest, lege ich dir aber erstmal Scripting ans Herz, dabei lernst du Dinge wie Balancing deines Spiels,
oder aber auch AI - Kontrolle ganz schnell. Dabei am besten ein fertiges Spiel nutzen und dafür scripten, ich bin mir sicher du spielst auch ein Spiel, bei dem man eigene Scripts nutzen kann.
Dabei wirst du dann auch Ideen bekommen wie man entsprechende Spiele besser gestalten könnte und so mehr und mehr auch eine ausgereifte Spielidee im Kopf zusammen bauen.
Wenn du dann förmlich vor Ideen nur so sprießt, kannst du dir eine fertige Engine nehmen wie es die meisten hier schon sagten und dein Traumspiel damit entwickeln. (In deinem Fall eignet sich Unity am besten, ist einfacher für Einsteiger)
Bei mir hatte sich dann ganz schnell der Wunsch geäußert es wirklich selbst zu schreiben, in dem Fall hilft das etwas eingestaubte aber dennoch gute "XNA" von Microsoft weiter.
Das basiert auf DirectX 9.0c, das hört sich alt an aber damit laufen auch heute noch einige hübsche Spiele. Die Grenze davon wirst du in den nächsten Jahren sicherlich nicht überschreiten. (Klick und du wirst sehen)

Als Modellierungsprogramm kann ich Blender nur empfehlen, es ist kostenlos, du darfst die erstellten Modelle kommerziell nutzen und es wird regelmäßig geupdatet.
Der einzig schnell sichtbare Nachteil ist die erdrückende Oberfläche, in der du von den Möglichkeiten "erschlagen" wirst.

Um hier noch ein paar schöne Tutorials zu posten:

https://www.youtube.com/user/AndrewPPrice // Dieser Kanal ist hervorragend um den Umgang mit Blender zu lernen.
http://www.riemers.net/ // Auf der rechten Seite finden sich einige Tutorials zu XNA, ebenfalls ein Blick wert. ( Achtung leicht veraltet! )
http://mitohnehaare.de/ // Ebenfalls gute Tutorials, diesmal sogar in Deutsch.
Amazon-XNA //Ebenfalls brauchbares Buch zu XNA auch wenn das ebenfalls veraltet ist, bringt es immer noch einiges bei, da wird auch ein E-Book zu C# mitgeliefert.

Obwohl XNA selbst keine Zukunft mehr haben wird, jedoch zum Erlernen und Erfahrung in der Spieleprogammierung sammeln finde ich es nach wie vor gut.
Java und C# weisen verblüffende Ähnlichkeiten auf, nur ist meiner Meinung nach C# für die Spieleprogrammierung etwas besser geeignet da es schneller läuft.
Wenn du dann irgendwann auf Linux/Mac/Android/iOS umsteigen möchtest, was immer interessanter wird (siehe SteamOS und die vielfalt der Apps für Mobil),
dann kannst du das, entgegen der landläufigen Meinung, auch mit C# und dem Mono-Projekt.
Wenn das alles nichts hilft, hast du dank C# ein gutes Verständnis der C-Familie und damit wird der Sprung auf C++ eher ein kleiner Hopser.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »LaT3St« (05.05.2014, 08:37)


39

05.05.2014, 09:20

Sieh dir mal http://www.galileocomputing.de/katalog/openbook an. Dort gibt es viele kostenlose Bücher, auch über Java. Einfach anfangen.

40

27.04.2017, 17:17

Hallo an die Runde,

um zur Ausgangsfrage zurück zu kehren, will ich hier mal meine Erfahrungen im Spiele-Programmieren beschreiben.


Zuerst -> um was für ein Spiel soll es sich handeln?

Lohnt es sich überhaupt? Gibt es schon das fast identische und wenn ja ist das eigene in der Übersicht innovativer bzw. neuerer?
Dann, wie lässt es sich realisieren (3d oder 2d engine oder zeichnungsbasierend)?

- Tip : für 2d/3d Grafikengine empfehle ich hier tatsächlich die kostenfreie "torque game engine" - hat ne recht gute Grafik, die man auch leicht modifzieren bzw. verbessern kann - hier noch ein wichtiger Hinweis: die Torque Game Engine kann man sehr gut Scripten also alle Spielabläufe können recht easy über eine "PHP" ähnliche Sprache programmiert werden - aus meiner Sicht absolut TOP!

Wieviel Geld will ich aufwenden?

Wenn man alleine ist, ist es verdammt schwer ein Spiel zu entwickeln allerdings geht das durchaus. Man muss zwei Dinge einkalkulieren:
Zeit (also entweder man Modeliert/Zeichnet die Grafiken selber oder Man kauft sie ein)
Und Geld ;)

- Tip : hier könnt ihr auf das kostenfreie "blender" zurückgreifen und auf "turbosquid".

Okay - das mal so in die Runde geworfen ;)


Natürlich gibts da noch die CryEngine, Unreal, Unity usw. aber für Anfänger ist die Torque Game Engine optimal!

Links:

http://www.garagegames.com/products/torque-3d

https://www.blender.org/

https://www.turbosquid.com/

:)


oder hier als Beispiel mein Jagdspiel:

https://www.facebook.com/JagdSimPro/


welches mit der t3d programmiert ist ;)


Grüße
subabrain

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »subabrain« (27.04.2017, 18:57)


Werbeanzeige