Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Do Mär 28, 2024 19:00

Foren-Übersicht » Sonstiges » Projekte
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: C.A.R.
BeitragVerfasst: Sa Dez 01, 2007 13:58 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Guten Morgen,

lange war ich still und bin ich wieder zurück.
Mir fiel ein, dass ich ja freundlicherweise Webspace hier kostenlos zur Verfügung bekommen habe und dachte mir, ich könnte mich ruhig mal wieder melden. Denn ich arbeite gerade wieder an einem neuem Spieleprojekt. Die Hauptzielplattform ist der GP2X. Das witzige ist, dass ich erst durch dieses Forum von ihm erfuhr und nun schließt sich der Kreis wieder. http://www.delphigl.com/forum/viewtopic.php?t=4836&highlight=gp2x Mein Spiel ist komplett in C und SDL geschrieben. Wie es der Thread-Name vermuten lässt, ist mein Spiel ein Rennspiel. Der Spielname "C.A.R." ist ein rekursives Akronym und steht für "Car Auto Racing". Einfallsreich, ich weiß.

Mein Ziel ist ein Fun-Racer like Mario Kart mit folgenden Features:
- 3 Itemtypen, die man einsammeln kann mit ja verschiedenen Effekten, z.b.
1. Itemtyp (Krachmacher)
° Bombe
° Mine
° Öl
° Rakete
° Stachhaut
2. Itemtyp (Speed/Protection)
° Bechleuniger
° Haftreibungsentferner (Man wird nicht mehr von der Umgebung gebremst, aber Lenken wird sehr sehr schwer)
° 2-fach Schutz vor Items
° 10-Sekunden-Schutz for Items
3. Itemtyp (Unterstützer)
° Bombe/Mine/Rakete/Stachelhaut hat doppelten Schaden
° Rakete ist zielsuchend
° Ölfleck, Mine, Bombe werden größer
° Beschleunigung wird größer (auch für Item Beschleuniger)
° Bei Stachhaut/2-fach-Schutz kann man Items stehlen

Diese Itemtypen stehen noch nicht 100% fest und es sollen noch mehr werden. Die Chance, dass man "Rakete ist zielsuchend" findet, wenn man schon "Rakete" besitzt, werde ich wohl erhöhen, damit es nicht zum reinen Glücksspiel wird. Ich denke auch über 7 verschiedene Itemtypen nach. 1, 2 oder 3 einzeln, 1 und 2, 1 und 3, 2 und 3, oder alle drei zusammen. Wobei bei Kombinationsitems verstärkt sinnvolle Kombinationen erscheinen werden. Z.b. "Rakete", "2-fach Schutz vor Items" und "Bei Stachhaut/2-fach-Schutz kann man Items stehlen".

Es soll 8-12 verschiedene Autos geben. Jedes Auto hat verschiedene Werte in "Beschleunigung", "Masse" und "Maximalgeschwindigkeit" und zudem eine einzigartige Kombination von 3 Startitems. Zudem ist die Chance bei diesem Auto doppelt so hoch die Startitems wieder zu erlangen. :wink:

Soviel zur Spielidee ansich. Zur Umsetzung: Mein Hintergrund sind sprites, Items (egal ob aufzulesende oder abgeschickte) auch, Autos sind 3D-Objekte, wobei ich nicht OpenGL verwende (geht aufm GP2X nicht wirklich), sondern eine eigene kleine Engine. Sie besitzt auch keine Texturen oder sowas. Mit Ach und Krach Licht, aber garnicht so doof aussieht. Ich habe meine "Engine" von anfang an so gestaltet, dass man Splitscreen darstellen kann. Es funzt auch ganz gut. Für die Polygone am GP2X nutze ich ARM-Assembler, aber das nur am Rande. Mein bisheriger Stand ist:

- 1 Auto designed (ich nutze das Wings3D, da es einfach ist, gute Exportiermöglichkeiten bietet und ich einfache Modells brauch)
- Physikengine überlegt und umgesetzt. Es fehlen "nur" Kollisionen, aber die sind zumindest in der Theorie gut machbar.
- Optionsmenu angefangen, ich mache viel gleichzeitig, damit ich später nicht überrascht werde

Was ich als nächstes vorhabe.
- Physikengine komplementieren. Damit ist die halbe Miete schon gezahlt
- Optionen (vorallem Joystickprofile) komplementieren.
- mehr Autos
- Items einbauen
- KI einbauen (wobei ich wohl mit Punkten auf der Strecke arbeiten werde, die die KI ansteuern kann. Die brauche ich auch für Zielsuchung. ;-))

Was meine Probleme sind:
- Ich nutze nur Festkommazahlen, da der GP2X keine FPU besitzt. Auch meine gesamte 3D-API arbeitet so. Hat mich schon so manche Nacht nicht schlafen lassen, das Ding. :?
- sin,cos,asin,acos sind nur Tabellen. Wahnsinnig hohe Genauigkeit kann ich nicht bieten
- Wurzelfunktionen sind zu lahm. Ich habe mir selbst eine geschrieben, aber ich bezweifle, dass sie sehr viel schneller ist und die Genauigkeit ist bei Zahlen>100 auch nur bis zu 2. Nachkommastelle gegeben.

So, das ist mein neues Projekt im Kurzportrait.
Ich denke mal, ich werde euch auf dem laufenden Halten, wie es weitergeht. Eine Version für Linux und Windows ist auch geplant, aber zweitrangig. Wenn ihr Interesse am Probespielen am Linux/Windows-PC habt, so sagt bescheid, dann stell ich ne Version dafür online. Knackpunkt ist die verschiedene Steuerung. ;-)

Besitzt hier eigentlich noch jemand einen GP2X?

mfG Cyberpuer

PS: Achja, Screenshot stell ich auch online, wenn jemand mag. :wink:

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Dez 09, 2007 23:52 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
Wochen gingen ins Land und ich kam nicht sehr viel zum Programmieren, aber immerhin ein wenig.
Ich habe trotzdem einige Fortschritte erzählt, da ich viel in der Schule rumrechnen und Algorhytmen entwickeln kann, die ich dann zu Hause nurnoch verfeinern, anpassen und aus dem Pseudocode in C umwandeln muss. :lol:
Folgendes habe ich eingebaut:
Das Controllerprofilsystem funzt fast komplett. Zur Erklärung:
Ziel ist es, dass man mit bis zu 4 Spielern am GP2X mit Controllern (Gamepads) spielen kann. Ich speichere verschiedene, erweiterbare Profile von Controllern in einer Datei. Das ganze aber Controllerunspezifisch. Klingt ein wenig kirre, ich erklärs an einem Beispiel:
Ich habe z.B. ein Controllerprofil 1 mit den Daten:
Gas: Button 0
Bremse: Button 1
Item 1: Button 2
Item 2: Button 3
Links: Button 4
Rechts Button 5
und ein Profil 2 mit den Daten:
Gas: Button 0
Bremse: Button 1
Item 1: Button 3
Item 2: Button 2
Links: Achse 0, Richtung -32767
Rechts Achse 0, Richtung 32767

Dann kann jeder Spieler (Ein Spieler=Ein Controller) zu Beginn ein Profil wählen und mit diesem Spielen. Vorteil ist, dass man nicht jedesmal bei einem neuem Controller alles neu eingegeben muss. Vielleicht funzt ja ein anderes Profil oder man hat noch ein altes für diesen. ^^

Weiterhin habe ich mit bzgl. der Items entgültig entschieden.
Ja, es wird 12 Items geben in 3 Gruppen a 4 Items:
Schadenitems:
- Rakete: fliegt gerade aus, bei Kollisions BUMS!
- Bombe: bleibt hinterm Auto liegen, bei Kollisions BUMS!
- Stachelhaut: 10 Sekunden lang Auto macht bei Kollision mit anderem Auto BUMS! (zumindest BUMSt das andere Auto ^^) (Dauer noch nicht sicher)
- Block: Man lässt einen Block fallen, der sich physikalisch wie ein schweres Auto verhällt. Sehr nervend in Engpässen.
Protect/Speeditems
- Beschleuniger: 5 Sekunden schneller/bessere Beschleunigung (Dauer noch ungewiss)
- 10-Sec-Schutz: 10 Sekunden lang Komplettschutz vor Schaden
- 2-fach-Schutz: 2 mal Schutz vor Schaden
- Schattenform: Ähnlich dem Stern von Mario Kart ist man 7 Sekunden lang schneller und hat einen Komplettschutz (Dauer noch ungewiss)
Hilfsitems:
- Rakete zielsuchend/verdoppler: Wenn man eine Rakete hat, ist diese nun Zielsuchend, sonst hat man 2 Bomben, 2 Stachelhäute oder 2 Blöcke
- Bei Schutz aufnehmen: Wenn man sich vor Schaden schützt, bekommt man die Quelle des Schadens als Schadensitem
- Bei Schaden klauen: Wenn man Schaden macht, klaut man sich ein Schadens oder Protect/Speeditem
- Unsichtbar: Man selbst und ALLE ITEMS, die man ab dann absondert sind unsichtbar.

Im mom bin ich nun dabei Kollisionen einzubauen. Wenn ich das hab, gehts ans "eingemachte".
Hier 4 Screenshots. Die "Platzhalter" in den Ecken sollen später mal ne bessere Karte und die 3 Itemtypen werden. Icons existieren schon aufm Blatt Papier, muss sie mal pixeln. Bei Gelegenheit. ^^

Bild
Bild
Bild
Bild

Damit ergibt sich die To Do Liste der nächsten Tage/Wochen:
- Ein erstes Level mit "Hindernissen"
- Kollision einbauen
- Räder malen (schwarze Streifen ^^)
- Items pixeln
Damit lässt sich dann gut weiterarbeiten bzw. dann ist es Zeit für ein Video.

mfG Cyberpuer

PS: Achja, im mom läuft alles bei ca. 55 fps bei 200Mhz Einspieler, ca. 45 fps Mehrspieler, aber Mehrspieler is eh mit Cradle und damit meist mit Stromzufuhr, weshalb man ja auch 266 Mhz einstellen könnte. Dann läuft es stets bei 60 fps. ;-)

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Jan 02, 2008 01:54 
Offline
DGL Member
Benutzeravatar

Registriert: Di Sep 20, 2005 13:18
Beiträge: 1054
Wohnort: Dresden
Programmiersprache: C, C++, Pascal, OPL
So, hab wieder etwas gewerkelt. Habe im Moment leider kaum Zeit, aber das Hauptproblem, weshalb ich daran dachte alles hinzuschmeißen, scheint gelöst: Die Reflektion mit der Umgebung funktioniert. Man kann sich nun halbwegs realistisch durch die Landschaft bewegen. Jetzt habe ich auch einen Plan, was ich nun zu tun habe:

- Kolision der Autos untereinander.
Dazu muss ich zwei Dinge klären. Zum einen natürlich, ob eine Kollision stattfindet. Dafür habe ich 3 Möglichkeiten (im Moment):
° Ich könnte mir die Autos (Rechteecke, dir durch 3 Punkte definiert sind) in der Form X=Stützvektor+r*Vektor+s*Vektor aufschreiben, gleichsetzen und so Aussagen über die Existenz von Schnittpunkt(en) machen, was aber wohl zu kompliziert wird...
° Ich könnte nach Schnittpunkten zwischen den 4 Strecken, die die Form des Autos beschreiben, mit anderen Autostrecken suchen. Das macht aber 96 Überprüfungen die Millisekunde, wenn ich alle Autos betrachte, was ich machen MUSS, wenn sie alle in der Nähe sind (z.B. am Start)
° Ich berechne aus anderen Gründen pro Auto 16 Punkte der Rechteckbegrenzung. Ich könnte die Abstände zwischen den Punkten berechnen und wenn sie einen gewissen Wert unterschreiten, gehe ich von einer Kollision aus. :P Das macht aber auch 1540 Abstandsberechnungen pro Millisekunde bei Nähe.

Das andere ist dann das Berechnungen von den Impulsen und daraus die Berechnung der neuen Geschwindigkeiten und Richtungen.

Danach kommen die Items und "nebenbei", wenn ich Zeit habe, mache ich neue Automodells (Sollen ja 12 Stück werden) und u.U. neue Strecken.

mfG Cyberpuer

_________________
Denn wer nur schweigt, weil er Konflikte scheut, der macht Sachen, die er hinterher bereut.
Und das ist verkehrt, denn es ist nicht so schwer, jeden Tag zu tun als ob's der letzte wär’.
Und du schaust mich an und fragst ob ich das kann.
Und ich denk, ich werd' mich ändern irgendwann.

_________________Farin Urlaub - Bewegungslos


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Sonstiges » Projekte


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 32 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.080s | 17 Queries | GZIP : On ]