[Person] Brainsmith

Hier könnt ihr euch selbst, eure Homepage, euren Entwicklerstammtisch, Termine oder eure Projekte vorstellen.
Forumsregeln
Bitte Präfixe benutzen. Das Präfix "[Projekt]" bewirkt die Aufnahme von Bildern aus den Beiträgen des Themenerstellers in den Showroom. Alle Bilder aus dem Thema Showroom erscheinen ebenfalls im Showroom auf der Frontpage. Es werden nur Bilder berücksichtigt, die entweder mit dem attachement- oder dem img-BBCode im Beitrag angezeigt werden.

Die Bildersammelfunktion muss manuell ausgeführt werden, die URL dazu und weitere Details zum Showroom sind hier zu finden.

This forum is primarily intended for German-language video game developers. Please don't post promotional information targeted at end users.
Antworten
Benutzeravatar
Brainsmith
Establishment
Beiträge: 109
Registriert: 04.09.2009, 13:52
Echter Name: Fabbo

[Person] Brainsmith

Beitrag von Brainsmith »

Hi, ich bin Brainsmith/Fabian.

Wie wahrscheinlich jeder andere, will ich gerne ein Spiel entwickeln / an der Entwicklung eines Spiels teilhaben.
Für mich als Mathematiker kommt eigentlich zunächst nur die Engine-Programmierung in Frage.

Kaum hatte ich die Vorstellung vom Entwickeln einer Engine mal ausgesprochen, wurde ich gleich in ein Team aufgenommen, wo ich die dort benutzte (gekaufte) Engine durch eine eigene, angepasste Real-Time-Strategy-Engine ersetzen will.
C++-Wissen ist mittlerweile vorhanden, nur die DirectX-Themen sind noch sehr schleierhaft.

Ich bin mir auch völlig bewusst, dass es kein Akt ist, den man in kurzer Zeit erledigen kann. Vor allem, wenn man nur schwer an Informationen zur Spieleentwicklung kommt.
Deshalb habe ich mich hier angemeldet. Um von Leuten, die selber entwickeln, einige Ratschläge zu bekommen, welche Quellen man am besten nutzt, um sich so schnell wie möglich weiterzuentwickeln.

Meine Zeit, die ich zu investieren habe, kennt derzeitig keine Grenzen, da ich als Student in NRW Semesterferien habe. ^^
So kann es auch mal vorkommen, dass ich bis zu 14 std am Tag vor dem Rechner sitze und mir Wissen aneigne, das mir auf meinem Weg zur Engineprogrammierung hilfreich ist.

(Falls meine Frage hier nicht reinpasst, gebt mir bitte den Forenlink, wo die Frage hinkommt.)
Frage: Welche Literatur lohnt sich in meinem Fall zu kaufen? Ich habe bereits "3D-Spieleprogrammierung mit DirectX und C++" von David Scherfgen gekauft und bin recht enttäuscht, da sehr viel auf der mitgelieferten Engine basiert, die nicht immer im detail erklärt wird. Es wird vielmehr erklärt, wie man die Engine benutzt. Griff ins Klo (naja, nicht ganz).
Es geht mir in diesem Fall speziell um Engine-Programmierung.

Vielen Dank im Voraus

Brainsmith
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: [Person] Brainsmith

Beitrag von Aramis »

Herzlich Willkommen im Forum!
Frage: Welche Literatur lohnt sich in meinem Fall zu kaufen?
Dave Eberly, 3D Game Engine Design

Mach ich hier öfters Werbung dafür, weil ich es für wirklich gut gemacht und informativ halte. Ziemlich mathematisch gehalten, was dir ja keine Probleme bereiten sollte :-)
Benutzeravatar
Brainsmith
Establishment
Beiträge: 109
Registriert: 04.09.2009, 13:52
Echter Name: Fabbo

Re: [Person] Brainsmith

Beitrag von Brainsmith »

Vielen Dank für den Tipp.

Ich werd mir das Buch gleich mal zulegen. Und ich denke, dass der mathematische Teil mir nicht so schwer fallen wird, da hast du Recht.
Was ich bisher gesehen habe, ging nicht viel über einfache numerische Verfahren und lineare Algebra hinaus.
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Person] Brainsmith

Beitrag von kimmi »

Ich fand Introducion to 3D Game Programming with DirectX 9 ganz informativ. Siehe http://www.amazon.de/Introduction-Game- ... 370&sr=8-2

Gruß Kimmi
Benutzeravatar
dowhilefor
Moderator
Beiträge: 173
Registriert: 27.02.2009, 15:44
Alter Benutzername: 6SidedDice
Echter Name: Nico Probst
Wohnort: Bochum
Kontaktdaten:

Re: [Person] Brainsmith

Beitrag von dowhilefor »

Herzlich willkommen :)

Mein Favorit war immer http://www.realtimerendering.com/ sollte in jedem Haushalt vorhanden sein :)
Mein Gehirn besteht nur noch aus einem hash-index, ich weiss was ich kenn aber kenn nicht was ich weiss
Gelöschter Benutzer
Beiträge: 92
Registriert: 26.02.2009, 22:09

Re: [Person] Brainsmith

Beitrag von Gelöschter Benutzer »

Hier meine Tipps:

Erstmal Infos besorgen, wie DirectX (9) grundsätzlich arbeitet: http://www.directxtutorial.com - die Kostenlose Variante reicht ;) - und Updates sind nicht so viele.

Dann in DirectX 10 einarbeiten: "Beginning DirectX 10 Game Programming" von Wendy Jones um den Überblick zu erhalten. Dann Wissen vertiefen und sich die Funktionen im DirectX SDK ansehen.

Dann HLSL erlernen und üben: Dazu http://www.nvidia.com -> Developers -> FX Composer 2 benutzen.

Haste dann alles verstanden: Erste Engine in C++ selbst schreiben um Erfahrungen zu sammeln. Ggf. schon Assimp für Objekte benutzen um dich mit Objekten vertraut zu machen.

Dann ShaderX- oder GPUGems-Buch der aktuelleren Auflage holen. ShaderX 7 ist dabei sehr gut gelungen. Dann lernst du viele Techniken kennen.

Im Gegensatz zu Aramis kann ich dir Dave Eberlys Buch in deinem Sinne überhaupt nicht empfehlen. Er geht nur komplett auf die mathematische Seite ein und betrachtet diese rein hauptsächlich. Was es dem tatsächlichem Game Engine Development angeht gibt es hier und da nur andeutungen wie man es effizient umsetzt. Die Themen sind meistens auch schon differenziert gesagt etwas älterer :) Natur und nicht mit heutigem zu vergleichen. Kann da nur aus Erfahrungen sprechen, da ich das Buch mir irgendwie mal angeschaut und gelesen habe: War ganz nett, habs dann aber ohne es zu bereuen verkauft. Und ich glaube eine plattformunabhängige Engine ist nicht gerade dein Ziel ;).

Was es dann noch angeht - auch wenn es schwer fällt: Viel Dokumentieren: Parameter, hauptsächliche Funktionen, Visio-Standardflussdiagramm zu den wichtigsten Methoden schreiben (zwecks Überblick und Darstellbarkeit). Dann wirklich Interfaces (Klassen mit rein virtuellen Methoden) zu jeder Eigenschaft schreiben und dann spezialisieren -> Spart später mal viel Arbeit bei Portierungen (zb. DirectX 10 -> 11).

Wenn du willst kannst du dir mal den derzeiten Stand meiner DX10 Engine ansehen um dir einen Überblick über DX zu schaffen und wie man das exemplarisch packen könnte: http://bsgameengine.sourceforge.net/ . Vergiss aber bei mir das mit der Doku - ich war :) faul in diesem Sinne derzeit. Aktueller Code dürfte bei Bruteforce-Terrain-Indexed oder Demo Atmosphere sein.

So, ich hoffe das hilft :).
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: [Person] Brainsmith

Beitrag von Aramis »

Die Themen sind meistens auch schon differenziert gesagt etwas älterer Natur und nicht mit heutigem zu vergleichen
Schwachsinn, die meisten Techniken veralten kaum. Man kann sie mit modernerer Hardware/'moderneren' APIs nur schneller, manchmal auch eleganter umsetzen ...
Benutzeravatar
Zudomon
Establishment
Beiträge: 2254
Registriert: 25.03.2009, 07:20
Kontaktdaten:

Re: [Person] Brainsmith

Beitrag von Zudomon »

Auch wenn das hier viele vielleicht anders sehen, ist meiner Meinung nach die beste Variante, sich einfach selbst mit der Materie zu beschäftigen. Es ist zwar Zeitaufwendiger, bietet dir dafür aber die Möglichkeit, in Zukunft wesentlich kreativer mit den ganzen Mitteln rumzuhantieren. Vieles ergibt sich sowieso von alleine. Mir kommen Bücher vor, wie eine Komplettlösung zu Monkey Island. Zwar bringen sie dich zum Ziel, aber man wird immer abhängiger von den Lösungen der Anderen. Naja, ich sag mal, jeder so wie er es für richtig hält. Wollte mit diesem Post nur auf eine Alternative aufmerksam machen. ;)
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: [Person] Brainsmith

Beitrag von Seraph »

Hallo und willkommen bei uns im Forum. Im Gegensatz zu den anderen moechte ich Dir keine Quellen nennen, sondern ein paar Fragen stellen. :D

Du sagst, dass Du gern ein Spiel entwickeln respektive an der Entwicklung eines Spiels teilhaben moechtest, beschraenkst es aber sofort auf die Engine-Programmierung, aufgrund dessen dass Du Mathematiker bist.

Was genau interessiert Dich an der 'Engine-Programmierung'? Das Design, nur bestimmte Teilbereiche, einfach alles, ...?

Warum kommt fuer Dich als Mathematiker nur die Engine-Programmierung in Frage?

Ich kenne eure derzeitig verwendete Engine nicht. Aber warum moechtest Du diese durch eine eigene Engine ersetzen?


Versteh mich bitte nicht falsch, ich moechte Dich von nichts abbringen, aber deine ersten beiden Saetze sind im Grunde genommen genau das Problem, was viele hier in der Vergangenheit gehabt haben. Der Wunsch war ein Spiel, haengen geblieben sind sehr viele bei der 'Engine'.

Dazu kommt es mir so vor, als ob Du noch am Erfahrung sammeln bist, weshalb sich mir die Frage stellt, warum Du eine dem Anschein nach kommerzielle Engine durch eine eigene wohl eher unerfahrene und somit wahrscheinlich unausgereifte Engine ersetzen moechtest. Ich habe auch das Gefuehl, dass Du meinst, dass man sich all dies anlesen kann, meiner bescheidenen Meinung nach ist dieses jedoch ein Irrtum, da man vieles erst durch Erfahrung lernt. Aber wie gesagt, das ist nur meine persoenliche Meinung.

Um nochmal zu verdeutlichen was mein Punkt ist. Ihr solltet euch ueberlegen ob ihr eure Energie in eine neue 'Engine' stecken wollt oder lieber die bereits existierende 'Engine' anpasst und/oder darauf aufbaut und die gewonne Zeit in das Spiel investiert.

('Engines' gibt es mittlerweile wie Sand am Meer.)
Benutzeravatar
Brainsmith
Establishment
Beiträge: 109
Registriert: 04.09.2009, 13:52
Echter Name: Fabbo

Re: [Person] Brainsmith

Beitrag von Brainsmith »

Ich beschränke mich zunächst auf die Engine, weil ich gerne von unten nach oben lerne. Ich habe keinesfalls vor, immer nur Engines zu programmieren, aber ich denke natürlich auch, dass es ein Mammut-Projekt ist. Vielleicht war die Aussage, dass für mich nur die Engine-Programmierung in Frage kommt, etwas übereilt und zu subjektiv.

Was mich an der Engine-Programmierung interessiert:

Man ist Vermittler zwischen Grafikkarte und Mensch bzw zwischen DirectX und Mensch. Ich finde das Ganze zu vereinfachen ist eine Aufgabe, die mir Spaß macht.
Dann haben wir noch die Erfahrung mit DirectX, die man, ohne die Engine zu programmieren, wohl nie bekommt. Desweiteren soll bei dem Spiel alles selbstgemacht sein. Eine kommerzielle Engine strebt da der Ideologie entgegen. Das ist also weniger eine technische Frage, als vielmehr eine ideologische.

Warum kommt für mich nur die Engine-Programmierung in Frage?
Das tut sie gar nicht. Sie dient mir lediglich als Einstieg. Aber da ich auch später versuchen werde, in der Branche zu arbeiten, so sehe ich, dass es für mich nicht so viele Perspektiven gibt. Entweder Programmierer, Producer oder Designer. Producing ist einfach nicht mein Fall. Designer werde ich mit Sicherheit auch nicht, egal ob Game designer, Lvl designer oder ähnliches. Für alle diese Jobs brauch man wohl ein wenig künstlerische Fähigkeiten, wenn ich das richtig verstanden habe. Und naja, die sind bei mir eher mau ausgeprägt.
Also sind wir bei der Programmierung. Hier kommen wir wieder zu einer iedologischen Sache: Ich bin grundsätzlich begeistert davon, das Herzstück von etwas zu erstellen. Da kommt mir die Engine gerade recht. Zusätzlich dazu war dies auch die einzige Einstiegmöglichkeit in das Team, was aber für mich eher nebensächlich war. Dennoch hat dieses Team eine hervoragende Wirkung: Man möchte die Leute nicht enttäuschen und gibt sein bestes, was, wenn wir mal ehrlich sind, bei solo-Projekten nicht unbedingt der Fall ist. Zumindest geht mir das so. Alleine ist alles doof ^^

Und selbstverständlich hast du recht: Die Engine wird selbstverständlich schlechter als die gekaufte. Aber darum geht es bei diesem Projekt gar nicht. Es geht hier weniger ums Endprodukt, als vielmehr und den Lernzyklus, den man bei der Entwicklung hat. Es geht darum, zusammen etwas zu erschaffen. Der ständige Dialog mit anderen Programmern etc.
Streng genommen ist das Endprodukt sogar egal, auch wenn das jetzt anders wirkt als geplant. Evtl ist der Sinn ja im Zusammenhang ersichtlich. Um dir vorzugreifen, dass ich evtl das Team 'ausnutze': Es handelt sich bei allen um Newbies. Jeder lernt den Teil, den er bearbeitet, gerade erst. Das Endprodukt soll zwar toll sein, aber Ziel ist es, sich Methoden anzueignen, die man für spätere Entwicklungen brauch.

Ich fasse deinen Post auch nicht als negativ auf, im Gegenteil. Ich finde es nett, dass jemand mit mehr Erfahrung (und davon geh ich jetzt einfach mal aus ^^), mich vor Fehlern beschützen will, die andere bereits begangen haben. Diese Fürsorge ist gut, denn das wirkt auf mich so, als ob hier nicht nur auf den Code geachtet wird.
Andererseits bin ich harte Kritik gewohnt, also lasst hören, wenn ich welche verdiene.
Benutzeravatar
Aramis
Moderator
Beiträge: 1458
Registriert: 25.02.2009, 19:50
Echter Name: Alexander Gessler
Wohnort: 2016
Kontaktdaten:

Re: [Person] Brainsmith

Beitrag von Aramis »

Man ist Vermittler zwischen Grafikkarte und Mensch bzw zwischen DirectX und Mensch
... oder zwischen OpenGL und Mensch. Ein wichtiger Aspekt der Engine-Programmierung ist es, solche kleinen Details wie das verwendete Grafik-API schnell auf der untersten Ebene wegzuwrappen und durch Komfortfunktionen zu ersetzen/erweitern! Das ist übrigens kein Pladoyer für API-unabhängige Engines - aber selbst wenn eine Engine nur z.B. DX10 nutzt, wird im Normalfall auf der Engine-Ebene auf der so was wie Szenenverwaltung u.ä ablaufen keine Zeile DirectX-Code mehr zu finden sein. Daher auch meine bewusst in die Richtung tendierende Buchempfehlung oben!

Schlussendlich besteht die Schwierigkeit bei der Grafik-/Spieleprogrammierung nicht im verwendeten API, sondern in der recht hohen Komplexität der gesamten Spielmechanik/Szenenverwaltung.
Auch wenn das hier viele vielleicht anders sehen, ist meiner Meinung nach die beste Variante, sich einfach selbst mit der Materie zu beschäftigen
Ich denke, es kommt auf einen guten Mix an. Zum Einstieg und als Nachschlagewerk sind Bücher, u.U. auch Online-Tutorien imho gut geeignet. Das dabei angeeignete Wissen praktisch umzusetzen und mit eigener Erfahrung zu erweitern ist dann ein langsamer und stetiger Prozess durch den man nur mit Zähigkeit und hohem Zeiteinsatz durchkommt ...

- Alex
Benutzeravatar
kimmi
Moderator
Beiträge: 1405
Registriert: 26.02.2009, 09:42
Echter Name: Kim Kulling
Wohnort: Luebeck
Kontaktdaten:

Re: [Person] Brainsmith

Beitrag von kimmi »

Zudomon hat geschrieben:Auch wenn das hier viele vielleicht anders sehen, ist meiner Meinung nach die beste Variante, sich einfach selbst mit der Materie zu beschäftigen. Es ist zwar Zeitaufwendiger, bietet dir dafür aber die Möglichkeit, in Zukunft wesentlich kreativer mit den ganzen Mitteln rumzuhantieren. Vieles ergibt sich sowieso von alleine. Mir kommen Bücher vor, wie eine Komplettlösung zu Monkey Island. Zwar bringen sie dich zum Ziel, aber man wird immer abhängiger von den Lösungen der Anderen. Naja, ich sag mal, jeder so wie er es für richtig hält. Wollte mit diesem Post nur auf eine Alternative aufmerksam machen. ;)
Ums probieren und Erfahrungen sammeln kommt man auch mit Büchern nicht umhin, das ist klar. Aber machmal vermitteln Bücher einen besseren Gesamtüberblick über das Thema. Und das ist gerade beim Enginebau sehr sehr umfangreich.
Eine weitere Alternative ist die von Seraph: bestehende Engine anschauen und damit rumprobieren.

Gruß Kimmi
Benutzeravatar
Brainsmith
Establishment
Beiträge: 109
Registriert: 04.09.2009, 13:52
Echter Name: Fabbo

Re: [Person] Brainsmith

Beitrag von Brainsmith »

Danke für die vielen Hinweise und Tipps.

Ich sehe diese Engine als ein Lernprojekt. Beispielsweise bin ich mit sehr vielen Begriffen noch nicht vertraut bzw weiß nur am Rande, worum es sich handelt.
Irgendwie muss man sich ja einen Überblick verschaffen.. ^^

Wie wenig ich vom Thema verstehe, ist mir erst gerade bewusst geworden, als ich mich einfach aus Neugier mal durch ein paar Themen gewühlt habe.
So ie ich es bis jetzt beurteilen kann, gibt es sowas, wie eine schnellste/ beste Methode nicht immer, um irgendetwas umzusetzen.
Das macht mich natürlich neugierig, weil man dann, rein hypothetisch, in vielen belangen die Chance hat, selber etwas zu realisieren, was am Ende tatsächlich brauchbar ist.
Damit wird stupides Copy-Paste unnötig und wenn man ganz viel Glück/Können hat, toppt man das ganze sogar noch. Natürlich toppe ich in nächster Zeit ersteinmal gar nichts.. ^^ Aber die Aussicht ist doch recht schön, dass ich mal die Möglichkeit haben werde. :mrgreen:

Ps: ich muss sagen, dafür, dass ich zufällig über dieses Forum gestolpert bin, gefällt es mir hier sehr gut. Die Hilfsbereitschaft, die ich hier sehe, finde ich super.
Und vor allem gibt es kein geflame, wenn man mal eine Sache anders umsetzen will, als die Mehrheit es tut. Daumen hoch
Antworten