Meine Idee für ein Spiel (nicht mehr Wüstenrally)

Programmideen und -anregungen passen hier hinein.

Lies ein bisschen im Thread herum und dann antworte. Würdest du das Spiel spielen wollen?

Auf jeden Fall, ich würde dafür sogar was springen lassen.
5
29%
Ja, bin ein Rennspielfan.
3
18%
Denke schon. Mal sehen, wie es sich entwickelt.
8
47%
Nur wenn es wirklich grandios toll ist.
0
Keine Stimmen
Nur wenn es Feature XY bietet (XY bitte in einem Beitrag nennen)
0
Keine Stimmen
Ich will lieber einfach nur arcadig rasen, das hier klingt ziemlich lahm.
1
6%
Nö, mag solche Spiele überhaupt nicht.
0
Keine Stimmen
 
Abstimmungen insgesamt: 17

Autor
Nachricht
psyco001
8 Bit
Beiträge: 259
Registriert: Mo Nov 12, 2007 19:11
Wohnort: Berlin
Kontaktdaten:

Meine Idee für ein Spiel (Wüstenrally)

#16 Beitrag von psyco001 » Do Nov 20, 2008 16:57

UML ist die Unified Modelling Language, lies dir einfach mal den wiki artikel durch, ich kanns selbst grad nicht genau erklären (is schonwieder zu lange her mit über einem jahr)

Benutzeravatar
relei
Forum Team
Forum Team
Beiträge: 1196
Registriert: Mi Dez 27, 2006 19:48

Meine Idee für ein Spiel (Wüstenrally)

#17 Beitrag von relei » Do Nov 20, 2008 23:07

Hi,

also ich finde das eine tolle Idee, würde mir aber solch ein Projekt nicht alleine zutrauen. Allein der Zeitaufwand würde bei mir alles sprengen.

Ich finde es ist wichtig das, dass Spiel auf einen von unsern kleinen Freunden (gp2x, WIZ, Pandora) läuft, denn auf dem PC fände ich das uninteressant.

Auch solltest du nicht so viel Wert auf tolle Grafik legen, ich finde es ehr wichtig den Spielspaß im Vordergrund stehen zu lassen und dazu ist nicht immer tolle Grafik nötig.

Auf jeden Fall fängst du schon mal richtig an, Planung ist gerade bei der Programmierung das a und o. Eine falsche oder zu geringe Planung bedeutet erheblich mehr Zeitaufwand.

Ich fände das ganze Spiel auch aus der Vogelperspektive cool, mit einfacher Grafik, aber dafür viel Spielspaß. Ich habe mir vorgestellt das das Spieler-Auto eine Art Verschleiß-Balken hat und bevor dieser abgelaufen ist, muss man einen Check-Point oder das Ziel erreichen. Der Balken wird dann z.B. bestimmt von den Reifen, von der Aufhängung und natürlich auch von der Streckenauswahl und der Zeit (und noch viel mehr). Weiterhin würde ich noch so Sachen einbauen das man Unterwegs z.B. Seilwinden finden kann, die ein dann aus Treibsand oder Moor ziehen können. Auch lustig fände ich wenn man z.B. Schusswaffen findet die ein dann vor Eingeborenenstämmen schützen kann, falls man mal durch eines ihrer Dörfer brettert. Mit einer guten Plattform könnte man dann das Spiel noch um viele solche Extras erweitern.

Na ja ich hoffe du gibst nicht auf und bleibst am Ball.

Schönen Gruß
Rene

Benutzeravatar
Whynodd
7 Bit
Beiträge: 147
Registriert: Sa Sep 20, 2008 13:56

Meine Idee für ein Spiel (Wüstenrally)

#18 Beitrag von Whynodd » Fr Nov 21, 2008 01:43

Ich könnte ja versuchen, irgend ein Vehikel in Blender zu basteln, das wollt ich schon immer mal. Mußt mir nur die gewünschte Größe mitteilen in Blender-Einheiten.
Erstmal ein Prototyp mit nackter Landschaft. Wenn das alles läuft, dann wird modelliert ;) Habe noch keine Ahnung, wie ich Modelle in ein Spiel bekomme. Also warte ich erstmal, bis es gute libraries (für die Pandora) gibt, die das für mich erledigen können. Habe außerdem nen Kumpel an Land gezogen, der verdammt gute 3D-Models bauen kann und Lust hat, mir zu helfen.
Auch solltest du nicht so viel Wert auf tolle Grafik legen
Wäre doch schade, wenn ich sie absichtlich schlechter machen würde als es ginge..
Vogelperspektive
Eher nicht, soll schon 3D sein, soll die Pandora an die Grenze bringen (werde es aber parallel auch für den PC entwickeln, also wenig Abhängigkeiten mit anderen libs und die draw-Funktionen für OpenGL und GL-ES schreiben)
eine Art Verschleiß-Balken
Verschleiß ist vorgesehen für z.B. die Reifen. Bei viel Beanspruchung (viel durchdrehen auf Schotter) verschleißen sie schneller als bei vorsichtigem Fahren. Andere Verschleißteile wären: Motor (Überhitzung, Kühlwasser kocht, Öltemperatur steigt, Motor ächzt und platzt), Stoßdämpfer (bei vielen harten Sprüngen schlagen sie durch und nehmen Schaden). Sowas derart. Natürlich sollen sich diese Schäden früh ankündigen damit man drauf reagieren kann.
Schusswaffen
Nee :P . Könnte mir aber als "Powerup" vorstellen, verkochtes Kühlwasser an ner Oase wieder aufzufüllen. Wäre aber unrealistisch, Wasser hat man bei ner Wüstenrally immer im Wagen.
Ich wäre interessiert an ein par Details.
Klar, n grober Entwurf von einigen Klassen als Vererbungsdiagramm im Anhang. (noch ohne Klassenbeziehungen). Ich benutze das Tool Bouml dafür. Das erzeugt mir aus dem UML-Modell leeren Code, Header, Methodenbodys, #include-Reihenfolgen etc. Sehr praktisch.
Werde das ganze so anlegen, dass das Spiel erst mit der minimalsten Grafik wie nur möglich läuft. Eins nach dem anderen. Und wenn ich noch keine Modelle und Texturen laden kann, dann fahr ich eben mit nem grauen Würfel ohne Räder auf ner Ebene rum. Erst wenn alles funktioniert, dann kommt die Grafik. Der Spaß zum Schluss.
Hab mir das so gedacht: Erst ein Menü zum Starten, Einstellen, Laden etc. Wenn man auf Start klickt, wird die Szene (bzw. Etappe) geladen. Die Szene kann aber noch nix. Wenn das Starten und Beenden funktioniert, dann wird Szene programmiert. Wenn Szene funktioniert, dann Terrain usw. Nach und nach die Funktionalität. Wenn ich beispielsweise noch nicht den Stoßdämpfer programmiert habe, dann kann die Stoßdämpferklasse nichts außer einer starren Stange simulieren und sich nicht bewegen.. Top Down halt.
Kann aber sein, dass das alles sehr langsam vonstatten geht (bin auf viele Themen gestoßen, in die ich mich erst einlesen müsste), studiere ja nebenbei, gehe arbeiten und immo bin ich sehr ausgelastet mit einem Projektpraktikum an der Uni, wo es darum geht, ein Fahrzeug von außen mit einer Kamera zu tracken und zu steuern (markerbasierend).. wayne..
Ich finde es ist wichtig das, dass Spiel auf einen von unsern kleinen Freunden (gp2x, WIZ, Pandora) läuft
Für Pandora und PC geplant.

Whynodd
Dateianhänge
kldiag1.gif
kldiag1.gif (9.03 KiB) 2207 mal betrachtet
Whynodd

Benutzeravatar
MacGyver
7 Bit
Beiträge: 134
Registriert: Sa Jun 07, 2008 15:29
Wohnort: Monheim(Bayern)
Kontaktdaten:

Meine Idee für ein Spiel (Wüstenrally)

#19 Beitrag von MacGyver » Fr Nov 21, 2008 07:54

Also mit dem Menü würde ich nicht Anfangen.
Gruß MacGyver

Benutzeravatar
purestrain
7 Bit
Beiträge: 165
Registriert: Mi Feb 28, 2007 19:30

Meine Idee für ein Spiel (Wüstenrally)

#20 Beitrag von purestrain » Fr Nov 21, 2008 08:57

Dito, geschweige dem wuerde ich das Spiel planen, erst recht nicht mit einem UML Diagramm, und dann erst recht nicht ein Klassendiagramm. Es sei denn du hast schon mehrere erfolgreiche Spieleprojekte hinter dir.

Mach lieber erstmal ein Design-Konzept, halte dich ueber Monate an deine Idee, und entwickel das Framework (oder Engine, wie du das bezeichnen magst) gleichbleibend mit dem Kernspiel.

Zumal mir auf den ersten Blick das Diagramm etwas seltsam erscheint: Ein "Physisches Objekt" kann keine Darstellungsform enthalten? Beides ist eine Spezialisierung von Thing? Vegetation ist wiederum kein 'physisches Objekt' ?

Edit:
Meine anmerkungen bitte nicht im destruktiven Sinne verstehen

Just my 2 cents

Benutzeravatar
Fusion_Power
12 Bit
Beiträge: 5961
Registriert: So Dez 25, 2005 16:33
Wohnort: zu Hause

Meine Idee für ein Spiel (Wüstenrally)

#21 Beitrag von Fusion_Power » Fr Nov 21, 2008 11:46

Whynodd hat geschrieben:
Vogelperspektive
Eher nicht, soll schon 3D sein, soll die Pandora an die Grenze bringen (werde es aber parallel auch für den PC entwickeln, also wenig Abhängigkeiten mit anderen libs und die draw-Funktionen für OpenGL und GL-ES schreiben)
Whynodd
Die Idee mit der Vogelperspektive ist eigentlich nicht schlecht. Es währe dann im 3D Game einfach ne weitere optionale Kamera-Perspektive von oben, die Grafik bleibt 3D, ähnlich wie bei den alten GTA Games. :) Mit der Perspektive könnte man sicher gut hinter Dünen und Hindernisse schauen und eventuell kommt sogar ein wenig "Micro Machines" Feeling auf. :D

Benutzeravatar
Whynodd
7 Bit
Beiträge: 147
Registriert: Sa Sep 20, 2008 13:56

Meine Idee für ein Spiel (Wüstenrally)

#22 Beitrag von Whynodd » Fr Nov 21, 2008 16:37

Dito, geschweige dem wuerde ich das Spiel planen, erst recht nicht mit einem UML Diagramm, und dann erst recht nicht ein Klassendiagramm. Es sei denn du hast schon mehrere erfolgreiche Spieleprojekte hinter dir.
Ich habe ein sehr genaues Konzept vom Spiel im Kopf und setze meine Architekturideen erstmal in UML um. So geht Softwareentwicklung, denke ich. Das eine Diagramm ist ja nicht alles, nur eine Skizze.
Ich habe noch nie ein "großes" Spiel gebastelt, aber für Projekte an der Uni z.B. einen Markertracker gebaut ähnlich dem AR-Toolkit. Das AR-Toolkit war für das Projekt einfach zu schlecht und ungeeignet. Der eigene klappt perfekt. Den Markertracker habe ich ebenfalls in UML geplant. Hat super funktioniert.
halte dich ueber Monate an deine Idee
Idee schon seit Monaten im Kopf und gut durchdacht :) .
Zumal mir auf den ersten Blick das Diagramm etwas seltsam erscheint: Ein "Physisches Objekt" kann keine Darstellungsform enthalten? Beides ist eine Spezialisierung von Thing? Vegetation ist wiederum kein 'physisches Objekt' ?
Jap, mag seltsam erscheinen. PhysicalObject ist ein Tippfehler, soll PhysicsObject heißen. Fehlen ja noch die Klassenbeziehungen, deswegen macht das so wenig Sinn und ist noch nicht vollständig.
Ein GraphicalObject kann mit einem PhysicsObject verknüpft werden, Z.b. ein Felsen mit einem Solid. Das Solid benutzt beispielsweise die BoundingBox des Felsens um Kollisionen zu berechnen. Genauso beim Auto, Car ist nur in der Physiksimulation existent und wird mit einem einfachen Prop verknüpft, welches die Karosserie anzeigt. So kann ich das komplette Spiel laufen lassen und die Darstellung erstmal auf Würfel und simple Geometrie beschränken. Strikte Trennung zwischen der Physik und der Darstellung von allem. Macht vieles wiederverwendbar. Was ist, wenn ich die Position der Camera mit einer geeigneten Suspension verbinde und damit die Fahrersicht simuliere, also Erschütterungen im Cockpit?

Ich habe halt das "Problem", dass ich ALLES selbst machen will, also weder nen Szenegraphen verwenden möchte, noch eine Physikengine, nichts, alles Eigenbau. Dann hab ich volle Kontrolle darüber, was ich tun möchte und wie ich es zusammenstöpsele.
Meine Anmerkungen bitte nicht im destruktiven Sinne verstehen
Nee, bin offen für alle Vorschläge und froh drum.
ne weitere optionale Kamera-Perspektive von oben
ist vorgemerkt, verschiedene Perspektiven sind sicher schon beim Testen nötig, wieso nicht behalten? Ich ziehe beim Zocken von Rennspielen trotzdem lieber die Mittendrin-Perspektive vor.

Ach ja, Thing ist die Oberklasse von allem. Zählt nur Referenzen und kann den Klassennamen als enum-Wert zurückgeben damit man vernünftig casten kann.

Whynodd
Whynodd

Benutzeravatar
Whynodd
7 Bit
Beiträge: 147
Registriert: Sa Sep 20, 2008 13:56

Meine Idee für ein Spiel (Wüstenrally)

#23 Beitrag von Whynodd » Fr Nov 21, 2008 23:55

Es geht weiter, so gefällt mir das schon etwas besser.
So langsam bildet sich ein Konzept. Ich arbeite drauf hin, dass die Zuständigkeiten sehr sauber abgegrenzt sind.

Klassendiagramm (bisschen umgeworfen):
Bild
http://img526.imageshack.us/img526/6623/abhdiag2ec4.gif

Abhängigkeiten (neu):
Bild
http://img338.imageshack.us/img338/9404/kldiag2fe0.gif

(alles WIP)

Ich hoffe ich spamme euch nicht voll. Ich zeige euch einfach meine Ergebnisse, dann kann jederzeit jemand sagen "Nee, so würd ich das nicht machen!" oder "Gut, genauso habe ich das bei meinem Spiel auch gemacht!".

Whynodd
Whynodd

Benutzeravatar
Whynodd
7 Bit
Beiträge: 147
Registriert: Sa Sep 20, 2008 13:56

Meine Idee für ein Spiel (Wüstenrally)

#24 Beitrag von Whynodd » Di Nov 25, 2008 01:59

Es geht weiter! Hier noch ein paar Details. Ich entwickle parallel mit UML-Modellierer Bouml und Dev-C++. Modell anpassen - Code generieren - Methodenbodys ausfüllen. Klappt ganz gut. So hat man gleichzeitig Überblick, viel automatisch generierbare Dokumentation und schöne Bildchen :lol:

Ganz ehrlich, ich hab mich schon öfter über falsche Include-Reiheinfolgen und deren Kompilierfehler geärgert, das fällt jetzt komplett weg und ich kann mich aufs eigentliche Programmieren konzentrieren.

Bild
Direktlink: http://img151.imageshack.us/img151/2239 ... il1re4.gif" onclick="window.open(this.href);return false;
Ist nur ein Ausschnitt von einem der vielen Diagramme.

Die Architektur ist soweit, dass einer Szene graphische Objekte hinzugefügt werden können und diese gezeichnet werden (Im Moment ein buntes Dreieck). Scheint zwar nicht viel zu sein, aber die Architektur drumherum ist schon auf 31kb reinem Code angewachsen und erleichtert das Erweitern enorm.
Denke, in den nächsten Tagen wird man schon auf einem einfachen, grob beleuchteten Terrain ohne Texturen rumlaufen können. Danach werde ich Klötze durch die Gegend fahren mit einer rudimentären Fahrzeugphysik.
Die Haupteventschleife mitsamt "Zeichne alles" und Tastaturabfrage ist auch schon vorbereitet und will benutzt werden.

Ich benutze übrigens ganz klassisch SDL und OpenGL, ich hoffe dass ich das Ganze hinterher gut auf die Pandora portiert bekomme.

Nur für Interessierte:
Die Hauptschleife

Code: Alles auswählen

	while(gamestate.getrunning())
  {
		//Hauptschleife des Spiels
		//Input lesen
		keyInput.processInput();

		//Physik updaten
		//noch nix

		//Grafik anzeigen
		scene.draw();
		
		//kurze Pause einlegen
		SDL_Delay(30);
		
		if (keyInput.getkeyQuit()) gamestate.setrunning(false);
	}
und hier die Zeichenschleife der Szene ( scene.draw() ):

Code: Alles auswählen

  glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
	camera.setPosition(0,-150,40);
	camera.setRotation(70,0,0); //nach vorne schauen
	camera.setView(); // setze die Kamera
  //Alle Objekte der Szene zeichnen
  for (int i=0; i<graphicObjects.size(); i++)
  {
		//graphicObjects[i]->draw();
		switch (graphicObjects[i]->getclassName()) // GraphicObjects nach Klassenname casten und zeichnen
		{
			case GRAPHICOBJECT:
				tracer.info("Scene","draw","Eine GraphicObject-Base will gezeichnet werden");
			break;
			case GRAPHICTERRAIN:
				((GraphicTerrain*)(graphicObjects[i]))->draw();
				tracer.info("Scene","draw","Ein GraphicObject wurde nach GraphicTerrain gecastet");
			break;
			default:
				tracer.warning("Scene","draw","Klassenname des GraphicObject nicht gefunden");
			break;
		} 
	}
  SDL_GL_SwapBuffers();
Man sieht, dass alles schön verpackt ist (die couts z.B. im Tracer, das wird vielleicht ne Quake-maßige Konsole werden). Was würde ein erfahrener Programmierer dazu sagen?

Macht Spaß das Ganze!

Whynodd
Whynodd

Benutzeravatar
Devaux
11 Bit
Beiträge: 2080
Registriert: So Feb 05, 2006 22:21
Wohnort: ~/
Kontaktdaten:

Meine Idee für ein Spiel (Wüstenrally)

#25 Beitrag von Devaux » Di Nov 25, 2008 07:08

Hey Whynodd!
Schoen, dass Du uns so aktiv an Deinem Projekt teilhaben laesst :)
Ist immer sehr spannend ein Projekt so mitzuverfolgen. Hoffe Dein Elan haelt weiterhin an und Du kommst gut vorwaerts.
$ uname -a
Linux thaddaeus 2.6.38-gentoo #1 SMP Wed Mar 23 00:58:17 CET 2011 x86_64 Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz GenuineIntel GNU/Linux


Ein OpenSource Handheld ist immer nur so gut wie seine Community.

*** Whatever you do, don't hit Alt+F2 and type 'free the fish' ***

Benutzeravatar
purestrain
7 Bit
Beiträge: 165
Registriert: Mi Feb 28, 2007 19:30

Meine Idee für ein Spiel (Wüstenrally)

#26 Beitrag von purestrain » Di Nov 25, 2008 07:29

Hallo,

"GraphicsObject nach Klassenname casten und zeichnen" - Wie wäre es mit Polymorphie?

Gruss
Michael

Benutzeravatar
Whynodd
7 Bit
Beiträge: 147
Registriert: Sa Sep 20, 2008 13:56

Meine Idee für ein Spiel (Wüstenrally)

#27 Beitrag von Whynodd » Di Nov 25, 2008 11:48

Wie wäre es mit Polymorphie?
Würde das gehen, wenn ich die draw()-Methode virtuell mache?
Was ist nun schneller, nach Klassenname casten, der im Grunde eine Integer ist oder soll ich die vtable bemühen, die richtige Sprungadresse rauszufinden? (Ich denke grade daran, 1000 Steine und Büsche zu zeichnen)

Ich habe erstmal auf diese Weise gecastet, damit ich später auch zusätzliche Methoden (außer draw) der abgeleiteten Klassen einfach aufrufen kann. Welche, die die Basisklasse nicht hat.

Whynodd
Whynodd

Benutzeravatar
purestrain
7 Bit
Beiträge: 165
Registriert: Mi Feb 28, 2007 19:30

Meine Idee für ein Spiel (Wüstenrally)

#28 Beitrag von purestrain » Di Nov 25, 2008 12:39

Hi,

Sicherlich ist dein casten schneller, da es zur kompilierzeit passiert. Nichtsdestotrotz kann ich selbst auf dem gp2x im schoensten objektorientierten Sinne arbeiten... die Logik (OnThink, OnUseBy, OnCollideWith etc.) meiner Spielobjekte ist in LUA implementiert ohne das es Performanceprobleme gibt.

Gruss
Michael

Benutzeravatar
Whynodd
7 Bit
Beiträge: 147
Registriert: Sa Sep 20, 2008 13:56

Meine Idee für ein Spiel (Wüstenrally)

#29 Beitrag von Whynodd » Di Nov 25, 2008 16:04

Der Cast ist zwar zur Compilezeit aber ich stelle den exakten Typ zur Laufzeit erst fest. Ist halt die Frage was "besser, schneller" ist: Ein Switch für den Typ oder direkt virtuelle Methoden. Obwohl, das wird sich wahrscheinlich nicht auswirken. Ich denke nicht, dass an der Stelle ein Flaschenhals läge.
Whynodd

Benutzeravatar
Whynodd
7 Bit
Beiträge: 147
Registriert: Sa Sep 20, 2008 13:56

Meine Idee für ein Spiel (Wüstenrally)

#30 Beitrag von Whynodd » Mi Nov 26, 2008 00:59

Yay!

Ein Meilenkiesel würde ich sagen :P

Das erste bisschen 3D. Die Kamera kann man auch schon herumbewegen.
Bild

Jetzt ans Terrain-LOD. Ich strebe eine Terrainauflösung von 1m an bei einer Sichtweite von über 1km und einer Terraingröße von mindestens 10km mal 10km an. Klingt hart. Aber andere haben das auch schon geschafft. Dabei will ich eine niedrig aufgelöste Heightmap für das ganze riesige Terrain mit mehreren kleinen (sich wiederholenden) Detailheightmaps kombinieren. Ganz nach dem Texturesplatting-Prinzip, nur dass man es auf Höhe anwendet und nicht auf Farbe. So kann ich feine Details und Buckel darstellen und muss auf große Weiten nicht verzichten.

Das wäre dann ein Meilenfelsen. Vielleicht reicht sogar die CPU für mein Vorhaben aus :lol:

Whynodd
Whynodd

Antworten

Zurück zu „Ideen und Wünsche“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast