.| Autor | Beitrag |
|---|---|
|
000 15.07.2003, 23:18 quest |
Also erstmal Hallo ! da ich neu hier bin erstmal wer ich bin. Ich heiße quest und bin C , C++ , PHP unter Linux programmierer. *g* Nun aber zu meiner Frage: Ich habe vor ein Spiel zu programmieren es soll ein Ego-Shooter werden. Da dachte ich ersteinmal an echte 3D zeugs aber mir ist OpenGL/Direct3D einfach zu komplex (für den anfang) Also dachte ich mir mache ich ein Spiel wie Doom1/2 da habe ich mir den Quellcode heruntergeladen und angeguckt naja lange rede kurzer Sinn.. Ich versteh einfach nicht wie ich das anstellen soll soetwas zu programmieren. also die Mathematik ist mir einfach unklar. Ich hab gesucht und das ?gute? Tut dazu "Ein Crashkurs in 3D-Mathematik" angeguckt. doch nunja da raffe ich schonmal gar nichts ist mir auch alles viel zu Theoretisch ich versteh auch die Verbindung nicht zwischen den Formeln und ein Spiel nicht. Was mich einfach intressiert ob jemand hier vielleicht jemand mal grob erklären könnte wie sowas gemacht wird. Also eine art Doom zu programmieren. wie gesagt soll alles sehr simpel werden. Ich dachte schon daran die Grafik und all das in SDL zu machen was haltet ihr davon ? Ach noch etwas die Doom engine ist ja auch auf eine Ebene also es gibt keine Etagen oder sowas und das muss für meine bedürfnisse auch nicht sein. Ich hoffe ihr könnt aus diesen Erguss aus Gedanken mein Problem verstehen und mir weiterhelfen. Danke im Vorraus. --Das Mag ich: Google Dieser Beitrag wurde am 15.07.2003 um 23:18 von quest bearbeitet. |
|
Profil || Suche |
|
001 16.07.2003, 12:13 Onkel Dittmeyer |
Ich sags nochmal: *hust* natürlich *hust* Es wird einfach nicht simpel werden, auch wenn du noch eine Dimension runter gehen würdest. Man kann sowas nicht mal eben erklären. Ein wenig Kenntnisse solltest du schon aus der Schule mitbringen, sonst wirst du nicht weiterkommen. Oder falls du die nicht hast, musst du sie dir halt woanders holen. Frag mal Dr. Google... Wenn du das verstanden hast, machst du dir erstmal einen Plan über die Module deiner Engine, also welches macht was usw. Dann überlegst du dir sofern du C++ oder ne andere objektorientierte Sprache verwendest eine gute Klassenhierarchie für Vektoren, Entities und was du noch alles benötigst mit dem Hintergedanken, dass du alles später möglichst Schnell rendern willst. Sofern das ganze "dynamisch" mit ladbaren Maps laufen soll, solltest du dich auch noch über gängige Polygonordnungsverfahren informieren oder ganz "einfach" einen BSP-Tree verwenden wie es auch in Doom gemacht wurde. -- |
|
Profil || Suche |
|
002 16.07.2003, 21:53 quest |
Das es nicht einfach wird war mir natürlich schon klar. Aber könnt ihr es nicht einmal versuchen mir zu erklären wie ich diese Levels Darstellen kann ? Naja wenn nicht dann bastel ich halt weiter an 2D Games, Aber das ist so furchtbar langweilig *g* --Das Mag ich: Google |
|
Profil || Suche |
|
003 17.07.2003, 01:43 Exec |
wo sind denn 2d-games langweilig? naja egal :D "selbermachen rockt am meisten :D" - -LeJean- |
|
Profil || Suche |
|
004 17.07.2003, 16:59 the_viking |
Guck mal nach raycaster tutorials... --thx, cu, MfG the_viking (( My =]=H=O=M=E=> Page! )) |
|
Profil || Suche |
|
005 18.07.2003, 12:04 Prefect |
Hast du jemals ein funktionierendes Spiel geschrieben? Falls nein, mach das erst mal. Ein billiges, rein zweidimensionales Jump'n'Run vielleicht, oder ein Asteroids-Klon oder so etwas in der Art. cu, Widelands - Gemütliche Aufbaustrategie, Free Software |
|
Profil || Suche |
|
006 18.07.2003, 18:56 apfelkorn |
analytische Geometrie Stufe 12 am Gymnasium ist absoluter Grundbestandteil. Lotfußpunktverfahren zur Kollisionsfeststellung und Skalarprodukt zur Projektion von Graden auf Ebenen und Vektorprodukt zur Bestimmung von Normalenvektoren und und und. Meine Empfehlung: 2-3 Jahre Zeit nehmen, Buch über analytische Geometrie kaufen und durcharbeiten. Am besten ist dir geholfen, wenn du mit einem Schulbuch arbeitest. Thema OpenGL: dieses kleine Spielzeug mag zwar anfangs ein bisschen komplex wirken, aber glaub mir, das nimmt dir verdammt viel arbeit ab. -- |
|
Profil || Suche |
|
007 18.07.2003, 22:35 WareWolf |
langsam käst es mich an. Warum denken in letzter Zeit immer mehr Leute, ein Spiel programmieren zu müssen, die absolut NULL Ahnung davon haben? Das sieht man doch schon an der Fragestellung. Und immer heisst es, was einfaches für den Anfang, Doom, Q1, Wolfenstein. Das ist nicht einfach! Wenn man sich bisher Websites zusammenklickt hat und die fertigen Menüanimationen an die richtigen Koordinaten gesetzt hat, ist man natürlich der Oberguru. Schon klar. Ein Vorschlag: setzt Euch an den Rechner, startet einen Texteditor oder von mir aus die Oberfläche Eurer Lieblingsprogrammiersprache (was, die fällt Euch gerade nicht ein?..schon verloren!). Also so richtig einsam, nur Du und der Cursor...und dann versuch mal das gute, alte PingPong zu programmieren. Du weisst schon, der schwarze leere Bildschirm, links ein senkrechter weisser Balken, mit Tasten auf und ab steuerbar. Das reicht fürs erste. Ich sag Dir, wenn du das geschafft hast, redest Du von Doom und Wolfenstein nicht mehr von einfachen Programmen für den Anfang... --Sig as a brick ┴┬┴┬┴┬┴┬┴┬┴┬┴ |
|
Profil || Suche |
|
008 20.07.2003, 13:42 apfelkorn |
btw. kann man pong wunderbar mit basic schreiben. entweder tastatur gegen computer oder tastatur gegen maus. -- |
|
Profil || Suche |
|
009 23.07.2003, 12:05 LSJ Master |
So, jetzt muss ich wohl auch mal einen Kommentar abgeben: Also ich kann dir auf keinen Fall mit dieser Mathematik helfen, aber ich muss sagen, dass es möglich ist, dass man nach einer gewissen Zeit ein Spiel programmieren kann. Ich selbst habe glaube ich vor 2 Jahren angefangen mit C++. Ich hatte mir schon 3 Bücher gekauft und deswegen habe ich da manchmal wieder angefangen, bin aber nie weiter als bis zu If-Bedingungen gekommen. Ich bin schon seit einem Jahr in der Mod-Szene, der ein oder andere wird mich zwar genau so wenig kennen wie alle anderen, aber ich habe schon bei vielen Mods gearbeitet und noch keiner ist fertig. Das hängt aber damit zusammen, dass ich bei den meisten seit dem Anfang dabei war und solche Mods und mal Zeit brauchen. Jetzt ist es bald soweit und die Alpha der ersten Mod (Day of Kills) ist fertig. Und vor etwas längerer Zeit hat mich da ein Kumpel angesprochen und gesagt, dass er eine Engine machen will und mich gefragt, ob ich vielleicht mitmachen will. Der hat mir empfohlen C++ zu lernen (also "ganz"). Und da habe ich angefangen das zu machen, ich musste aber wieder von vorn anfangen... naja, dann war das mit der Engine nicht mehr Thema, weil er es doch nicht machen wollte. So, da habe ich dann auch nicht mehr großartig weiter gemacht. Und dann kam der nächste vor ein paar Wochen und hat mir das gleiche angeboten. Also ich denke, das ich jetzt schon so manches kann (in C++). So und jetzt lese ich Bücher über Spieleenticklung und will mit ihm dann ne Engine schreiben. (zuvor eine eigene, oder ein kleines Game) So ich denke, dass man daran sieht, dass man das schaffen kann, wenn man die richtige Literatur hat. Und für eine Engine kannst du Jahre einplanen. Aber einwas habe ich gelernt: Das Erfolgserlebnis ist einfach größer und man kann auch Fehler beheben ohne andere Leute zu viel zu nerven. Leax -- |
|
Profil || Suche |
|
010 23.07.2003, 12:38 Onkel Dittmeyer |
Nein, es ist nicht besser, es ist essentiell! Ohne Sprachkenntnisse kommst du einfach nicht weiter, auch wenn es 1000e Tutorials dazu gibt. Alle sind für Leute gedacht die zumindest die Sprache bereits beherrschen und sich aus bestimmten Situationen selber "retten" können. Und zum Thema Waffencoding, ohne Sprache kommst du da auch nicht sonderlich weiter - man kann zwar den Code einer Waffe kopieren, aber Innovative Ideen kannst du ohne die Kenntnisse nicht realisieren... -- |
|
Profil || Suche |
|
011 23.07.2003, 13:10 LSJ Master |
ja, das ist aber auch mit Kenntnissen schwer, wenn du sowas umsetzten willst ohne Tutorial, denn man kennt die Engine ja nicht gut genug da ist eine eigene besser -- |
|
Profil || Suche |
|
012 23.07.2003, 13:23 apfelkorn |
Ich empfehle übrigens dringend die Literatur von der Stroustrup-Bibel, da einige programmiertechnische Konzepte drinstehen, die sich besonders bei Engineprogrammierung lohnen. Stichwort stl inkl. aller Standardcontainer etc. |
|
Profil || Suche |
|
013 01.08.2003, 18:25 PhoenixDragon |
Hmm kennt ihr schon das Buch? Also ich habs mir gekauft, bin fast durch und ich finds einfach gewaltig! apogryph |
|
Profil || Suche |
|
014 02.08.2003, 13:50 static_caster |
@LSJ Master hm, und das wäre? naja, *irgendwie* kann man ne ganze menge hinbekommen... es geht aber nit darum, es *irgendwie* hinzubekommen, weil du ja schon so manches kannst, sondern es geht darum, ein riesiges projekt zu starten, zu designen, nach (vielleicht) 500 000 zeilen code noch die übersicht zu behalten und ABSOLUT sicher in der verwendung der sprache zu sein und du wirst es auch debuggen müssen. du mußt nicht jedes sprachmittel von deiner lieblingssprache auf abruf haben (ich muß auch immer mal wieder nachgucken), aber du mußt mit der sprache dein problem umsetzen können. und grad bei c++ kann man "so manches" auf sehr viel verschiedenen wegen erreichen, weswegen sonne aussage eigentlich null aussage hat. @quest: ziemlich gewagtes statement! (wenigstens kein "C/C++ - Programmierer" :) naja, ich kann mich erinnern, daß doom mal DER technologieknüller war, wo NIEMAND anders das so hinbekommen hat (war bei dem jungen mit dem pogo-stab auch schon so). nur weil die spiele alt sind und scheiße aussehen, heißt das nicht, daß sie simpel sind. (wenn du es gegeneinander abwägst, mußt du in der heutigen zeit z.B. keine low-level grafikroutinen schreiben - es gibt ja ogl & d3d.) und zum schluss: ... und kann "C/C++" und asm perfekt! -- |
|
Profil || Suche |
|
015 02.08.2003, 16:35 quest |
Mhh jo jo habt ja recht ich bleib bei 2D *g*, Ach ne is ja auch zu komplex ich mach mach ihn aus und mach wieder Win drauf, am besten noch XP und spiel wieder 9 St. am Tag CS das kann ich wenigstens ;O Zumindest hat keiner mit "google.de" geantwortet *g* tolle leistung ! --Das Mag ich: Google |
|
Profil || Suche |
|
016 02.08.2003, 23:30 Retro |
google.de http://www.google.de/search?q=spieleprogrammierung+3d&ie=UTF-8&oe=UTF-8&hl=de&meta= --shielding people from their own stupidity is an evolutionary step backwards anyway. /* God is dead!............Nietzsche */ |
|
Profil || Suche |
|
017 04.08.2003, 14:09 Hanfling |
Erm. so komplex ist Pong nicht. Ich habe mal halbbesoffen eine Implementation hingesaut als ein Kumpel da war, nur um dem zu beweisen das es nicht so extrem komplex ist. Allerdings ist es vollkommen normal das man die Sache mit 3D Engines überschätzt. Sie wirken einfach eine gewisse faszination aus. Wenn man allerdings der Thematik näherkommt, merkt eigentlich jeder von alleine, wie komplex 3D Engines sind. Die Sache mit dem HL-SDK ohne C/C++ Kenntnisse seh ich so: Nun ist deine Zeit gekommen sprach der Tod, stolperte und brach sich das Genick. :o Dieser Beitrag wurde am 04.08.2003 um 14:10 von Hanfling bearbeitet. |
|
Profil || Suche |
|
018 04.08.2003, 14:27 Hanfling |
Btw. ich würde die Engine so in der Art aufbauen: In der main Funktion erstellst du ne Instanz der Klasse CEngine Dann brauchst du noch ne kleine Klasse als Timer CTimer oder so. Dann brauchst du ne CMap Klasse. In der du ne Funktion zum Laden der Map und zeichnen hast vorallem. Die Laden Funktion wird im Konstuktor von CEngine aufgerufen oder so. Die Draw() im Mainloop. Für Einheiten/Objekte benutzt du am besten ne Basisklasse CObject. Dann leitest du davon Klassen ab für z.B. Einheiten, Map Objecte. Die CObject sollte ne Funktion namens z.B. Think besitzen. In dieser Funktion wird dann erst Ki gehändelt und dann Zeichnen z.B. Dann schreibst du dir ne CObjectManager Klasse zum managen von den Objekten. Die Einheiten/Objekte werden dort in ner Linked List eingetragen. Und du castest dann die verschiedenen abgeleiteten Objekte zu CObject und rufst für jeden Eintrag der LL die Think() Funtktion auf. Ich hoffe das ist nen Ansatz der dir hilft. Du kannst auch erstmal sowas in 2D machen, wo es um einges leichter geht, weil man nur zweidimensional Denken muss. So ergänzt mal, ich ergänze auch evtl. noch später. Fertig ist das bei weitem noch ned. Nur so Grundgedanken die ich für den Aufbau von sowas habe. --Nun ist deine Zeit gekommen sprach der Tod, stolperte und brach sich das Genick. :o |
|
Profil || Suche |
|
019 04.08.2003, 20:42 the_viking |
Hey, genauso bau ich meine Engines auch immer auf ;) OOP Hilft vor allem bei den Entitys (also den Objekten, die im Spiel sind) Allerdings hab ich die Think() funktion schon von der Engine aus in verschiedene Funktionen aufgesplittet: Entities kann man des Weiteren ganz einfach per Spawn(klassenname,[pos],[rot]) spawnen. zB: Wie man das aber implementiert, lass ich euch jetzt mal raten ;) (kleine Hilfe: guckt euch mal die LINK_CLASS_TO_ENTITY() Makros des HLSDKs an....) --thx, cu, MfG the_viking (( My =]=H=O=M=E=> Page! )) |
|
Profil || Suche |
|
020 04.08.2003, 21:58 theDon |
es heißt LINK_ENTITY_TO_CLASS \o tanz den naziprau! o/ And more than ever, I hope to never fall, |
|
Profil || Suche |
|
021 04.08.2003, 22:51 Hanfling |
Mh ja müsste ich mal machen, aber hab kein HL SDK drauf. Obwohl.... Nun ist deine Zeit gekommen sprach der Tod, stolperte und brach sich das Genick. :o |
|
Profil || Suche |
|
022 05.08.2003, 00:24 the_viking |
Jo, HL macht es auch noch anders als ich... Hl arbeitet mit Template Functions und ich halt mit normalen ;).. @Don: :D :D :D --thx, cu, MfG the_viking (( My =]=H=O=M=E=> Page! )) |
|
Profil || Suche |
|
023 30.11.2003, 18:07 Der Effektemacher |
Ich stimme WareWolf in diesem Punkt vollends zu! Allein ein 2D-Spiel a la Sonic oder so sind keine einfache Sache. Okay, wenn man sich mit der ganzen Materie null auskennt, dann kann man sich vielleicht gar nicht vorstellen, wie komplex es ist ein 3D-Spiel zu erstellen, insofern ist solch ein naives Vorhaben vielleicht verzeihbar. Ich bin selbst kein 3D-Programmierer, aber wenn mich nicht alles täuscht, sind die mathematischen Formeln noch das kleinste Übel... -- www.de-maps.de.vu - Never touch a running Effekt ! |
|
Profil || Suche |

