Fun Racer

Kommentare anzeigen Worklog abonnieren
Gehe zu Seite 1, 2  Weiter

Worklogs Fun Racer

So long,

Sonntag, 6. Dezember 2009 von FreetimeCoder
and Thanks for All the Fish.

Das heißt jetzt aber nicht das es aus mit Funracer ist. Ich werde "lediglich" die Sprache wechseln.
Warum? Nun, es liegt nicht an BlitzMax, mehr an Minib3d und der audioengine die ich benutze. Einmal scheint minib3d (von simonh) sich scheinbar zufällig zu entscheiden einen glDraw Fehler zu produzieren und es nur non existente Hilfe gab und ich auch nicht in der Lage bin exakt festzustellen warum dieser Fehler auftaucht ist es unmöglich eine fehlerfreie Version zu erstellen. Kleptos Extended kann ich leider nicht benutzen, da diese aufgrund der vielen zusätzlichen Funktionen ein paar Kernfunktionen so langsam macht, dass es einfach nicht ordentlich spielbar ist.

Das zweite ist die 3D audioengine aus dem offiziellen Forum. Auch hier tritt ein schwerwiegender Fehler auf (MAV), doch lässt sich bei diesem nichtmal die genaue Codezeile festlegen an der dieser Fehler auftritt. Wieder handelt es sich um etwas engineinternes.

Ich will jetzt keinesfalls diese Engines schlechtmachen! Das ist wirklich eine großartige Arbeit, aber die Engines sind halt noch recht jung und da können solche Sachen eben vorkommen. Aber leider scheinen die Autoren nichtmehr aktiv daran zu arbeiten und ich selber verstehe deren Code nicht genug um selber auf Fehlersuche zu gehen.

Langer Rede kurzer Sinn: Jetzt wirds Cpp und Irrlicht. Ich benutze Irrlicht schon länger als Minib3d und Irrlicht ist auch um einiges älter und wird von mehr Leuten betreut bzw entwickelt. Außerdem habe ich durch Testen schonmal Gewissheit, das die oben genannten Fehler bei Irrlicht nicht auftreten.

Da ich vermutlich diesen Worklog durch den Umstieg auf C++ nichtmehr weiterführen darf, ziehe ich um:
http://magnonracer.blogspot.com/

Bye

They See Me Rollin

Donnerstag, 3. September 2009 von FreetimeCoder
Heyho,

in letzter Zeit ist nicht viel spektakuläres geschehen. Viel umgemodel im Code. Oft Dinge die sich mit etwas Planung hätten verhindern lassen. Hauptsächlich habe ich mich um den Editor gekümmert, dort kann man jetzt etwas mehr mit den Meshes anfangen. Genauer mit den Texturen: Es ist jetzt möglich animierte Texturen einzufügen, zb eine jubelnde Zuschauermenge. Man kann auch für jede Textur einzeln einstellen welche Flags benutzt werden sollen, ob sie sich via TextureCoords bewegen soll etc. Eine Versionsverwaltung für die Streckendateien ist auch drin. So kann man später ältere Strecken mit früheren Versionen in neue Versionen des Spiels oder Editors laden. (Gespeichert wird aber nur im neusten Dateiformat).

Last but not least gibt es jetzt eine Map die gute Chancen hat eine finale Form zu bekommen:

user posted image

MfG
FTC

Taste of Orange

Freitag, 5. Juni 2009 von FreetimeCoder
Heyho,

Im Moment bin ich in Sachen Menü unterwegs, da der Kern der Rennengine zum großen Teil steht. Es gibt aber noch reichlich Bugs zu entfernen, also wird mir wohl vorerst nicht langweilig werden. Aber nun zum Menü:
user posted image
Das ist das Hauptmenü, per Pfeiltasten kann man die einzelnen Buttons auswählen die sich auf einer ellipsoiden Bahn befinden und entsprechend Rotieren bzw die Sichtbarkeit anpassen. Das System ist auf mehrere Untermenüs übertragen, wie zb das Optionsmenü. Durch ein dynamisches Array ist es einfach möglich Buttons hinzuzufügen oder zu entfernen. Die Positionierung und aktivierung bzw Erkennung des aktiven Buttons macht das Programm dann automatisch.

Über Play->Acarde kommt man ins Streckenmenü:
user posted image
Dies ist nun etwas anders aufgebaut. Hier rotieren die Buttons nicht, sondern änder lediglich die Größe wenn sie aktiv sind (siehe "Go!"). Auf der rechten Seite bekommt man einen kleinen Vorgeschmack auf die Strecke, von oben nach unten Name, Vorschaubild und Vorschau 3D-Karte. Die Karte rotiert, damit man die Strecke von allen Seiten begutachten kann.

Hat man nun erfolgreich eine Strecke ausgewählt, so gelangt man ins Autowahlmenü:
user posted image
Im Prinzip so ähnlich wie das Streckenmenü, lediglich mit anderem Inhalt. Man hat die Übersicht über die Lenkbarkeit, Geschwindigkeit, Beschleunigung und das Gewicht des Autos. (Fünf Punkte ist maximal, ein Punkt minimal). Der Racer ist für lange gerade Strecken gut geeignet während er auf hügeligem Terrain kläglich versagt. Einstellbar ist direkt darunter die Farbe. Der Name "Blue Racer" ist noch aus Tagen der Un-einstellbarkeit der Farbe erhalten geblieben.

Dem aufmerksamen Beobachter wird sicherlich aufgefallen sein, dass die gelben Streifen im Hintergrund auf jedem Bild eine andere Position haben. Das ist nicht etwa eine optische Täuschung sonder ein Feature Wink Die Streifen bewegen sich sanft wellenförmig nach rechts und links. Der hässliche Schwarze Rand um die Streifen ist aber kein Feature sondern irgendein Problem mit dem Laden der Textur, diese ist "eigentlich" sauber von solchen Rändern (Transparentes png).

So long,
FTC

Strand-Rally

Dienstag, 26. Mai 2009 von FreetimeCoder
Nabend,

was gibts neues?
Also ersteinmal habe ich wie von joKe vorgeschlagen die Gangschaltung verändert. Die Automatik schaltet früher hoch und später runter als es manuell möglich ist. So kann man mit manueller Steuerung schneller beschleunigen und bremsen. Ferner ist es jetzt möglich durch richtiges Texturieren der Autos (greyscale auf layer 1 + farbe auf layer 2) das Gehäuse im Spiel zu lackieren. Auch kann der Editor jetzt richtig mit Textureflags umgehen und erkennt das 1+2+8 11 ist und wendet das auf die Texturen an. So ist es möglich dem Auto Spiegelungseffekte zuzuweisen. Die KI ist wie vorher schon angekündigt überarbeitet worden und man merkt nichtmehr so stark, dass da ein Computer die Steuerung übernimmt. Alle Computergegner fahren übrigens Automatik, also gibt es noch einen Grund zum manuellen Schalten.
Sound ist jetzt auch drin, allerdings nicht der von MiniB3d ext, sondern wird von einem Modul aus der englischen Community übernommen http://www.blitzbasic.com/Comm...opic=68669

Per Editor lässt sich jetz also 2D, 3D Sound und Musik einbinden, loopen, pan, rate etc einstellen und triggern.

So das wars, noch der Tradition halber ein Screenshot, bei dem man sich auch gleich von der lackierbarkeit der Autos überzeugen kann Wink
user posted image
(es handelt sich hierbei um einen Stresstest, im fertigen Spiel muss man nicht gegen 42 andere antreten)

MfG
FTC

Bällchenbad

Mittwoch, 13. Mai 2009 von FreetimeCoder
Joa...

user posted image

also dann...
Hier könnt ihr einen kleinen Einblick in die Physik unter der Haube bekommen. Ich hab jetzt einige Zeit dran gesessen alles _nochmal_ neu zu schreiben. Mit Erfolg! Ich kann jetzt mit ruhigem Gewissen sagen, dass ich die Physik nicht noch einmal neu schreiben muss. Ok, es gibt noch ein paar Mängel hier und da aber keine so groben Fehler mehr wie vorher (Plötzliches Kippen des Fahrzeuges, 180° Drehung ohne Grund, Zitterndes Drehen um die Achsen, etc...). Lauter TFormPoint-Befehle, Sinuse, Pythagorassätze und andere Kniffe stehen jetzt im Code. An dieser Stelle möchte ich Klepto2 meinen Dank aussprechen, da ich meinen Vektorentype durch seinen aus Minib3d ext ersetzt habe. Ich arbeite zwar schon einige Zeit mit Vektoren (zb unter C++ in Irrlicht) aber so ganz dahinter bin ich noch nicht gestiegen und in Mathe wirds erst nächstes Jahr durchgenommen. Außerdem ist die Laderoutine jetzt so umgeschrieben, dass sie automatisch die besten Ausmaße für die Box und die Kugeln findet und auch positioniert. (Hört sich nach Pustekuchen an, aber ich hab etwas dran zu beißen gehabt). Wenn das ganze sich jetzt bewährt, werd ich mich dran machen die KI zu verbessern. Im Moment fährt sie in engen Abzweigungen gerne gegen die Wand und verhält sich auch sonst wie die Lemminge von Disney -> nicht gut zu gebrauchen, denn schließlich ist es langweilig immer zu gewinnen (oder?).

Danach kommt der Sound an die Reihe. Auch hier schiele ich schon wieder zu Minib3d ext Wink

MfG
FTC

Candyman

Donnerstag, 30. April 2009 von FreetimeCoder
Moinsen,

user posted image
Wie ihr sehen könnt gibts etwas neues im Hud. (Von Oben im Uhrzeigersinn) Position, Gang und Rundenzahl.
PL-Fighter hat diese schöne Schrift kreiert. Ich finde sie hat etwas von diesen Kaugummischlangen mit Zuckerumhüllung. Auf jedenfall hat man jetzt einen besseren Überblick über alles was gerade abläuft. Die Fahrphysik wurde erneut überarbeitet, aber ich bin immer noch nicht zufrieden Rolling Eyes Richtiges Autoverhalten ist das bei weitem nicht. Die manuelle Gangschaltung funktioniert jetzt, jedoch finde ich macht Automatik mehr Sinn. Einen großen Vorteil bringt sie nämlich nicht.

MfG

Kartoffelkäfer

Montag, 20. April 2009 von FreetimeCoder
Wie oft ich schon auf "Eintrag Schreiben" geklickt habe und dann nach kurzer Zeit gedacht habe. "Hmm, ne du musst noch nen bisschen weiter arbeiten, sonst lohnt es sich nicht", aber heute ist es soweit!

Ein Drehzahlmesser ist eingebaut, der einem einen ungefähren Überblick über die gefahrene Geschwindigkeit gibt. Weiterhin gibt es jetzt eine Gangschaltung, die aber auch auf Automatik gestellt werden kann. So ganz realistisch funktioniert sie noch nicht, aber falls ich es mit der manuellen Schaltung nicht hinbekomme lass ich es einfach auf Automatik und niemand wird je erfahren wie schrecklich mein Fehlversuch wirklich war. Als nächstes gibt es eine Art Startampel. Das bedeutet bevor alle losdüsen können kommt in Rot, Orange, Gelb und Grün, 3,2,1, Go! Und dann gehts los. Eine Sache zwar schon länger vorgesehen und teilweise umgesetzt war ist die Reibung verschiedener Streckenteile. Während eine trockene Straße viel Reibung und Haftung hat, besitzt ein vereister Abschnitt kaum sowas. Steuerung, Beschleunigen und Bremsen werden entsprechend erschwert dadurch. Ein paar kleine Kniffe mit großem Visuellem Effekt sind auch dazu gekommen. Man kann jetzt im Editor die TextureFlags einstellen Very Happy So lassen sich nachträglich noch schöne Effekte erzielen. Das ganze war eigentlich vorerst als Notlösung gedacht, damit ich MaskTextures nutzen konnte. Ich hab es dann aber komplettiert und nun kann man die Flags im Editor den Meshes bzw deren Texturen zuweisen. Im gleichen Zuge kam auch eine andere UV Koordinaten Spielerei hinzu. Es ist jetzt möglich die Texturkoordinaten dynamisch so zu verändern (mittels PositionTexture), sodass sich zb Wassereffekte realisieren lassen.

Das ganzen Änderungen, vor allem an der Fahrphysik haben aber auch ein paar Schattenseiten: Bugs Bugs Bugs usw. Ich musste die Autoklasse nochmal so ziemlich neu programmieren, vor allem wegen des neuen Bodenhaftungsfeatures. Die Auto-Auto Kollision ist noch nicht wieder implementiert und das Fallen von höheren Plattformen sieht im Moment recht unschön aus.

Kennt ihr das? Ihr wisst wo der Fehler ist und in den paar Zeilen findet ihr es partout nicht, also krempelt ihr alles um und seht am ende das irgendwo ein "-" Zeichen an der falschen Stelle steht? Mit sowas und Ähnlichem ist einiges an Zeit draufgeangen, als ich "mal eben noch was einbauen" wollte.

So long...
FTC

Runden und Ränge

Donnerstag, 9. April 2009 von FreetimeCoder
Tag,

so langsam wird aus Funracer ein richtiger Racer. Gestern habe ich Checkpoints und Rundenzähler eingebaut. Dabei sind Chekpoints eigentlich nur Trigger mit besonderen Eigenschaften. Der Name ist die wichtigste. Ein Checkpoint wird durch "CheckPt_1" definiert, wobei 1 die Nummer des Checkpoints ist. Um eine Runde vollständig zu durchfahren muss man alle Checkpoints in der richten Reihenfolge durchfahren. Überspringt man einen wird nicht weitergezählt. Kommt man nach dem letzten wieder zum ersten erhöht sich der Rundenzähler. Da der Spieler die Ceckpoints nicht sehen kann liegt es Mapper zu garantieren das der Spieler bei richtiger Fahrweise auch durch diese durchfährt.

Außerdem kann man nun auch seinen gegenwärtigen Platz sehen. Dieser wird durch den Abstand zum nächsten Checkpoint im Vergleich zu den anderen berechnet.

Arrow Ich würde den Glypen eher rausnehmen. Mich würde er nerven.
Welche GUI benutzt du da? WinBlitz?
Plyp ist faul. Er nervt nicht. Er schläft bis du ihn anstubst. Vielleicht mach ich ihn abschaltbar.
Die Gui wird duch das BlitzMax Modul MaxGui bereitgestellt. Den schönen XP Stil hab ich Meister_Diebs Manifester zu verdanken.


MfG

Big Brother is watching you

Montag, 6. April 2009 von FreetimeCoder
Nabend (oder morgen?),

user posted image

Ein wichtiger Bestandteil von Mapeditoren bzw Spielen sowieso sind Trigger. Im Grunde tun sie nicht viel mehr als auf ein bestimmtes Ziel aufzupassen und sich zu melden wenn dieses einen bestimmten Zustand erreicht hat. Mein Trigger ist im Bild durch den gelben Würfel dargestellt. Über verschiedene Konstanten innerhalb des Spiels (zb CAR_PLAYER, CAR_NPC) kann man dem Trigger nun sagen was er beobachten soll. Ein Trigger kann auf mehrere Sachen aufpassen. Diese werden in der "Overwatch"-Liste eingetragen. Hm joa. Also der Trigger guckt und meldet sich. Aber was hab ich davon?

Nunja nichts direkt. Aber hier nun kommt die zweite schöne Neuerung ins Spiel: Die Events. Die Events sind kleine Orange Kugeln. Zumindest im Editor. Ein Event kann von einem Trigger ausgelöst werden. Je nach Event-Task reagiert es dann entsprechend. Auch hier gibt es wieder Konstanten für verschiedene Aufgaben (zb EVENT_CHECKPOINT, EVENT_SIGN). Ein Event kann gleich mehrere Aufgaben aufeinmal haben. So kann es als Checkpoint dienen und dem Spieler gleichzeitig noch ein Straßenschild einblenden auf dem er sieht das gleich eine scharfe Rechtskurve kommt. Alle Aufgaben werden Parameter genannt. Ein Parameter besteht aus einer ID, der Art der Aufgabe und einem Wert. So kann der Trigger auch mehrere gleiche Aufgabentypen mit unterschiedlichen Werten ausführen.

Bei soviel Einstellungsmöglichkeiten kann einem schnell der Überblick verloren gehen. Dafür gibts den neuen "Check Dependencies" Button! Wie man im Debugger links unten sehen kann hab ich gerade einen Check durchgeführt. Dadurch weiß ich jetzt das mein Trigger ein Event informieren will das es gar nicht gibt und dass Event 2 keine Parameter hat. Der Checker kann nochmehr Sachen überprüfen aber das ist jetzt nicht so wichtig.

Und natürlich! Plyp musste irgendwie da rein. Er ist im Moment eine Art "Karl Klammer" allerdings nervt er nicht ständig, sondern macht nur die Augen auf wenn man mit der Maus in sein Panel fährt. Hier kann man dann die Hilfe aufrufen (und sich in Zukunft vielleicht noch ein paar Tips holen).

Bis denne.
FTC

Ein harscher Wind von Norden

Samstag, 28. März 2009 von FreetimeCoder
Pc von Virus zerfressen, miese Arbeit wiederbekommen und PL-Fighter kann wegen persöhnlichen Gründen eine Zeit lang nicht weiterarbeiten. Als ich dann abends Dees Kommentar gelesen hab ist mir fast der Kragen geplatzt. Ich wollte schon was von wegen "Kreativität", "ist mir doch egal", "scheinen doch sonst alle toll zu finden" zurückkeifen, bin dann aber erstmal ins Bett gegangen. Das hatte glaube ich sein Gutes. Am nächsten Morgen sah die Welt doch schon anders aus. Und hm. Irgendwie stimmts ja. Eigentlich ist der Text zum Bild bisher etwas lächerlich. Doch die positiven Comments haben es halt immer tollkühnere Blüten treiben lassen.

Nun wieder zurück auf den Boden der Tatsachen. Und wie Dee angemerkt hat wäre es besser ein wenig von der Technik zu erklären. Als da wäre: Die Wegpunkte.

Wie hier zu sehen, bestehen diese aus Kugeln.
user posted image
Am Anfang warens wirklich nur Punkte, aber ich musste feststellen das die Autos dann ziemlich eierten. Grund: War die vorausberechnete Ankunftsposition (mittels TFormPoint) des Autos zu weit Rechts, fing das Auto mit Trägheit an nach links zu steuern. Das resultierte dann meist in einem Schwenk zu weit nach links. Konsequenz: Der Steuerungsprozess ging in die andere Richtung los. Deshalb sind die Autos die meiste zeit extremst geeiert und mitunter auch aus der Bahn geraten. Ok, soweit so schlecht. Also musste was besseres her. Ich könnte natürlich die Steuerung exakter machen. Ähm, nein, das wär mies. Ich hasse PC-Gegner die Vorteile haben die der Spieler nicht hat. Also einen Radius. Dazu schauen wir uns folgende Grafik an:
user posted image
Das Lenksystem ist eigentlich gleichgeblieben, der Unterschied besteht darin, dass es durch den Radius einen Toleranzbereich gibt. Die Lenkung wirkt nun viel natürlicher. Sobald das Auto innerhalb des Radiusses ankommt hört es zu lenken auf. Netter Nebeneffekt: Die PC-Autos haben nicht mehr alle die selbe Fahrspur. Ich könnte ja jetzt sagen das ich es so wollte, aber nein ich war überrascht wie gut es passte.
Warum ich keine Kreise benutze? Einerseits weil Kugeln sich leichter darstellen lassen. Andererseits weil ich dadurch theoretisch schonmal die Möglichkeit einer schrägen Fahrbahn habe. Zwar werden im Moment wirklich nur 2D Berechnungen durchgeführt (Distanz, Winkel etc), also der Weg sozusagen in 2D auf eine Ebene projeziert, aber vielleicht gibt es in Zukunft Strecken ala rollcage. Und ob der Radius nun für einen Kreis oder für eine Kugel benutzt wird ist ja eh Jacke wie Hose.

Mehr Technik folgt in zukünftigen Einträgen, jetzt beantworte ich noch hier ein paar Fragen aus den Kommentaren (auch wenn diese dort schon beantwortet worden sind, denn nicht alle wollen sich das extra raussuchen):

Arrow Welches 3D Modul benutzt du?
Mini B3D von simonh

Arrow Wie siehts mit der Physik aus?
Die Physik ist handmade, aber noch etwas von fertig entfernt. Ist an das DriverSample von BB angelehnt. Auto-Auto Kollision ist via SphereCollision gemacht. Außerdem können verschiedene Streckenteile individuelle Bodenhaftung haben. Die Streckenbegrenzung ist durch ein "WandMesh" realisiert. Da kann dann eben keiner durch

Arrow Für einen Funracer find ich's noch ziemlich farblos bzw. alles sehr grau in grau.
Ich bin eben einer bei dem der Code vor der Grafik kommt. Wird aber noch, versprochen

MfG
FTC

@Dee: Ich denke deine 2 Cent sind eine gute Anlage gewesen

Gehe zu Seite 1, 2  Weiter