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

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

31

03.08.2014, 21:06

Ich würde mich an deiner Stelle nicht so sehr in den Sog der Objektorientierung rein ziehen lassen. Sie hat natürlich viele Vorteile, aber sie ist kein Garant für die Entwicklung eines guten Programmierstil noch hindert C einen daran einen zu entwickeln. C++, C#. Java… also alle sehr ausdrucksstarken Programmiersprachen können einem auch sehr schnell das Gefühl geben die Sprache nie „zu Ende“ gelernt zu haben und die Lust rauben. Bei den sehr eingeschränkten Sprachen hat man recht schnell ihren gesamten Umfang intus und kann erst mal etwas schreiben ohne denken zu müssen, aber ich müsste da jetzt noch dies oder das Lernen. Alles hat vor und Nachteile, es ist auch gut mal auf sein Gefühl zu vertrauen.

Der nächste könnte ja dann jetzt kommen und sagen, dass funktionale Programmierung so sehr wichtig ist, insbesondre in der heutigen parallelisierten Zeit.

Java ist für vieles eine Alternative, kommt aber darauf an für was du eine Alternative suchst. Java bietet sehr viele Möglichkeiten von Haus aus im Graphischen Bereich, jedoch eher auf allgemeine Anwendungen bezogen. Bietet neue Stolperfallen, Objektorientierung und Streitpotential was besser sei… Java oder C# oder oder oder.

Wenn du schnell etwas Graphisches machen magst gibt es auch noch Processing, ist aber ein bisschen Java.
:love: := Go;

buzz-steve

Frischling

Beiträge: 51

Beruf: Software Architekt

  • Private Nachricht senden

32

03.08.2014, 22:17

Wenn du über kurz oder lang als Programmierer ernstgenommen werden willst, kommst du um OOP nicht herum. OOP gehört zu den Basics, auch wenn man vielleicht vor hat, sich ab einem gewissen Punkt eher auf funktionale Programmierung oder anderen Paradigmen zu stürzen. Aber du willst doch Spiele oder zumindest grafische Spielereien entwickeln, oder habe ich das falsch verstanden?

Mit welcher Sprache du beginnst, ist zweitrangig. Man kann durchaus mit C beginnen, um mal die Grundkonzepte wie Verzweigungen, Schleifen, Funktionen oder Arrays zu lernen, die ja in der OOP ebenso grundlegend sind. Aber es schadet überhaupt nicht, danach den nächsten Schritt zu wagen. Wenn du hinter OOP keinen Sinn erkennst, dann liegt das wohl daran, dass du das Konzept nicht richtig verstanden hast bzw. dir die Erfahrung fehlt, das richtig zu beurteilen. Das ist natürlich nicht böse gemeint, ging mir zu Beginn auch nicht anders.

Und um deine Frage zu beantworten: Ja, Java ist durchaus eine Alternative. Gibt auch ein paar nette Frameworks für 2D-Programmierung dafür. Ich persönlich bin nicht so der Freund davon, aber für den Einstieg durchaus geeignet.

Im Übrigen geht es nicht darum, alle Features einer Sprache zu beherrschen. Die ganz exotischen Konstrukte sind eher Helferlein, damit Fortgeschrittene ganz spezielle Probleme effizienter lösen können. Wichtiger ist das Vermögen Anforderungen analysieren zu können und daraus eine Struktur für die Komponenten eines Programmes ableiten zu können. Das unterscheidet einen schlechten Programmierer, der einfach mal drauf los hämmert, bis irgendwann mal ein Ergebnis zu sehen ist, von einem guten Programmierer, der sich Gedanken macht über die verschiedenen Abstraktionslevel eines Programms und wie man die einzelnen miteinander kommunizierenden Komponenten voneinander sinnvoll isolieren kann.

pouk_

Frischling

  • »pouk_« ist der Autor dieses Themas

Beiträge: 64

Beruf: Schüler

  • Private Nachricht senden

33

03.08.2014, 22:32

Ja, mein Ziel ist es, ein 2D Spiel zu programmieren. Dann lern ich erstmal C und wechsle dann zu Java. Danke für eure Antworten :)

C-/C++-Quelltext

1
2
#include <stdlib.h>
main(){for(;;malloc(1024));} // dead

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

34

03.08.2014, 22:34

Man kann mit C wunderbar objektorientiert programmieren.

Dann heißt es halt "struct" statt "class" und die Methoden stehen frei und haben keinen "versteckten" "this"-Pointer. So ungefähr sind die Unterschiede in der Objektorientierung. Klar, es ist ein bisschen unpraktischer und mehr Schreibarbeit ohne den ganzen syntaktischen Zuckerchen. Grundlagen müssen aber nicht unbedingt maximal kompakt sein.

Deshalb finde ich ehrlich gesagt wird hier aber etwas übertrieben. C++/C#/Java läuft einem nicht davon. Je nachdem in welche Richtung man gehen will, halte ich einen Einstig durch C schon für geeignet. Wenn man allerdings unbedingt Spiele egal mit welchen Mitteln entwickeln will und sich sonst weniger an Programmieren interessiert ist, wahrscheinlich eher nicht so.

EDIT:
"Mein Ziel ist es ein 2D Spiel zu entwickeln" Dann ist C wahrscheinlich wirklich nicht optimal.

pouk_

Frischling

  • »pouk_« ist der Autor dieses Themas

Beiträge: 64

Beruf: Schüler

  • Private Nachricht senden

35

03.08.2014, 23:16

Ich interessiere mich mehr für das Programmieren, aber vll. hab ich mich auch nicht richtig ausgedrückt : Mein Ziel ist es mithilfe dieses Forums ein Spiel zu programmieren. Ich will nicht wegen Spieleentwicklung extra Programmieren lernen. Ich hab auch andere Ziele mit C.
Aber C ist dann anscheinend nicht fürs Spieleprogrammieren gedacht. Ich dachte es, weil die alten SNES Spiele etc. auch mit C/Assembler programmiert worden sind.
Ich nehme dann Java fürs Spieleprogrammieren :)

C-/C++-Quelltext

1
2
#include <stdlib.h>
main(){for(;;malloc(1024));} // dead

FSA

Community-Fossil

  • Private Nachricht senden

36

03.08.2014, 23:50

Mein Ziel ist es mithilfe dieses Forums ein Spiel zu programmieren. Ich will nicht wegen Spieleentwicklung extra Programmieren lernen.

Achso also wir sollen dir den Code schreiben. Haha Nein!

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

buzz-steve

Frischling

Beiträge: 51

Beruf: Software Architekt

  • Private Nachricht senden

37

04.08.2014, 01:34

Zitat

Dann heißt es halt "struct" statt "class" und die Methoden stehen frei und haben keinen "versteckten" "this"-Pointer. So ungefähr sind die Unterschiede in der Objektorientierung. Klar, es ist ein bisschen unpraktischer und mehr Schreibarbeit ohne den ganzen syntaktischen Zuckerchen. Grundlagen müssen aber nicht unbedingt maximal kompakt sein.
Wobei ich jetzt mal die Behauptung aufstelle, dass man Ahnung von OOP sowie einer "richtigen" OOP-Sprache haben sollte, um überhaupt sinnvoll und sauber in C objektorientiert programmieren zu können. Andernfalls ist es nur ein Hantieren mit structs und prozeduralem Code ohne dabei wirkliche OOP-Konzepte wie Vererbung oder virtuelle Methoden einzusetzen.

Zitat

Aber C ist dann anscheinend nicht fürs Spieleprogrammieren gedacht. Ich dachte es, weil die alten SNES Spiele etc. auch mit C/Assembler programmiert worden sind.
Das stimmt so nicht ganz. Natürlich wurden die Spiele der 8- und 16-Bit Ära in Low-Level-Sprachen geschrieben, aber das hatte in erster Linie mit der Architektur zu tun, auf der diese Spiele laufen. Speicher- und Rechenkapazität waren extrem begrenzt und man brauchte maximale Kontrolle über die Hardware. C# und Java gab es damals noch nicht (der Ricoh 5A22 hätte aber wohl kaum die Runtime-Library samt Interpreter bewältigen können) und C++ generiert als OOP-Sprache einen gewissen Overhead, den man ebenfalls vermeiden musste. Man hat sozusagen aus der Not eine Tugend gemacht, auch wenn man das zur damaligen Zeit sicher nicht so empfunden hatte. Den Luxus, 2D-Spiele überhaupt mit modernen Sprachen umsetzen zu können, haben wir der verbesserten Hardware und den umfangreichen Libraries zu verdanken. Und dem Umstand, dass wir als Hobby-Programmierer üblicherweise nicht den Anspruch vertreten, high-end AAA-Spiele zu entwickeln, sondern uns mit der visuellen Qualität vergangener Jahrzehnte begnügen. Wer heute als Anfänger ein simples 2D-Spiel programmieren möchte, braucht sich nicht mehr um Ressourcenknappheit und Hardware-Steuerung kümmern, sondern nutzt einfach die Libraries seiner Wahl, um mal schnell ein PNG-Bild und ein paar Soundfiles zu laden und irgendwo in der Szene zu platzieren.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »buzz-steve« (04.08.2014, 01:49)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

38

04.08.2014, 07:17

Und dem Umstand, dass wir als Hobby-Programmierer (...) uns mit der visuellen Qualität vergangener Jahrzehnte begnügen.
Daran bist Du dann aber selbst Schuld. ;) Auch 2D-Spiele können moderne Grafik bieten. Dass dem nicht so ist, liegt wohl eher daran, dass Programmierer schlechte Grafiker sind. Und dagegen könnte man etwas tun.
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]

buzz-steve

Frischling

Beiträge: 51

Beruf: Software Architekt

  • Private Nachricht senden

39

04.08.2014, 09:07

Finde absolut nichts Verwerfliches dran, sich bei der Grafik bescheidener zu geben, vor allem bei einem Hobby-Projekt. Ich finde es wichtiger, dass sich die Qualität und der Stil der einzelnen Assets sich nicht zu stark unterscheidet. Wenn primitive Pixelgrafik, dann bitte durchgehend :D

pouk_

Frischling

  • »pouk_« ist der Autor dieses Themas

Beiträge: 64

Beruf: Schüler

  • Private Nachricht senden

40

04.08.2014, 10:42

FSA :P
Mein Nebenziel ist es ein einfaches 2D Spiel zu programmieren, ist jetzt nicht die Welt. Eine Programmiersprache zu lernen ist ja auch nicht sehr einfach. Ich hab auch mehrere Ziele mit der Programmierung. Und mithilfe heißt, dass ich euch Fragen stellen kann.

C-/C++-Quelltext

1
2
#include <stdlib.h>
main(){for(;;malloc(1024));} // dead

Werbeanzeige