Monatsarchiv für April 2008

Cuda funktioniert ganz hervorragend !

Montag, den 28. April 2008

Hallo, klappt, super.

Nur die OpenGL Beispiele funktionieren nicht, aber das liegt wohl eher an Vista als am Cuda API.

also viel Spaß mit dem neuen CUDA API 2.0 beta!

Hier meine kleine Applikation, hat problemlos kompiliert und läuft genauso schnell wie unter Windows XP. Es ist einfach nur eine Sinnuswelle, die per VertexBuffer und OpenGL GlutDrawPoints gerendert werden. Aber es wird komplett auf der Grafikkarte berechnet.

Endlich: Vista Support für das Cuda API

Montag, den 28. April 2008

Ich habs etwas spät mitbekommen, aber NVidia hat es endlich geschafft. Zwar noch als Beta, aber für Vista 32 und 64 bit.

Ich werde das natürlich gleich heute abend testen und euch dann hier berichten. Hier schonmal der Link zu der Downloadseite:

Cuda für Vista

Fazit nach 7 Tagen Terror

Mittwoch, den 23. April 2008

Endlich ist es vorbei… puhhh

Nachdem ich bis 4 Uhr noch gehaxx0rt hatte um irgendwie eine Story und Spielspaß in das Spiel zu bekommen, gönnte ich mir 5 Stunden sehr erholsamen Schlaf, dann ging es um 9 Uhr weiter. In allerletzer Sekunde musste ich noch schnelle eine NewGame Methode schreiben, damit man das Spiel am Ende und nach einem Tod neu starten konnte. Auch das Menü war noch nicht fertig. Um viertel vor 12 lief dann aber alles und der Upload konnte losgehn, doch leider funktionierte die Release Version nicht, so musste die Debugversion herhalten…

Naja, auf jeden Fall bin ich froh, dass der Kontest nun vorbei ist, 7 Tage is schon anstrengend, aber es hat sich wie ich finde gelohnt und ich bin Stolz auf mein Spielchen. Morgen werde ich einen Trailer bauen und in den nächsten Tagen sicher auch das Spiel zum Download bereit stellen.

Ich hätte gerne noch soo viel mit eingebaut, nur die Zeit hat nicht mitgespielt, aber die wichtigen Dinge, wie ein Erfahrungsystem, Schilde, viele Bumm Bumm und dicke Endgegner sind ja drin, wie ichs mir am ersten Tag vorgenommen hatte.

Im Großen und Ganzen kann ich sagen, habe ich einen Haufen gelernt, einen Haufen Spaß gehabt und habe jetzt mein erstes vorzeigbares DirectX Computerspiel und eine eigene 3D-Engine und das alles in nur 7 Tagen. Was so ein bisschen Motivation doch alles bewirken kann. :)

Und immerhin kann ich mich jetzt mit dem Titel schmücken:

Zweifacher Gewinner des Xuhu-Games-Kontests

*g*

Vielen dank, das ihr meine Programmierstory bis zum Ende mitverfolgt habt. An dieser Stelle noch einen Verweis an die auch sau guten Zweit- und Drittplatzierten.

nun viel Spaß mit dem offizielen Trailer zu

TEDDY’S SPACE STORY

Wir schreiben den Tag 6 nach Xuhus Geburt …

Montag, den 21. April 2008

ganz Stuttgart ist vom Schlaf besetzt, ganz Stuttgart? Nein! Ein von einem unbeugsamen Nerd bevölkertes Studio leistet unerbittlich Widerstand…

Es geht so langsam in die heiße Phase, ich weiß nich mehr so genau, ob ich gestern einen Entrag geschrieben habe, oder ob ich das vergessen hab O.o

Auf jeden Fall habe ich.

0) Mal ne Stunde in mein Raumschiff gesteckt: Jetzt hat es Texturen und man sieht den Teddy im Cockpit.

myShip

Gut, dass Teddy ein Teddy ist, sonst würde er wahrscheinlich im Weltraum ersticken in seinem Cabrio.

1) Die Explosionen optimiert, damits nich so stockt. Jetzt werden nich jedesmal neue Particlesysteme ins Leben gerufen, sondern, die alten Explosionen “wiederbelebt”. Das verringert den Zugriff auf die Textur und klappt ganz herrvorragend und wenns mal zu viele Explosionen werden werden einige einfach nicht mehr gezeichnet, was man dann wahrscheinlich eh nicht merkt, weil schon alles voll ist :)

2) Das Schild des Spielers kann sich jetzt aufladen und die Recoveryfrequenz steigt mit steigendem Level des Spielers. Das soll er dann später selbst auswählen können, was er gerne steigern möchte. Quasi ein Skillsystem.

3) Ich habe meiner Hanimanengine eine Rauch Klassse gegönnt, diese ist zwar noch etwas unflexibel, aber was solls, das dann immernoch geändert werden. Auf jeden Fall hat mein Flieger jetzt endlich nen ordentlichen Antrieb.

4) Die Gegner können jetzt schießen. Jetzt kann auch der Spieler endlich sterben. :)

5) Alle Schüsse richten sich jetzt nach ihrer Flugrichtung aus. Das ging erstaunlich einfach, nach einigem Rechnen hatte ich folgende tolle Formel:

D3DXVECTOR3 normalisedDirection = H_nomalizeVector3(schussDir);

rotZ = atan2(normalisedDirection .y, normalisedDirection .x)

und mit rotZ rufe ich dann einfach meine Sprite Funktion auf.Jetzt zahlt sich aus, dass sich die Dinger drehen können :D

6) Ich kann jetzt die Bildschirmkoordinaten der Maus in die 3DVector koordinaten meines Spieles Umwandeln, was zur Folge hat, dass man nun die Schussrichtung des blauen Lasers bestimmen kann.

Ausgerechnet hab ich das ganze in der Medienrechtvorlesung ( danke nochmal Käse für den Zettel )

ich musste nur das hier in die die WndProc einfügen und schon hat man die aktuelle Mousposition, immer wenn diese sich bewegt:

wobei 10 und 8 meine maximalen Vectorpositionen in X und Y sind:

g_SpaceStory->mouseXpos    = ((GET_X_LPARAM(lParam) * 20) / SCREEN_WIDTH) - 10;
g_SpaceStory->mouseYpos    = ((GET_Y_LPARAM(lParam) * (-16)) /SCREEN_HEIGHT) +8 ;

7) Ich hatte eine super Idee für meine Intro und habe das dann heute Nacht direkt gerender. Ich wills nich verraten, seht selbst:

Wer eine Ähnlichkeit mit einem Youtube Video erkennt hats erkannt :)

Und weiter gehts … (Tag 5)

Montag, den 21. April 2008

Heutige neue Features:

1) Der rote Laser kann sich jetzt, wenn er einen Schild trifft aufsplitten. Klingt einfach, aber ich musste dafür meine ganze Spriteengine umschreiben. Denn vorher hatte ich einen “std::Vektor” und wenn ich da einen Particel einfügen möchte, wärend ich den Vektor durchlaufe, verändert sich dessen länge und es knallt. Also habe ich alles auf das gute alte Array umgebaut und lösche jetzt keine Particel mehr und erstelle sie, sonder initialisiere am Anfang alle Particle und sobald einer “Tod” ist wird er an einer anderen Stelle “wiedergeboren”.

2) Ich hab es nun endlich heute morgen geschafft ein Video abzuspielen. Jetzt beherbergt die Hanimanengine also einen H_Video player. Allerdings kann ich im moment nur Videos in einem neuen Fenster öffnen, weil DirectDraw das rendern in eine Textur nicht direkt unterstützt, das wird also noch gemacht, aber das hat ja Zeit bis nach dem Kontest, jetzt kann also das rendern der Zwischensequenzen losgehn, ich hoffe mal ich hab noch genug Zeit, was zu animieren.

3) Hmm ich weiß nicht, ob ichs schon erwähnt hatte. Ich hab die Spielerklassse fertig gemacht. Sie hat jetzt auch eine Erfahrungssystem und je nachdem welches Level man erreicht hat führt die ChangeLevel(int) Methode dann bestimmte Dinge aus. Wichtig ist noch die tolle Particleanimation, wenn man einen “LevelUp” hat. :)

4) Ich war heute in der Medienrechtvorlesung! O.O

Tag 4

5) Das vieleicht wichtigste, ich habe einen Fehler ausgemerzt, der das Laden unverschämt lang gemacht hat und das Spiel nur ca. jedes zweite mal hat starten lassen. Der erste Fehler war, das ich ein paar zu große Hintergrundbilder hatte und der zweite war, dass ich in den exit() functionen meiner Klassen nicht immer nach dem Releasen des “Speichers”, den Zeiger auf NULL gesetzt hatte.

Morgen muss ich dann ma das Spieler Model ordentlich machen und die Rauchparticle für den Auspuff wären auch nicht schlecht.

Das Video is eigentlich noch von gestern, aber was solls:

Uni O.o ( Tag 4 )

Montag, den 21. April 2008

Gutn morgen!

soo heute früh hab ich noch schnell meine Hanimanengine um einige wichtige Soundoptionen erweitert, man kann jetzt mehrere Sounds gleichzeitig abspielen, per “fmod Sample” und man kann die Lautstärken verändern. Beides sehr wichtig .

Und nun meine Aufgaben für heute:

1) Als erstes das Leveleventsystem erstellen, dann kommt der schöne Teil, die hübschen Partikel.

2) Das Ausfaden von Partikeln mit der Lebenszeit, damit explosionen noch besser aussehen *g*

3) Hübsche Laser erstellen und diese mit einer relativen Position zum Schiff abschießen, damit die Schüsse nich einfach aus dem nichts erscheinen.

4) Glühende Particle erstellen mit AlphaBlending O.O

5) Einen netten Schildpartikel erstellen

So erm, jetzt is schon wieder ein Tag später, puhh jeden Tag einen Artikel zuschreiben is aber auch echt schwer ! Also geschafft habe ich mittlerweile:

1) Ich habe jetzt eine Levelsystem, es is nicht super praktisch, aber es geht. Im Hintergrund scollen verschiedene Texturen von rechts nach links und im Vordergrund so Dinge wie Planeten etwas schneller

2) Hmm ja das habe ich leider nicht geschafft keine Ahnung warum das nicht klappen möchte, ich werde mir jetzt so helfen, dass ich einfach 3d Texturen nehme und diese in den letzen Bilder einfach durchsichtiger mache…

3) Ja das hab ich jetzt einigermaßen, zumindest für den Roten Laser. Die anderen kommen später. Das mit der relavtiven Position klappt gut, ich addiere einfach zu der Position des Schiffes den relativen Offset des Schusses hinzu und lasse denn den Schuss dort starten. Den Rest übernimmt dann mein Spritesystem :)

4) Hmm “Glühen” najaa, ich hab jetzt in Photoshop einen weißen Kreis drumgezeichne, das lässt sich sicher noch verbessern.

5) Ui ! Ja den hab ich, da ich ja nich mit Photoshop umgehen kann habe ich in XSI einfach einen Fragment Shader in einen Cloud Shader gesteckt und mit diesem dem Diffuse und den Transparenzwert eines Phongs gesteuert. Dann die Zeit animiert, das ganze in einer 10 Bilder Sequenz gerednert und dann mit dem Texture Tool, das bei DirectX mit dabei ist in ein .dds File verwandelt. Jetzt habe ich also einen 3Dimensionelen Schildpartikel.Das hat Spaß gemacht :)

schild2schild2schild3 Davon 10 …

Ab heute wird alles anders ! (Tag 3)

Montag, den 21. April 2008

Tag 3

Ich habe mir vorgenommen, ab jetzt alles ein bisschen besser zu Planen. Ich werde mir jetzt für jeden Tag morgens einige Dinge vornehmen und direkt hier reinschreiben und dann wird nach und nach abgehakt.

Also meine Ziele für Tag 3:

1) Schöne 3d-Modelle finden, laden können und verwalten

2) Scolling des Hintergundes, eine ordentliche Levelstruktur

3) und am Ende, weils soviel Spaß macht der Sound ! :)

Meine Erreichten Ziele am Tag 3:

1) Schöne 3d-Modelle finden, laden können und verwalten

Nach nichtmal zwei Stunden habe ich dieses Problem gelöst :)

Ich habe mir 3D Studio Max 9 installiert (würgs), mit diesem diverse gefundene .3ds geladen und mit dem Max Plugin “Panda” als .x Files exportiert.Meine kleiner Haniman Modelloader kann diese Lesen und berherrscht jetzt sogar Texturen. *freu*

Als nächstes werde ich jetzt alle Models in die richtige größe scalieren und dann mal ein bisschen aufräumen, das auch wirklich nur die Models drin sind, die ich auch brauche.

Das umbaun, implementieren und Scalieren der Models hat allerdings nochmal bis in den Nachmittag gebraucht, dann war ich erstmal mit Tina beim Sport und danach habe ich die Hintergründe eingebaut. Die Models stellen sich alle als doch nich soo toll herraus. Nachdem Exportieren waren die meisten entwerder zerlöchert oderhatten keine Texturen mehr.

Letztendlich werd ich wohl die Models von der CD zu dem Buch Spieleprogrammierung mit DirectX, und die Models aus den DirectX Examples nehmen… Und zum Glück hab ich ja noch das Model von Jan Härting, meinem 3D Profi aus Hamm, dass passt eigentlich perfekt,das muss ich “nur” noch konvertieren und “nur” noch Texturieren, aber das kommt später.

Schiff1Schiff2Chessking

2) Scolling des hintergundes, eine ordentliche Levelstruktur

Jetzt kann man verschiedene Hintergrundtexturen am Anfang eines Levels auswählen und diese per Loop immer wieder vorbeifliegen lassen, das gibt einem die Illusion man würde fliegen. :)

Klingt einfach, aber ich brauchte trotzdem lange dafür. Vorallem, weil ich das ganze eigentlich mit meinem Particle System machen wollte, aber das is wohl doch etwas “overdone”, weil so funktionierts ja auch.

3) und am ende, weils soviel Spaß macht der Sound ! :)

Das mit dem Sound war echt mal ne angenehme Aufgabe, das hat nichtmal 10 Minuten gedauert und ich konnte meinen ersten Sound abspielen, jetzt hab ich Hintergrundmusi und Laserschüsse. FMod ist echt ein segen, vorallem wenn ich höre, wie der Jay über XNA Sound flucht. *g* Das Problem dabei ist nur, dass die Schüsse zu schnell hintereinander kommmen, als das er alle Abspielen könnte, mal sehn wie ich das löse… auf jeden Fall erst morgen :)

Das nächste Video gibts auch erste morgen :)

oder ne hier die erste Version des Intros, die lustige fertige gibts dann später

gut nacht

Sooo (Tag 2)

Montag, den 21. April 2008

Sooo, ich hatte heute irgendwie das Gefühl nicht genug gemacht zu haben, also habe ich mich um 2 noch schnell hingesetzt und einen bewegten Hintergrund eingebaut.

Eben is mir dann aufgefallen, das ich doch einiges gemacht hatte.Immerhin kann mein Spiel jetzt:

- An beliebigen stellen Models Spawnen und bewegen

vollerGegner

- Man kann schießen

- Die Schüsse machen schaden an den Models

- Solange das Model noch Schildendergie hat werden an dem Schnittpunkt mit der Boundingsphere Schildparticle emmitiert

- Ist das Schild kaputt wird Schaden gemacht und der Gegner explodiert in einer schööönen Explosion

Jetzt machts schon Spaß. :) mit der Leertaste kann man hunderte Gegner spawnen und dann abschießen. Reicht eigentlich schon, oder?

Die Schildparticel sind viereckig, da muss ich wohl nochmal rüber und ich brauch endlich eine XSI Version, damit ich die Zwischensequenzen rendern kann…

(XSI Problem gelöst, ich hab einfach die Trail nochmal auf dem Laptop installiert :) )

Am Anfang war das UML-Diagramm ( Tag 1 )

Montag, den 21. April 2008

Nachdem ich unserem Gameskontest nun schon seit einigen Wochen entgegenfiebere war es nach ewigem Warten war nun heute morgen soweit, um Punkt 5 nach 12 konnte ich endlich das Visual Studio Project erstellen und der Programmiermarthon begann.

Meine Idee ist “Teddys Space Story”, wer meine Seite etwas studiert hat wird bereits auf meinen kleinen süßen Teddy gestoßen sein. Da ich den Teddy schon fertig habe, dachte ich mir wäre es eine Schande ihn nicht mal in ein Spiel einzubauen.

Man wird also im ersten Level in einem von einem Teddy gesteuerten Raumschiff von der Erde zum Pluto fliegen, dort den Bösen “Teador” besiegen und dann wieder zurück fliegen. Falls ich Zeit habe, werde ich versuchen noch Zwischensequenzen zu rendern und diverse Gimmiks einzubauen. Ganz wichtig sind mir, Schilde der Gegner, viel Aktion, gute Musik und dicke Endgegner. Eine Liebegeschichte zwischen einer kleinen Teddyfrau und dem Teddysoldaten, wäre natürlich auch noch was feines, aber erstmal steht im Vordergrund, dass das Spiel bis Freitag spielbar wird. Das ist oberste Priorität. Also los:

12.05:

Meine 5 minütge Startverspätung resultierte aus einem sehr Ausführlichem UML-Diagramm, das mir im Laufe der Woche sicherlich helfen wird.

UML

Mein Programmieren begann mit viel Copy-paste aus anderen Projekten. Ganz großen Dank hier schonmal an DirectXTutorial.com, und die ich das ganz bestimmt nicht schaffen würde.

-Fenster öffnen

-Direct-3D intialisieren

-Meine kleine feine Haniman-Engine einladen und und und

Am Anfang hatte ich ein ziemliches Problem mit den Headerdateien, da sich das ein oder andere Semikolon nicht mehr an der richten Stelle befinden wollte. Ehe man dieses dann gefunden hat vergehen schonmal ein, zwei Stündchen…

Es hat sich dann aber noch ganz gut entwickelt.

Mitlerweile (es ist schon Abend) kann ich:

- Models erstellen und darstellen

- Meine Particleengine intialisieren und an beliebigen Stellen Explosionen erzeugen.

- Schüsse an belibiegen Stellen erstellen und fliegen lassen

- Meine Endbeispielscene zeigt zufällige Explosionen meiner Haniman Particle Engine. ( nicht sehr spannend, aber wartet nur ab :) )


Da meine XSI Trail Version demnächst abläuft habe ich auch noch schnell das Intro gerendert.

- Die Mütze für den Teddy hat 8 Minuten gedauert und die Erde nochmal 20, dann noch alle ein bisschen animiert und nach nichmal einer Stunde hatte ich mein kleines Intro. Allerdings klappt das Video abspielen immer noch nicht besonders und ich schätze ich werde keine Zeit mehr haben das zu repariere. :(

Das Intro zeig ich erst später, damit ihr auch weiterlest :)

YIEHAAA ! Endlich auf Platz 1 !

Samstag, den 19. April 2008

Nach langem Ringen mit www.Jonas-Hahn.de bin ich nun endlich bei Google an erster Stelle, wenn man nach meinem Namen sucht. :)

Jetzt werde ich nicht mehr mit einem 5 jährigem , einem mit einer Harry Potter Homepage oder diversen anderen Jonas Hahn’s verwchselt.

Platz 1 :)

Yipie! :)

ps: unter “Webklitsche” bin ich auch auf Platz 1 *g*