Wie sollte man am besten programmieren?

Hallo Communtity,

Ich hab da eine Frage die mich schon länger interessiert:
Ich kann ein paar Zeilen C programmieren, aber nichts besonderes. Und jetzt hätte ich mal ,weil ich vorhabe meine Kenntnisse auf diesem Gebiet mal etwas auszubauen; die Frage in welchem Fall ich am besten welche Programmiersprache benutze;

Fall 1: Ein 3D Spiel, Welche Programmiersprache benutze ich da am besten und welche Programme brauche ich, für Programm Objekte etc zu ertsllen.

Fall 2: Ein einfaches Programm das irgendeine Aufgabe erfüllen soll, völlig egal welche, Aber das Programm sollte eine Benutzeroberfläche mit Buttons und so haben, wie bekomme ich das hin? Alles was ich bis jetzt schreiben kann, kann man nur mit der Tastatur steuern. Wie bekomme ich ne Maus und ne ordentliche Benutzeroberfläche hin.

Es ist völlig egal wenn die Sprache nicht C ist, aber einfach mal was würdet ihr mir empfehlen, in welche Sprache/n soll ich mich einarbeiten?

Gruß

Hi,

Fall 1: Ein 3D Spiel, Welche Programmiersprache :benutze ich da
am besten und welche Programme brauche ich, für :stuck_out_tongue:rogramm
Objekte etc zu ertsllen.

Also, ohne dich entmutigen zu wollen, aber aus deinen beschriebenen Kenntnissen, wirst du Jahre dafür brauchen, selbst erfahrene Programmierer brauchen das. An einem Spiel arbeiten 50 oder mehr Entwickler 2-3 Jahre lang.
Ein Flashspiel(Actionscript) kriegst du auch alleine hin, wenn du dich reinhängst…ansonsten schau dir mal die A3Gamestudios an…dort kannst du deine Welt modellieren (designen) und schreibst die Funktionen in C-Lite, auf deren Page gibt es en mass Tutorials auch in deutsch. Ansonsten wird für Games C/C++ verwendet und meist OpenGL, aber darüber hinaus brauchst du auch gute Kenntnisse in Linearer Algebra!

Fall 2: Ein einfaches Programm das irgendeine :Aufgabe erfüllen
soll, völlig egal welche, Aber das Programm sollte :eine
Benutzeroberfläche mit Buttons und so haben, wie :bekomme ich
das hin? Alles was ich bis jetzt schreiben kann, :kann man nur
mit der Tastatur steuern. Wie bekomme ich ne Maus :hin

Dafür kannst du alles möglich an Sprachen nehmen (Java, C#, C++, Python usw.). Fang erst mal klein an, das andere kommt nach und nach…lern erst Algorithmen und Datenstrukturen, das ist wirkliches programmieren, wenn du das kannst, geh den nächsten Schritt und baue Gui’s, dafür würde ich dir C# mittels WPF oder Java empfehlen. Einen Link zu Openbooks zu den jeweiligen Sprachen findest du ein Post unter dem hier.

Gruß

Es kommt auf die Anforderungen an.

Soll es z.B. Plattform unabhängig sein bietet sich Java an.
Wenn ein 3D Spiel programmiert wird kauft man sich meist eine 3D Engine ein. Dann programmiert man in der Sprache weiter in der die Engine programmiert ist.
Wenn man einen Mikrochip programmieren will bietet sich VHDL an.

Jede Sprache hat seine eigenen Vor/Nachteile.
Man muss sich überlegen was man machen will und überlegt sich dann welche Sprache für die Umsetzung am besten geeignet ist.

Ach ja.

Ich habe programmieren mit Delphi gelernt war ganz gut vor allem weil eine GUI so schön einfach erstellt werden kann.
An der Uni dann Java.
Mit dem passenden Editor kann man auch schnell hübsche GUIs basteln.
C++ ist ebenfalls eine sehr verbreitete Sprache.

Zum programmieren lernen würde ich eine dieser 3 nehmen.

Das mit A3Gamestudios hört sich ja mal interesant an, ich werd mich mir mal die Seite ansehen.
Das die zwei Ziele beide ziemlich hochgesteck sind ist mir klar, aber ich frag das ja weil ichs jetzt wirklich lernen will. Und das so die Möglichkeiten sind wo ich mal hin will :smile:
Ich will halt einfach den Fall verhindern, das ich jetzt anfange eine Sprache zu lernen und die dann später völlig nutzlos für meinen Zweck ist.

also gibts auch bücher oder sowas mit denen ihr gute erfahrungen gemacht habt?

mfg

Hi,

wie schon gesagt, für Punkt 1, und eigentlich für beide Punkte, ist eigentlich nicht die Sprache erstrangig, sondern die Auswahl der Bibliothek. Meist existieren dann brauchbare Anbindungen für alle aktuellen Programmiersprachen.

Soweit ich das mitlese, ist für unspezifisches „Game-Programmieren“ SDL empfehlenswert, für speziellere Genres dann natürlich spezialisiertere Engines (die dann wieder auf SDL aufsetzen könnten,…).

Zum Oberflächenbauen sind Qt (C++, Python,…), wxGTK (C, alles mögliche) und in Java SWT populär.

Gruß Lutz

Hi,

Ich will halt einfach den Fall verhindern, das ich jetzt
anfange eine Sprache zu lernen und die dann später völlig
nutzlos für meinen Zweck ist.

Ich habe schon viele Sprachen gelernt, die ich heute nicht mehr benutze. Nutzlos war keine einzige. Jede hat meinen Horizont erweitert.

Mit jeder Sprache die du lernst, wird es einfacher eine neue Sprache zu lernen.

In der heutigen Zeit würde ich mit Java, C# und php,Python fürs Web anfangen.

C bzw C++ sollte unbedingt zumindest angerissen werden, da dort viel Konzepte entstanden sind, die fast überall irgendwo in Verwendung sind. (Bei Programmierung von Spielen ist das eher Pflicht)

Wenn man dann noch mal über den OOP Rand hinweg auf funktionale Sprachen schaut, hat man grob alles gesehen. (Einige werden das natürlich anders sehen)

Je nachdem auf welche Art von Anwendungen man spezialisiert, wirst du dann noch auf andere Programmiersprachen treffen. Die zu erlernen ist dann aber meist recht einfach, da alle am Ende auf dem gleichen Prozessor laufen müssen und daher nicht was völlig anderes entstehen kann. :smile:

Gruss
Joey

Ich finde die webseit von a3gamestudios nicht :frowning:
Kann bitte jemand den Link posten wenn er ihn kennt ?

Ok, also wärs fürs erste ne gute Idee wenn ich jetzt mich in java einarbeite und meine kenntnisse in C etwas ausbaue?

Kennt denn jemand ein gutes Buch, einen guten Compiler, Modellierungsprogramm etc?

mfg

Ups…das Programm ist Gamestudio A7 (ist schon etwas her als ich mich damit beschäftigt habe) hier der Link > http://www.3dgamestudio.com/
Unter Forum/Online Tutorials findest zu en mass Tutorials. Klick dich einfach mal durch, die haben die Seite etwas geändert…

Gruß

http://openbook.galileocomputing.de/c_von_a_bis_z/
http://openbook.galileocomputing.de/javainsel/

Mit den beiden Sprachen machst du sicherlich nichts verkehrt.

Für C benutz den Compiler gcc, für Java javac …hast du aber bestimmt schon drauf. Als Entwicklungsumgebung > Eclipse oder Netbeans …Netbeans ist anfängerfreundlich, kannst damit direkt Gui’s bauen…Eclipse ist etwas anfängerfeindlich, aber besser (meine Meinung)…Plugins für Eclipse findest du hier > http://marketplace.eclipse.org/ …mit beiden IDE’s kannst du Java sowie C programmieren, für C würde ich persönlich aber emacs benutzen und als Debugger gdb + valgrind. Und du sollest dir überlegen ein Linuxsystem, als Dualboot zuzulegen, falls du Windowsuser bist, da dort alles hinsichtlich C-Programmierung viel cooler ist. Ansonsten musst du dir cygwin besorgen und installieren, um den gcc-Compiler unter Windows zu benutzen. Link > http://www.cygwin.com/

Gruß

Ok, danke für die Hilfe, ich bild mir mal ne Meinung und werd mich dann so nächstes Wochenende wieder melden.

Ich halte, insbesondere wenn du größere Projekte machen willst (was ich dir auf gar keinen Fall ausreden möchte, solang es dir Spaß macht, wie schon von anderen erwähnt wird das halt sehr viel Arbeit und Zeit in Anspruch nehmen), es für die falsche Herangehensweise „eine Programmiersprache“ lernen zu wollen. Willst du große Projekte professionell umsetzen, solltest du eher versuchen zu lernen wie Softwaredesign und Programmierung funktioniert.
Für große Projekte willst du sicherlich objektorientierte Sprachen benutzen (z.B. C++, Java, Objective-C, C#, wobei je nach genauer Anwendung manche Sprachen besser geeignet sind als andere), d.h. es wäre sinnvoll dich mit Softwaredesign im allgemeinen und insbesondere mit objektorientiertem Design auseinanderzusetzen. Du kannst bei größeren Projekten nicht einfach drauflosprogrammieren, da produzierst du automatisch sehr schlechten Code bei, der im schlimmsten Fall gar nicht funktioniert, zumindest aber grausam zu debuggen wird. Bei größeren Projekten nimmt das Softwaredesign meist deutlich mehr Zeit in Anspruch als die tatsächliche Umssetzung.
Außerdem solltest du, gerade bei größeren Projekten, dir Wissen über Prototyping und Testen/Debuggen aneignen. Du machst kein riesiges Design für dein Projekt und implementierst das einfach, du möchtest vorher auch einzelne Teile deines Designs testen, wozu oft eine rudimentäre Implementierung als Prototyp (die wiederum manchmal sogar sinnvoller in einer anderen Sprache zu realisieren ist als das eigentliche Projekt) sinnvoll sein könnte, und du wirst bei der Implementierung Fehler machen, d.h. du solltest auch wissen wie du herausfindest ob und wo du Fehler gemacht hast, d.h. Testfälle (auch für einzelne Module) erstellen, testen, Fehlersuche, Fehlerbehebung. All diese Kenntnisse sind weitgehend unabhängig von einer konkreten Programmiersprache, und für größere Projekte ist es sehr sinnvoll, wenn nicht erforderlich, sich mit solchen Dingen auseinanderzusetzen.

Hi,
aufe alle deine fälle passt Visual C# für „normale“ Anwendungen wie schon gesagt würde ich dir WPF oder Windows Forms empfehlen und für Spiele das XNA-Framework.
http://www.microsoft.com/germany/express/
http://msdn.microsoft.com/de-de/xna/
http://msdn.microsoft.com/de-de/library/bb200104.aspx
Lg Knerd

Hmm… hört sich interessant an, wie würdest du denn in meinem Fall vorgehen? Also so als mehr oder weniger Neueinsteiger. Zu den größeren Projekten, mir ist schon klar, das mein erstes Projekt kein assasins creed oder so was ist, aber das ich jetzt anfange schließt ja wohl nicht aus, das ich auch größere Sachen machen will, wenn ichs mal halbwegs kann.

danke für die links, ich werde sie mir ansehen sobald ich die Zeit finde