Seite 2 von 4
Re: Game Engine
Verfasst: 29.12.2009, 10:17
von Thoran
GamerZ hat geschrieben:...
Ich behersche keine Programmersprachen.
...
Aufgrund deiner obigen Aussage, würde ich dir abraten gleich mit DirectX- oder OpenGL-Tutorials anzufangen. Schau dich lieber mal nach Einsteigertutorials für C++ um (oder von der Sprache die du lernen willst). Mir hat damals ein Buch recht gut geholfen, das am Ende jedes Kapitels Aufgaben gestellt hat zum selber lösen, so daß man den Kapitelinhalt rekapituliert hat. Allerdings möchte ich es nicht unbedingt empfehlen (obwohl ich persönlich es gut fand), da es sich um Programmierung in C und nicht OOP mit C++ gehandelt hat.
Wenn du dann die Grundlagen hast, dann bastle doch ein Textkonsolenspielchen, z.B. ein Ratespielchen oder so was, oder ein klassiches Textadventure (was schon recht komplex ist). Damit lernst die Grundlagen der Ein- und Ausgabe. Danach würd ich mich an DX oder OpenGL ranmachen.
Was du letztendlich machst ist deine Sache.
Thoran
Re: Game Engine
Verfasst: 29.12.2009, 11:14
von dowhilefor
Ich find XNA nicht gut habs mal probiert find es nicht gut.
Will lieber richtig C++ lernen.
Xna ist gut für Anfänger das ist mir klar ^^.
Tut mir leid, aber was ist das denn für eine Aussage? Klingt mir etwas zu sehr nach "Klavier spielen ist nicht cool, ich will lieber E-Gitarre spielen!"
Was heisst du hast es "probiert"? Ich kann mir nicht vorstellen du hast dich mit XNA wirklich auseinander gesetzt. XNA basiert auch nur auf Direct3D und im Grunde lassen sich damit die gleichen Sachen machen. Es nimmt einem nur halt schon viel nervige Arbeit ab die man sonst selber machen muss. Und das ganze eben in einer "Anfänger" Sprache wie C#. Mag vielleicht uncool erscheinen, aber beruflich arbeite ich nur noch mit C# und es gibt Dinge da wurde ich das Schütteln bekommen wenn ich die nicht in C# machen dürfte. Und würde ich mich wieder mal an die Spieleentwicklung setzen, würde ich direkt zu XNA greifen, einfach weil echte "Anfänger" keine Lust haben alles selber zu machen sondern ihre Tools lieber nach der Aufgabe aussuchen und nicht nach dem wie cool die anderen es so finden.
Deine Posts klingen leider sehr nach dem typischen Muster "Ich kann nicht programmieren, wie kann ich am schnellsten Crysis nachprogrammieren". Dir wurden ein paar gute Anlaufpunkte zum Lernen genannt, ich selber hätte dir auch XNA und C# empfohlen weil es heutzutage als Hobbyentwickler imo immer weniger Sinn macht sich C++ aufzuhalsen. Und jedes Spiel das du in naher Zukunft abschliessen könntest, wenn überhaupt, ist ohne Probleme mit C#/Java realisierbar. Du bekommst schneller Einblicke und ein Verständnis dafür wie Programmieren funktioniert, während du dich bei C++ noch fragst was Pointer genau sind. Oder aber du lernst lieber das "männliche" das "coolere" das "Profi" Handwerk und setzt dich direkt mit x86 Assembler hin, weil C++ ist nur was für Anfänger ;)
C++, C#, Java sind nur Sprachen XNA, Direct3D, OpenGL, SDL sind nur Bibliotheken was zählt ist was du damit machen willst.
Gruß
Nico
Re: Game Engine
Verfasst: 29.12.2009, 15:36
von Herror
Also ich finde C# ... eher weniger gut.
Es ist wohl eher dafür ausgelegt um in einem Team mit vielen Leuten die .NET in unterschiedlichen Programmiersprachen benutzen sehr gut. Aber ich hasse dieses gezwungene einzwängen in die Objektorientierte Programmierung und allein wenn ich schon das "Wort" "Just-in-time-Kompilierung" höre, dann denke ich nur an die Projekte die in C++ Stunden für die Kompilierunf brauchten und asoziiere damit sofort: "schrecklich langsam".
Ich lasse mich gern vom Gegenteil überzeugen aber 9 von 10 Programmierer die ich auf C# angesprochen habe meinten nur "Kotz, würg DOT NET, igitt".
Der 10. war jemand, der noch nie Programmiert hat und C# lernt und keine anderen Sprachen kennt...
Wo liegt denn der Vorteil dieser "Anfängersprache" außer der tatsache, dass es nur auf Windows läuft?(sarkasmus)
Re: Game Engine
Verfasst: 29.12.2009, 15:56
von Aramis
allein wenn ich schon das "Wort" "Just-in-time-Kompilierung" höre, dann denke ich nur an die Projekte die in C++ Stunden für die Kompilierunf brauchten und asoziiere damit sofort: "schrecklich langsam".
Das ist aber ein objektives Argument gegen C#. Dass JIT-Compiler auf kurze Kompilationszeiten getrimmt sind, zählt vermutlich nicht. Auch nicht dass der JIT-Compiler
vorkompilierten Bytecode entgegennimmt, der bereits so nahe an reinem Assembly dran ist dass es für den Compiler nicht mehr ganz so viel zu tun gibt wie für einen C++-Compiler der 20000 Header einliest, nebenbei dutzende Templates instanziert und dazu auch noch Optimierungsprobleme am laufenden Band löst.
Ich lasse mich gern vom Gegenteil überzeugen aber 9 von 10 Programmierer die ich auf C# angesprochen habe meinten nur "Kotz, würg DOT NET, igitt".
:-)
Wo liegt denn der Vorteil dieser "Anfängersprache" außer der tatsache, dass es nur auf Windows läuft?(sarkasmus)
C# geht via
Mono auch problemlos. Unbeabsichtigt hat Microsoft mit der CLI Windows und Linux näher zusammengebracht als dies vorher der Fall war.
Re: Game Engine
Verfasst: 29.12.2009, 18:38
von Chromanoid
@GamerZ: wenn du spiele machen willst, dann benutze xna, game maker, unity3d oder vielleicht die unreal engine. wenn du etwas mehr technische details kontrollieren möchtest dann benutze vielleicht c#, java oder andere sprachen, die nicht so systemnah sind. Bei java hättest du bspw. gleich gut ausgebaute plattformunabhängigkeit mit dabei, leider vielleicht auf kosten der grafikunterstützung. c# + directx ist sicherlich auch eine gute option... mit xna könntest du sogar auf der xbox 360 spiele erstellen... wenn das nicht ein absoluter pluspunkt ist... ich weiß nicht genau, ob objektorientiertheit ein guter einstieg in programmierung ist. wenn du es also erst mal mit funktionalen sprachen probieren möchtest kann ich dir turbo pascal empfehlen. damit habe ich in der siebten klasse sehr zugänglich die grundlagen von programmiersprachen kennengelernt und auch mit einem snake spiel im grafikmodus erste erfahrungen mit "grafikprogrammierung" gemacht. falls du dich tatsächlich an diese uralte einsteigerfreundliche sprache wagen möchtest kann ich dir wenn du noch jünger bist "turbo pascal for kids" empfehlen. allerdings gibt es das wohl nur noch in antiquariaten vielleicht ist ja
http://www.amazon.de/Delphi-Einsteiger- ... 8791364353 was (vom selben autor)...
nur wenn du wirklich _nur_ engines programmieren möchtest und zwar ohne spiel dazu, weil das sonst zu viel zeit frisst, würde ich mich an c++ o.ä. wagen. alleine garbage collection kann einen als anfänger in den wahnsinn treiben und das ist bei dynamischen sprachen wie c# und java in den normalen fällen schon gut gelöst mit dabei...
für einen spieleentwickler der in der heutigen zeit _anfangen_ will erfolgreich alleine spiele zu basteln sollten xna, flash und unity (oder ggf. andere engines - game maker ist wirklich einen blick wert [es ist enorm wie viele populäre indie titel mit dem gemacht sind... z.b.
spelunky für pc]) die einzigen denkbaren alternativen sein.
@Herror: also ich finde für c# und auch für java (im nicht spiele bereich) gilt absolut der Satz von Richard Schubert's Signatur: "Produktivität über Performance".
Re: Game Engine
Verfasst: 30.12.2009, 12:33
von GamerZ
@ Matze
Dann musst du dir eben beispielsweise Visual C++ installieren und das aktuelle DirectX SDK. Oder du entscheidest dich für OpenGL, je nachdem, was du besser findest. Dann such dir ein gutes C++ Tutorial (z.B. das was Aramis vorgeschlagen hat) oder ein gutes Buch und machst dich über die DirectX SDK Tutorials her oder such dir irgendwelche OpenGL Tutorials. Diese hier sind z.B. ein guter Einstieg. Nebenbei solltest du unbedingt dein Wissen über Vektoren- und Matrizenrechnung aufpolieren - ganz ohne wirst du nicht sehr weit kommen. Dann lässt du deiner Phantasie einfach freien Lauf und programmierst deine Engine oder dein Spiel oder deinen Level-Editor oder oder. Da ich selber mittlerweile nicht mehr in C++ programmiere, kann ich dir in der Hinsicht leider keine weiteren Tipps geben. Allerdings solltest du keine Probleme haben hier im Forum kompetente Hilfe zu finden.
Ok ^^
@ Herror
Dabei muss ich dich aber warnen. Damit kann man nämlich ordentlich auf die Fresse fliegen!
Um das Problem deutlicher anzusprechen: Habe mir ein Buch gekauft von Jesse Liberty aus einem Buchfachhandel (möchte keine Namen nennen) und das Buch, was ich hatte war dermaßen veraltet.
Es wurde aus dem Englischen ins Deutsche übersetzt und ich vermute mal zu einer Zeit zu der die Bezeichnungen für die OOP in C++ noch nicht vollständig etabliert waren.
Auf jeden fall vermittelt das buch sehr sehr gut die Programmiersprache an sich aber die ganzen Bezeichnungen waren alle anders oder falsch übersetzt.
Ich habe danach nämlich kein Wort mehr aus den Turorials oder aus anderen Büchern vestanden, wenn da von Membern, Methoden, Objekten etc. gesprochen wurde, weil in dem alten Buch wirklich für alles ein anderer Begriff verwendet wurde...
Mit blieb da nichts anderes Übrig als mir ein aktuelleres Buch zu kaufen: DirectX 9 und Visual C++ von Christioan Rousselle. Das buch enttäuscht, weil es zwar versucht einen einstieg in C++ zu bieten aber gleichzeitig versucht in DirectX und Windowsprogrammierung einzuführen... ich habe davon nicht profitiert damals.
Ich würde dir das Buch hier empfehlen:
http://www.amazon.de/Lernen-professione ... 826617649/
und das Dazugehörende Übungsbuch um dein Wissen zu festigen
http://www.amazon.de/Das-%C3%9Cbungsbuc ... 826617657/
Diese Kombo ist mit Abstand das teureste was du machen kannst, aber wenn du es richig ernst meinst, dann ist das die beste möglichkeit um vernünftig in C++ einzusteigen.
Nachdem du C++ gut bis sehr gut beherrscht wird es ein Leichtes sein DirectX und Spieleprogrammierung zu lernen, denn die besteht eigenlich nur daraus, bestehende Bibliotheken zu versenden und Objektorientiert zu programmieren.(So meine interpretation)
Mach aber nicht den Fehler sofort Spiele programmieren zu wollen und irgendsoein halbgares Zeug zu kaufen, dass dir verspticht in 20 Tagen dein erstes Spiel fertig zu haben... davon hast du einfach nichts, wenn du noch nie Programmiert hast.
Wenn du ersmal gelernt hast zu programmieren, dann kannst du in jeder Sprache programmieren und alles andere sehr schnell lernen.
Lern also ersmal Programmieren. Danach kannst du das Spieleprogrammieren anfangen.
Soweit mein Rat.
Dass Buch sieht vielversprechend aus und gute Bewertungen.
Dass Buch gefällt mir hab ins Inhaltsverzeichnis geguckt.
@ Thoran
Aufgrund deiner obigen Aussage, würde ich dir abraten gleich mit DirectX- oder OpenGL-Tutorials anzufangen. Schau dich lieber mal nach Einsteigertutorials für C++ um (oder von der Sprache die du lernen willst). Mir hat damals ein Buch recht gut geholfen, das am Ende jedes Kapitels Aufgaben gestellt hat zum selber lösen, so daß man den Kapitelinhalt rekapituliert hat. Allerdings möchte ich es nicht unbedingt empfehlen (obwohl ich persönlich es gut fand), da es sich um Programmierung in C und nicht OOP mit C++ gehandelt hat.
Wenn du dann die Grundlagen hast, dann bastle doch ein Textkonsolenspielchen, z.B. ein Ratespielchen oder so was, oder ein klassiches Textadventure (was schon recht komplex ist). Damit lernst die Grundlagen der Ein- und Ausgabe. Danach würd ich mich an DX oder OpenGL ranmachen.
Was du letztendlich machst ist deine Sache.
Thoran
Ja erst Programmieren lernen dann anfangen mit OpenGL oder DirectX.
@ downhilefor
Tut mir leid, aber was ist das denn für eine Aussage? Klingt mir etwas zu sehr nach "Klavier spielen ist nicht cool, ich will lieber E-Gitarre spielen!"
Was heisst du hast es "probiert"? Ich kann mir nicht vorstellen du hast dich mit XNA wirklich auseinander gesetzt. XNA basiert auch nur auf Direct3D und im Grunde lassen sich damit die gleichen Sachen machen. Es nimmt einem nur halt schon viel nervige Arbeit ab die man sonst selber machen muss. Und das ganze eben in einer "Anfänger" Sprache wie C#. Mag vielleicht uncool erscheinen, aber beruflich arbeite ich nur noch mit C# und es gibt Dinge da wurde ich das Schütteln bekommen wenn ich die nicht in C# machen dürfte. Und würde ich mich wieder mal an die Spieleentwicklung setzen, würde ich direkt zu XNA greifen, einfach weil echte "Anfänger" keine Lust haben alles selber zu machen sondern ihre Tools lieber nach der Aufgabe aussuchen und nicht nach dem wie cool die anderen es so finden.
Deine Posts klingen leider sehr nach dem typischen Muster "Ich kann nicht programmieren, wie kann ich am schnellsten Crysis nachprogrammieren". Dir wurden ein paar gute Anlaufpunkte zum Lernen genannt, ich selber hätte dir auch XNA und C# empfohlen weil es heutzutage als Hobbyentwickler imo immer weniger Sinn macht sich C++ aufzuhalsen. Und jedes Spiel das du in naher Zukunft abschliessen könntest, wenn überhaupt, ist ohne Probleme mit C#/Java realisierbar. Du bekommst schneller Einblicke und ein Verständnis dafür wie Programmieren funktioniert, während du dich bei C++ noch fragst was Pointer genau sind. Oder aber du lernst lieber das "männliche" das "coolere" das "Profi" Handwerk und setzt dich direkt mit x86 Assembler hin, weil C++ ist nur was für Anfänger ;)
C++, C#, Java sind nur Sprachen XNA, Direct3D, OpenGL, SDL sind nur Bibliotheken was zählt ist was du damit machen willst.
Gruß
Nico
Ich hab Xna probiert gefiel mir aber nicht.
Anstatt C# zu lernen kann ich ja direkt dass Buch dass mir Herror empfehlt hat bestellen und mit C++ anfangen.
@ Chromanoid
@GamerZ: wenn du spiele machen willst, dann benutze xna, game maker, unity3d oder vielleicht die unreal engine. wenn du etwas mehr technische details kontrollieren möchtest dann benutze vielleicht c#, java oder andere sprachen, die nicht so systemnah sind. Bei java hättest du bspw. gleich gut ausgebaute plattformunabhängigkeit mit dabei, leider vielleicht auf kosten der grafikunterstützung. c# + directx ist sicherlich auch eine gute option... mit xna könntest du sogar auf der xbox 360 spiele erstellen... wenn das nicht ein absoluter pluspunkt ist... ich weiß nicht genau, ob objektorientiertheit ein guter einstieg in programmierung ist. wenn du es also erst mal mit funktionalen sprachen probieren möchtest kann ich dir turbo pascal empfehlen. damit habe ich in der siebten klasse sehr zugänglich die grundlagen von programmiersprachen kennengelernt und auch mit einem snake spiel im grafikmodus erste erfahrungen mit "grafikprogrammierung" gemacht. falls du dich tatsächlich an diese uralte einsteigerfreundliche sprache wagen möchtest kann ich dir wenn du noch jünger bist "turbo pascal for kids" empfehlen. allerdings gibt es das wohl nur noch in antiquariaten vielleicht ist ja
http://www.amazon.de/Delphi-Einsteiger- ... 8791364353 was (vom selben autor)...
nur wenn du wirklich _nur_ engines programmieren möchtest und zwar ohne spiel dazu, weil das sonst zu viel zeit frisst, würde ich mich an c++ o.ä. wagen. alleine garbage collection kann einen als anfänger in den wahnsinn treiben und das ist bei dynamischen sprachen wie c# und java in den normalen fällen schon gut gelöst mit dabei...
für einen spieleentwickler der in der heutigen zeit _anfangen_ will erfolgreich alleine spiele zu basteln sollten xna, flash und unity (oder ggf. andere engines - game maker ist wirklich einen blick wert [es ist enorm wie viele populäre indie titel mit dem gemacht sind... z.b. spelunky für pc]) die einzigen denkbaren alternativen sein.
Ich sollt erst mit Game Engines arbeiten und versuchen wie sie funktionieren
Und dann C++ lernen ?
MfG GamerZ
Re: Game Engine
Verfasst: 30.12.2009, 13:07
von Matze
GamerZ hat geschrieben:Ich hab Xna probiert gefiel mir aber nicht.
Anstatt C# zu lernen kann ich ja direkt dass Buch dass mir Herror empfehlt hat bestellen und mit C++ anfangen.
Nur mal so rein interessehalber: Wenn du gar nicht programmieren kannst, _wie_ hast du denn dann XNA ausprobiert? Und was genau hat dir daran nicht gefallen?
Re: Game Engine
Verfasst: 30.12.2009, 13:16
von GamerZ
@ Matze
XNA gefällt mir an sich selbst nicht.
MfG GamerZ
Re: Game Engine
Verfasst: 30.12.2009, 14:02
von Matze
GamerZ hat geschrieben:XNA gefällt mir an sich selbst nicht.
Ja, das hast du schon dreimal geschrieben, aber es muss ja einen Grund haben, warum du das nicht magst und stattdessen die wesentlich kompliziertere Variante mit C++ / DirectX / OpenGL / ... vorziehst. Versteh mich nicht falsch, jeder so wie er mag, aber gerade wenn du Neuling im Bereich Programmierung bist und Ambitionen in Richtung Spieleentwicklung hast, solltest du für die Möglichkeiten, die dir XNA bietet dankbar sein. Welche Anforderungen hast du denn die XNA nicht erfüllt?
Re: Game Engine
Verfasst: 30.12.2009, 14:10
von GamerZ
@ Matze
Ja sry 3 mal geschrieben ^^"
Warum falsch verstehen ^^ ich ziehe die komplizierte Variante mit C++ DirectX/OpenGL vor , weil es für mich besser "klingt".
Die Anforderung die es mir nicht erfüllt ist dass es kein C++ benutzt und wenn man Games für die Xbox360 entwickeln will brauch man eine Premiummitgliedschaft dass kostet.
MfG GamerZ
Re: Game Engine
Verfasst: 30.12.2009, 14:43
von dowhilefor
Na ich glaube hatte doch recht ... Es muss das coole sein das die "Großen" benutzen, nicht das uncoole was wohl nur was für Anfänger ist.
Einsichtsresitent, ich warte mal auf die ersten "Wer möchte mit mir ein MMORPG programmieren" posts.
GamerZ, viel Glück. Du kannst es brauchen :)
Re: Game Engine
Verfasst: 30.12.2009, 14:47
von Lord Delvin
Ich würd mich an deiner Stelle erstmal durchs Lua buch arbeiten. Das ist ne ziemlich einfache Sprache und du lernst programmieren. Wenn du damit probleme hast, dann wirst du mit vertretbarem Aufwand nie zu irgendwas kommen, was dir selbst gefällt und du hast das festgestellt, ohne viel Zeit investiert zu haben.
Danach würd ich mir einfach irgendein Buch über C++ Spiele entwicklung nehmen und durcharbeiten. Nebenher kannst du dann versuchen die Sprache zu lernen und mit dem Ergebnis solange rumspielen bis du ein Grundlegendes verständnis davon hast.
Aber um dir nichts vor zu machen: Von deinem Standpunkt aus wird es MINDESTENS 2 Jahre dauern bis du genug verständnis von C++ hast um damit ne Engine zu schreiben. Wenn du nur auf ein cooles Aussehen aus bist, dann schreib Programme mit Ogre o.ä.. Das braucht weniger Zeit, erfordert weniger Verständnis von Maschineneigenschaften, Algorithmen, Design, Spracheigenschaften, etc..
Hab selbst vor fast 10 Jahren mit C++ angefangen und drei Dinge gelernt:
1. Man will keine Engine schreiben
2. Man will nicht für Windows entwickeln
3. NIEMAND sollte mit C++ anfangen
C++ ist imo die featurereichste Sprache die es gibt, was sie für mich sehr interessant macht, was aber auch dazu führt, dass man sehr viele Konzepte erst nach einigen Jahren so richtig versteht. Deswegen glauben viele auch Java wäre besser. (Btw. wenn du kein Lua verwenden willst, dann fang mit Java oder C# an, wobei ich eher zu Java tendieren würde, weils dafür abartig gute Tools gibt)
Gruß
PS: @dowhilefor: überrascht dich das wirklich? mal ganz ehrlich: ich hab auch so angefangen und aus mir is auch was geworden, obwohl ich hier eigentlich nich mehr so viel mache, seit studium so anstrengend ist:-/
Re: Game Engine
Verfasst: 30.12.2009, 14:57
von Matze
GamerZ hat geschrieben:Warum falsch verstehen ^^ ich ziehe die komplizierte Variante mit C++ DirectX/OpenGL vor , weil es für mich besser "klingt".
Wenn dir XNA nicht gefällt, weil du objektiv nicht einschätzen kannst, wie leistungsfähig es ist und weil dir als Anfänger ganz einfach das Wissen und die Erfahrung für so eine Enschätzung fehlen und du dich dann einzig und allein aufgrund der Tatsache, dass es "besser klingt" für die Kombination C++ / DirectX / OpenGL entscheidest, dann finde ich das schon etwas merkwürdig. Ich glaube du bist in der Hinsicht vielleicht etwas blauäugig und hast dich noch nicht wirklich mit der Materie auseinandergesetzt, sonst würdest du nicht solche Argumente vorbringen. Ich will dich hier keineswegs missionieren, aber du solltest vielleich nochmal das ein oder andere recherchieren. Du arbeitest doch auch nicht mit einem C-64, weil das besser klingt als Core2Duo E7400.
GamerZ hat geschrieben:Die Anforderung die es mir nicht erfüllt ist dass es kein C++ benutzt und wenn man Games für die Xbox360 entwickeln will brauch man eine Premiummitgliedschaft dass kostet.
Da hast du Recht. Es besser mit C++ zu entwicklen, denn wenn du damit Xbox Games entwickelst, kostet das nix, weil das so ohne weiteres gar nicht geht. Gutes Argument. :roll:
Ich glaube deine übertriebene Affinität zu C++ tut dir nicht gut, weil du dich dadurch anderen Möglichkeiten gegenüber verschließt. Auch wenn hartgesottene Entwickler das vielleicht gerne mal anders sehen, ist C++ - zumindest im Hobbybereich - längst nicht mehr das Maß aller Dinge.
Re: Game Engine
Verfasst: 30.12.2009, 15:05
von GamerZ
@ downhilefor
Anstatt solche posts zu machen könntest du lieber helfen.
Alle die mir in diesem Thread geholfen haben(Bendanke mir dafür ^^) haben mir geholfen daraus habe ich auch was gelernt anstatt deiner posts.
Und dass mit dem MMORPG ich bin nicht so blöd ich weiß dass ein MMORPG Komplex ist.
@ Lord Delvin
Ja ich werd LUA lernen und damit versuchen zu programmieren.
Dannach kann ich ja wie dus gsagt hast ein buch über C++ besorgen (der von Herror gefiel mir).
Danke für die Hilfe es war nützlich.
@ Matze
Also wenn ich richtig Verstanden habe sollte ich es mit XNA nochmal versuchen ?
Warum missionieren und über was recherchieren ?
MfG GamerZ :D
Re: Game Engine
Verfasst: 30.12.2009, 16:16
von dowhilefor
Anstatt solche posts zu machen könntest du lieber helfen.
Alle die mir in diesem Thread geholfen haben(Bendanke mir dafür ^^) haben mir geholfen daraus habe ich auch was gelernt anstatt deiner posts.
Und dass mit dem MMORPG ich bin nicht so blöd ich weiß dass ein MMORPG Komplex ist.
Das habe ich, mehr als mir lieb ist. Mein Ton gefällt dir vielleicht nicht, macht dir aber vielleicht klar wie sehr du doch auf dem Holz weg bist und "hoffentlich" bringt es dich dazu drüber nachzudenken.
Dir raten hier Leute, mit mehreren Jahren Erfahrung(Hobby wie Beruflich), etwas; Du bist jedoch dagegen ohne zu sagen warum bzw. "Es ist nicht C++" als Grund zu nennen.
Wenn dir wirklich C++ so wichtig ist, weil du glaubst das du _nur_ damit "wirklich" programmieren kannst; Lern es, haben hier viele gemacht mich einschliesslich schnapp dir am besten ein Buch von Bjarne Stroustrup. Ich dagegen bin mittlerweile froh mit C# arbeiten zu dürfen und vermeide wo es geht C++ zu benutzen, da man irgendwann einfach lernt es gibt nicht "Die eine coole Sprache" sondern nur eine weitere Sprache. Man wählt seine Werkzeuge doch nach dem Ziel aus und nicht welches am schönsten funkelt.
Also frag dich selber was möchtest du? Programmieren lernen? Dann lern es doch mit einer Sprache die dir nicht sofort vor die Füße kotzt, sondern eine die dir etwas entgegenkommt C#, Java und noch ein paar mehr. Sind Sprachen mit dennen ein umlernen später mal auf C++ wesentlich angenehmer ist als direkt alles auf einmal zu lernen. Programmieren ist nicht nur Syntax sondern eine Menge Paradigmen, Denkweisen, eigenes Vokabular. Und das meiste davon über mehrere Sprachen hinweg Verständlich.
überrascht dich das wirklich? mal ganz ehrlich: ich hab auch so angefangen und aus mir is auch was geworden, obwohl ich hier eigentlich nich mehr so viel mache, seit studium so anstrengend ist:-/
Ich bestreite das ja nicht, wir waren glaube ich alle so und das ist gut so. Mich stört nur Engstirnigkeit, nach Hilfe bitten, ablehnen ohne konkretes Argument geht einfach an mir vorbei. Und klingt eher nach "Mit was kann ich besser vor Klassenkameraden angeben?".
Re: Game Engine
Verfasst: 30.12.2009, 16:28
von Matze
GamerZ hat geschrieben:Also wenn ich richtig Verstanden habe sollte ich es mit XNA nochmal versuchen ?
Warum missionieren und über was recherchieren ?
Mit missionieren meinte ich, dass ich dich nicht überreden will XNA zu benutzen, wenn du eine (unbegründete) tiefgreifende Abneigung dagegen hast. Ich denke, dass deine Ablehnung C# / XNA gegenüber auf völlig falschen Annahmen beruht. Daher habe ich dir geraten dich noch einmal eingehend mit XNA zu beschäftigen, denn dann wirst du feststellen, dass du damit so ziemlich alles machen kannst, wonach du hier gefragt hast. Zudem ist die Lernkurve deutlich flacher und du wirst schneller vorankommen. Ich denke wie gesagt, dass es ein guter Einstieg in die Materie ist. Du lernst dabei viele Konzepte der 3D-Grafikprogrammierung kennen (Graphicdevices, Kameras, Matritzen, Lightning, Texturen, Modelle, Shader) ohne dass du dir erstmal große Gedanken machen musst, wie das alles funktioniert. XNA nimmt dir da viel ab. Du kannst dann Schritt für Schritt dein Wissen ausbauen und z.B. eigene Model-Importer oder Shader schreiben. XNA ist KEIN "Klick hier - klick da - fertig ist das Spiel"-Gamemaker, falls du sowas befürchtet hast. Du kannst alle "hauseigenen" Funktionen von XNA nutzen und musst dich um nichts weiter kümmern als dein Spiel oder was auch immer. Du kannst aber genauso gut beliebig komplex werden und eigene Sachen machen. Nebenbei lernst du C#, was so eine Mischung aus Java und C++ ist. Später, wenn du die essentiellen Konzepte der 3D-Programmierung intus hast, kannst du immer noch auf C++ umsteigen. Wenn du erstmal eine Programmiersprache beherrschst (hier C#), ist es auch nicht mehr so ein großer Schritt zu C++.
Letztendlich musst du selber entscheiden, aber warum willst du dir das Leben für den Anfang unnötig schwer machen? Übrigens: Wenn du dich wider erwarten für C# entscheiden solltest, dann ist
das hier ein ganz guter (und kostenloser) Einstieg.
Re: Game Engine
Verfasst: 30.12.2009, 16:35
von Aramis
Ich denke GamerZ hat nun genug gut gemeinte, aber widersprüchliche Vorschläge bekommen. Es ist Zeit anzufangen! egal, mit was.
Re: Game Engine
Verfasst: 30.12.2009, 16:43
von Thoran
Matze hat geschrieben:
GamerZ hat geschrieben:Die Anforderung die es mir nicht erfüllt ist dass es kein C++ benutzt und wenn man Games für die Xbox360 entwickeln will brauch man eine Premiummitgliedschaft dass kostet.
Da hast du Recht. Es besser mit C++ zu entwicklen, denn wenn du damit Xbox Games entwickelst, kostet das nix, weil das so ohne weiteres gar nicht geht. Gutes Argument. :roll:
Nicht ganz. Wenn man mit C++ entwickelt geht das schon auch für die XBox360 nur ist es noch etwas
viel teurer als mit dem XNA und der Premiummitgliedschaft für 99$. ;)
Thoran
Re: Game Engine
Verfasst: 30.12.2009, 17:00
von GamerZ
@ downforhile
Das habe ich, mehr als mir lieb ist. Mein Ton gefällt dir vielleicht nicht, macht dir aber vielleicht klar wie sehr du doch auf dem Holz weg bist und "hoffentlich" bringt es dich dazu drüber nachzudenken.
Dir raten hier Leute, mit mehreren Jahren Erfahrung(Hobby wie Beruflich), etwas; Du bist jedoch dagegen ohne zu sagen warum bzw. "Es ist nicht C++" als Grund zu nennen.
Wenn dir wirklich C++ so wichtig ist, weil du glaubst das du _nur_ damit "wirklich" programmieren kannst; Lern es, haben hier viele gemacht mich einschliesslich schnapp dir am besten ein Buch von Bjarne Stroustrup. Ich dagegen bin mittlerweile froh mit C# arbeiten zu dürfen und vermeide wo es geht C++ zu benutzen, da man irgendwann einfach lernt es gibt nicht "Die eine coole Sprache" sondern nur eine weitere Sprache. Man wählt seine Werkzeuge doch nach dem Ziel aus und nicht welches am schönsten funkelt.
Also frag dich selber was möchtest du? Programmieren lernen? Dann lern es doch mit einer Sprache die dir nicht sofort vor die Füße kotzt, sondern eine die dir etwas entgegenkommt C#, Java und noch ein paar mehr. Sind Sprachen mit dennen ein umlernen später mal auf C++ wesentlich angenehmer ist als direkt alles auf einmal zu lernen. Programmieren ist nicht nur Syntax sondern eine Menge Paradigmen, Denkweisen, eigenes Vokabular. Und das meiste davon über mehrere Sprachen hinweg Verständlich.
Wenn ich ehrlich bin bringt es mich zum nachdenken.
Außerdem ich wähle nicht C++ weil es "eine coole Sprache ist".
Ich finde es richtig programmieren zu können anstatt C# zu benutzen.
Grund: Für mich ist C# eien abgespeckte Version von C++.
Ich weiß dass man dass Werkzeug wählt dass man benötigt und nicht dass funkelt.
MfG GamerZ
--------------------------
@ Matze
Ok,habt mich überredet ^^
Ich fange dann an C# zu lernen.
Ich lad mir jetz dann VSC# und XNA
Thx MfG GamerZ
------------------------------
@ Aramis
Danke dir auch ^^
MfG GamerZ
------------------------------
@ Thoran
Danke dir.
^^
MfG Gamerz
--------------------------
Eine Frage kann man nacher von C# auch auf C++ umspringen ?
Wenn ja ist es schwer ?
Re: Game Engine
Verfasst: 30.12.2009, 17:18
von dowhilefor
Wenn ich ehrlich bin bringt es mich zum nachdenken.
Außerdem ich wähle nicht C++ weil es "eine coole Sprache ist".
Ich finde es richtig programmieren zu können anstatt C# zu benutzen.
Grund: Für mich ist C# eien abgespeckte Version von C++.
Und davon galt es dich abzubringen. C# ist keine abgespeckte Version von C++ ... Im Grunde ist C# überhaupt kein C/C++. Ich würde sogar fast soweit gehen und sagen C++ ist ein abgespecktes C# ;)(dafür kassier ich gleich böse flames). C# ist eine Hochsprache und bietet dadurch schon Sachen die man sich in C++ selber programmieren müsste oder sich durch libs wie boost etc. dazuholen müsste. Trotzdem würde auch ich nicht sagen das die eine Sprache der anderen überlegen ist. Es geht um den Anwendungsfall. In einem anderen Thread ging es dir bspw. um einen Leveleditor. Aus eigener Erfahrung kann ich dir sagen das du sowas zwar mir C++ unter Zuhilfenahme der WinAPI machen kannst bzw. wxWidgets oder QT, aber das du mit WindowsForms oder WPF wesentlich schneller und genauso gut und weit vorran kommst ohne wirkliche Nachteile zu haben. Einige Engineentwickler gehen sogar genau diesen Weg, Engine in C++(Meist auch wegen der Kompatibilität zu Konsolen) und den Tools in C#/WinForms/WPF.
Ich bin beruflich selber Toolsentwickler in der Spielebranche und glaub mir, es gibt Sachen dafür _will_ man kein C++ mehr benutzen ;)
Re: Game Engine
Verfasst: 30.12.2009, 17:28
von GamerZ
2 Fragen ^^
1. Ist es leicht von C# auf C++ zu springen ?
2. Ist es mit C# möglich einen Professionelen Leveleditor zu programmieren?
MfG GamerZ
Re: Game Engine
Verfasst: 30.12.2009, 17:41
von Aramis
1. Wenn du mal grundsätzlich programmieren kannst, ist der Sprung von a nach b immer verhältnismäßig leicht, v.a. wenn a und b sich von ihren Grundparadigmen und ihrer Syntax her ähneln, was auf C++ und C# durchaus zutrifft.
2. Es ist auch in Haskell, Erlang, Lisp, Smalltalk möglich einen professionellen Leveleditor zu schreiben. Entscheidend ist nicht die Sprache, sondern deine Fähigkeiten bzw. wie gut du die Sprache deiner Wahl für deine Zwecke einsetzen kannst. C# ist für Benutzeroberflächen, aber auch für Anbindungen an externe (C/C++) Frameworks (wie Game-Engines) gut geeignet. Ich würde persönlich Python mit wxWidgets bevorzugen, das ist aber eine Geschmacksfrage.
Fällt dir was auf? Jeder hier kennt den optimalen Weg, aber keiner ist auf seinem optimalen Weg dahin gelangt wo er heute ist. Schlussendlich ist jeder Weg richtig, denn er bringt dir mehr Erfahrung. Einen Masterweg gibt es nicht. Mach dich von dem Gedanken frei dass deine einziges Ziel darin besteht eine 'Game Engine plus professionellen Leveleditor' zu schreiben. Fang einfach an dir eine der genannten Sprachen einzuverleiben. Nimm die, für die dir die zugehörige Literatur/Tutorien am meisten zusagen. Langsam wird das hier sonst sinnlos :-)
Re: Game Engine
Verfasst: 30.12.2009, 17:50
von GamerZ
OK
Thx an alle
MfG GamerZ
Re: Game Engine
Verfasst: 30.12.2009, 18:01
von dowhilefor
2. Ist es mit C# möglich einen Professionelen Leveleditor zu programmieren?
Schau dir doch mal die
Vision Engine an. Die
Tools(Die unteren 4 Screenshots) da sind mit WindowsForms und C# gemacht.
Wobei du müsstest "proffessionell" definieren aber klar im Grunde ist es möglich. :)
Re: Game Engine
Verfasst: 30.12.2009, 18:09
von GamerZ
Die Vision Engine kenn ich die ist unglaublich ^^.
der VForge Leveleditor ist auch mit C# ?
Und die Grafiken wie werden die gemacht ??
Mit DriectX ist mir klar aber muss man dafür C++ können oder reicht C# aus ?
MfG GamerZ
Re: Game Engine
Verfasst: 30.12.2009, 18:34
von marcjulian
Hi,
japp unser Leveleditor ist komplett in C# und Managed C++ geschrieben und die Engine wird in einem Control gehostet,
der Managed C++ Teil ist die notwendige Abstraktion um zwischen Engine und C#/.NET zu vermitteln.
Letztenendes spielt also alles zusammen was dann auch das neuschreiben von bestehenden Features unnötig macht :)
Auf jeden Fall macht die Verwendung von C# es sehr einfach den Editor um neue Komponenten zu erweitern..
Re: Game Engine
Verfasst: 30.12.2009, 18:37
von GamerZ
Hi,
Bist du ein Entwickler der Vision Engine ?
Danke für Die Information.
MfG GamerZ
Re: Game Engine
Verfasst: 30.12.2009, 21:58
von marcjulian
Hi,
in der Tat - ich arbeite bei Trinigy und arbeit an verschiedenen Dingen so wie wir alle dort :)
(Editor/Engine/Tools/Third-party Integrationen)
Marc
Re: Game Engine
Verfasst: 30.12.2009, 23:34
von Herror
@GamerZ
Also ich würde mich auch lieber den Meinungen der anderen anschließen und dir empfehlen eine einfache Programmiersprache zu lernen, die dir wie gesaget "nicht vor die Füße kotzt", denn C++ nimmt es wirklich seeehr genau mit den Datentüpen und der Größe eines Arrays und ähnlichen sachen.
Das ist zwar mMn sehr hilfreich beim späteren Debuggen, wenn man wirklich an großen Projekten arbeitet, aber anfänger werden es kaum schaffen auch nur ein vernünftiges Projekt zu kompilieren, weil jedes mal 200 Fehler und 50 Warungen auftauchen.
Und dann kommen noch sachen hinzu wie die Namensräume, Zeiger, Referenzen und so komplizierte sachen wie templates die dich als Anfänger wirklich mehr in deiner Entwicklung stören als dass sie dir in diesen Momenten helfen.
Das 3D Gamestudio würde ich dir entgegen der erwähnten bemerkungen aber nicht empfehlen, weil der C-Lite Compiler keine vernünftigen Fehlermeldungen ausspuckt und erst beim Start des Spiels sagt, dass irgendwas nicht stimmt.
Zu C#: Mein Bruder muss das lernen und hat ein Buch kostenlos von der Schule dafür bekommen. Ich bin aber von den Meinungen anderer Geprägt und mag generell Sprachen wie JAva und C# nicht, die den Programmierer in die OOP reinzwängen.
Aber ich werde trotzdem in Zukunft mit XNA arbeiten und C# lernen, deshalb würde ich dir auch raten eine Sprache zu lernen die du vielleicht nicht magst, aber die dir empfohlen wird.
Ob C# einfach ist kann ich nicht sagen, aber um es noch einmal zu wiederholen, obwohl es auch andere schonmal gesagt haben: Wenn du eine Sprache wie C#, Pascal, PHP, C++, Java oder was auch immer lernst, dann lernst du dabei das Programmieren.
Alle Sprachen sind in ihrem Grundaufbau gleich! Wenn du C# gelernt hast brauchst du vielleicht zwischen 2 und 7 Tage und du kannst C++.
Ich habe C++ gelernt und wollte für meine Internetseite JavaScript lernen als beispiel. Dafür habe ich 2 Tage gebraucht. für PHP habe ich insgesamt 5 Tage gebraucht und ich habe angefangen mein erstes CMS zu schreiben.
Von einer Sprache auf die andere zu springen ist so leicht, dass du es später bereuen wirst gleich mit der Hardwarenahsten begonnen zu haben.
Denn wenn du andere Sprachen in einem Monat lernen kannst wirst du an C++ vielleicht sogar ein halbes jahr deine Zähne ausbeißen... Um ganz erlich zu sein habe ich mit 14 angefangen C++ zu lernen (War Hauptschüler) und habe dafür 1 Buch ganz durchgelesen, dann ein zweites Buch über C++ und DirectX9 zwei mal angefangen und nie wirklich zuende (3/4 des Buches) gelesen. Mit 16 habe ich mir das Buch von Stefan Zerbst gekauft in dem drinsteht wie man eine Engine schreibt. Nach dem 3. Kapitel habe ich nichts mehr hinbekommen und habe aufgegeben. Mit 20 habe ich dann eine Video2Brain DVD gekauft um dann mein ganzes Wissen, dass ich über die Jahre hinweg mit C++ zusammengesammelt habe aufzufrischen und nun, wo ich vor meinem Abi stehe liest sich das Buch von 3D-Spieleprogrammierung supereinfach und schnell und ich werde wohl dran bleiben und hoffentlich bald die ersten Bilder von meinem Projekt posten.
Es gibt sicherlich andere Beispiele, aber ich habe immer alleine programmiert und hatte keine Freunde die ebenfalls programmieren konnten oder es lernen wollten... nur einen, der es nach einer Woche aufgegeben hatte.
Ich habe also insgesamt 5 Jahre gebraucht um C++ und DirectX zu lernen und es gut genug zu können um Spiele-Egines zu schreiben.
Willst du richtig durchstarten und ernsthaft C++ lernen, dann stell dich darauf ein, dass du sehr viel selbstdisziplin haben musst um das durchzustehen und dich wirklich lange damit beschäftigen musst bevor du was Spielbares auf den Bildschirm bringen kannst.
Beschäftige dich wirklich erst mit etwas einfachem. Damit kannst du dann lernen wie man Programmiert, dann kannst du das Level noch steigern und dich in sachen wie C++ und Assambler einarbeiten, aber spar dir das Geld für die teuren C++ Bücher und spiel etwas mit den Programmierspachen rum, denn C++ ist wirklich sehr Hardwarenah und verzeiht dir wirklich keinen Fehler... Damit wirst du auf jeden fall kein Spaß haben, das kann ich dir jetzt schon garantieren und meine Linke Arschbacke darauf verwetten.
P.S.: Mein Wissen, dass ich über C++ hatte hat aber volkommen ausgereicht um PHP innerhalb von nur einer Woche zu beherschen und das CMS zu schreiben. Das bedeutet, in einer anderen Programmiersprache hätte ich sicher viel mehr sichtbaren Erfolg gehabt als mit C++, denn selbst wo ich C++ schon konnte, musste ich mich noch mit DirectX auseinandersetzet, was eine viel größere Hürde für mich war. Denn für C++ habe ich nicht 5 JAhre gebraucht um es zu lernen, aber um den Sprung von Konsolenanwendung in Win32 anwendung zu schaffen brauchte ich mehr Anstrengungen. In anderen Sprachen geht das leichter von der Hand. Wie z.B. Blitz3D. Einer Sprache für Computerspiele.
Re: Game Engine
Verfasst: 31.12.2009, 11:04
von Virus
Herror hat geschrieben:@GamerZ
Ich bin aber von den Meinungen anderer Geprägt und mag generell Sprachen wie JAva und C# nicht, die den Programmierer in die OOP reinzwängen.
Warum ist das ein Problem? Es entsteht so zumindest eine Grundstruktur, die man zwar immer noch total vermurksen kann, aber zumindest wird kein undurchschaubarer C / C++ Mischmasch darauß der keinerlei Vorteile hat.
Herror hat geschrieben:Alle Sprachen sind in ihrem Grundaufbau gleich!
Schonmal was von deklarativer Programmierung gehört? Scheinbar nicht...
Herror hat geschrieben:
Wenn du C# gelernt hast brauchst du vielleicht zwischen 2 und 7 Tage und du kannst C++.
Größter Schwachsinn. Ich kenne zwar C# (ist ja wohl Java ähnlich) kaum, aber allein das Zeigergefrickel usw. bringt irgendwann jeden zur Verzweiflung. C++ ist dermaßen komplex, dass nach 7 Tagen mal angucken keine Rede sein kann von "können".
Es stimmt natürlich, dass das erlernen von C++ viel schneller gehen wird, wenn man geübt ist in C#. Man wird auch nach 7 Tagen schon viel mit machen können. Aber es wird noch ne Menge geben, die man nicht kennt bzw. nicht wirklcih richtig macht.
Herror hat geschrieben:
Ich habe C++ gelernt und wollte für meine Internetseite JavaScript lernen als beispiel. Dafür habe ich 2 Tage gebraucht. für PHP habe ich insgesamt 5 Tage gebraucht und ich habe angefangen mein erstes CMS zu schreiben.
Javascript hat auch weitaus weniger Sprachfeatures. Und nach 5 Tagen PHP was anfangen hat nichts damit zu tun, das auch tatsächlich schöner Code rauskommt - wie auch? Ich sage nicht, das es nicht funktioniert, dein CMS...
Herror hat geschrieben:
Denn wenn du andere Sprachen in einem Monat lernen kannst wirst du an C++ vielleicht sogar ein halbes jahr deine Zähne ausbeißen...
Weder C++ noch irgend eine andere Programmiersprache kann in einem halben Jahr erlernt werden (wenn man von null anfängt). WIe auch, wenn man gar keine Erfahrung hat?
Programmieren können heißt ja nicht nur, irgendwie was hinzucoden damit was läuft, sondern möglichst auch so, das man das ganze Zeug gut lesen, warten und erweitern kann. Und sowas lernt sowieso nicht in der Zeit. Allein ist es erst recht schwer, ich denke gut geht soetwas nur in einem Team mit Leuten, die davon Ahnung haben.
Wenn man nur im eigenen Saft schmort findet man halt viele Design-entscheidungen toll, weil man eben nichts besseres kennt. Da helfen auch keine Artikel zu irgendwelchen Patterns (zumindest hat mir das nicht gehofen), sondern man muss halt auch gucken, wie man die Dinger sinnvoll anwendet (und warum).
Genauso wie bei Kommentaren: In allen Büchern / Tutorials steht: is wichtig! Also macht man welche. Aber die, die man macht, nutzen meist nichts oder nicht viel. Entweder zuviel oder einfach nichtssagend oder die entscheidenen fehlen dann.
Wenn man alleine an was werkelt, funktioniert das ja dennoch... aber auch sowas zählt dazu, progrmmieren zu können. Und das lernt man halt nicht so ohne weiteres in 2 Wochen an drei Abenden nach der Schule.
Noch so allgemein von mir: Viele sagen hier ja: mach C#, weil einfacher. Nur so einfach ist das alles nicht (wenn man von Null anfängt). Viele hier haben halt mit C++ angefangen und einige tatsächlich auch was auf die Reihe bekommen (der Rest ist ja nicht mehr hier), es ist schon machbar. C# gabs damals ja noch nicht ... aber ich denke nicht, das wesentlich mehr rausgekommen wäre, wenn es schon existiert hätte.
Unterschätze es nicht, genausowenig wie man das "schwere" C++ nicht überschätzen darf. Fang damit an, was dich interessiert. C++ lernen wollen, weils cool ist ... zwar kein Grund, aber wenn dich das motiviert, warum nicht. Den Unterschied zwischen beiden (und deren Vor- und Nachteilen) wirst du eh erst viel später feststellen können.
(Das heißt nicht, das ich dir C++ empfehle statt C# + XNA - beides ist machbar. XNA wohl komfortabler.)