C++Guns – RoboBlog blogging the bot

20.08.2008

Das erste Portal

Filed under: My Time Portal — Thomas @ 22:08

Das erste Portal funktioniert. Naja.. ganz grob.
Ich muss die komplette Scene drei mal rendern. Einmal für den Spieler und zwei mal für die Portale. In meiner ersten Map gibt es 2 Räume, in jedem ein fest installiertes Portal. In Raum eins, ein schwarzer Ball der eigentlich rot sein sollte, und in Raum zwei eine riesen grosse Ente. Durch die Portale kann man die Gegenstände sehen. Nährt man sich dem Portal, kommt man bei dem anderen wieder raus. Das ganze geht sehr sprunghaft und sieht auch garnicht so schön aus wie im Spiel.

Ich habe mir übrigends am Wochenende das Spiel Portal gekauft. Nach 20h fluchen lief es auch auf meinem f%&! Windows. Aber es hat sich gelohnt. Die Motivation ist wieder gestiegen und ich habe es auch schon 2 mal durchgespielt und noch immer nicht genug. Die Entwicklerkommentare zu dem Spiel im Spiel sind sehr interesannt. Und ich kann mir das Verhalten der Portale im Spiel genau ansehen.
Es macht einfach nur Spass, so die physikalischen Gesetzte auszutricksen. Die Story von dem Spiel finde ich auch klasse, nur die Monologe sind etwas eintönig. ;)

18.08.2008

Milkshape Model & 3rd person view

Filed under: My Time Portal — Thomas @ 20:08

In den letzten Tagen habe ich mich damit beschäftigt einen Model Viewer zu finden, der auch unter Linux funktioniert. Meine beschränkte Wahl fiel auf den Misfit Model Viewer[1], der gänigste Formate laden und speichern kann. Als Modelloader viel meine Wahl auf den Milkshape Loader, irgendwo von den NeHe Turorials. Ekliges Teil. C und C++ gemischt. Das ist alles nicht so das wahre. Ich musste den Loader anpassen und Pathe in der Modeldatei ändern bis es funktionierte. Aber zum testen langt es. Als Testmodel musste PadLilly von WorldOfPadman[2] herhalten. Animationen werde ich nicht einbauen. Es gibt wichteres z.B. die Portale.

Die 3rd Person View funktioniert jetzt auch einigermassen. Man kann sich zumindest in der Map bewegen.

Der Spiegel, der mal ein Portal werden soll, funktioniert noch nicht so berauschend. Momentan hat er einen lustigen Fehler. Der einzige Spiegel auf der Welt, mit dem man sich von hinten betrachten kann ;) Siehe Bild.

Auch mit den Texturen bin ich nicht zufrieden. Geht man nah an die Wand ran, verpixeln sie start. Aber das sind Nebensächlichkeiten.

Ich brauche mehr Gegenstände in der Map. Eine Uhr z.B. wäre sehr geeignet. Um auch später den Zeitsprung-Effekt zu verdeutlichen.

[1] http://sourceforge.net/projects/misfitmodel3d/
[2] http://worldofpadman.com/

12.08.2008

Texturen, Bälle und ein Spiegel

Filed under: My Time Portal — Thomas @ 22:08

Nach ein paar weiteren Tagen harter Arbeit ist es mir gelungen eine kleine 3D Welt aufzubauen, in der man sich frei bewegen kann. Die Position der Wände werden über eine Datei eingelesen. So lässt sich die Map bearbeiten, ohne dass das Programm neu erstellt werden muss. Texturen gibt es auch, allerding erstmal nur drei Stück.

Die Map besteht aus 2 Räume, in einem hängt ein "Spiegel" und davor ein kleiner roter Ball. Es ist eigentlich noch kein Spiegel, es gleich mehr einer fest installierten Kamera mit Bildschirm.

Der Spieler wird als einen grünen Ball dargestellt. Vllt. ist es mir möglich demnächst ein Model einzubauen. Eine Kugel als Spielfigur ist nicht grade das, was man sich darunter vorstellt.

Erst wenn man mal versucht einen Spiegel zu programieren, wird einem klar, wie kompliziert das Ding doch ist...

MTP Screenshot 2

10.08.2008

World of Padman - release mouse patch

Filed under: programmieren — Thomas @ 09:08

Das Spiel Wolrd of Padman[1] ist ja ganz lustig. Vorallem freut mich, dass es auf Win, Mac und Linux läuft und die Source verfügbar ist. Beim spielen kann man zwsichen Fenster und Vollbild Darstellung wechseln. Im Vollbild Modus kommt man dann nur nicht mehr auf seine anderen Desktops. Und im Fenster Modus kann die Maus das Fenster nicht verlassen. Aber wir haben ja den Quelltext! Das Programm baut auf SDL auf, womit ich mich ein wenig auskennte. Die Funktion die die Maus bindet war schnell gefunden, und eine Stunde später der Patch fertig.

In der Datei code/unix/sdl_glimp.c ungefähr bei Zeile Nummer 230 sollte es dann so aussehen:

case SDLK_F8: *key = K_F8; break;
case SDLK_F9: *key = K_F9; break;
case SDLK_F10: *key = K_F10; break;
// case SDLK_F11: *key = K_F11; break;
// case SDLK_F12: *key = K_F12; break;
/*
* kater 10.08.2008
* Press F12 and the mouse can leave the window
* in non-fullscreen mode
* To restore press F11
*/

case SDLK_F11:

SDL_WM_GrabInput(SDL_GRAB_ON);
printf("Grab is On\n");
break;

case SDLK_F12:

SDL_WM_GrabInput(SDL_GRAB_OFF);
printf("Grab is Off\n");
break;

case SDLK_F13: *key = K_F13; break;
case SDLK_F14: *key = K_F14; break;
case SDLK_F15: *key = K_F15; break;

Danach einfach neu compilieren. Unter build/ befinden sich dann zwei *.i386 Dateien, welche man über die original Dateien drüberkopiert. Spiel starten, ausprobieren, freuen :)

[1] http://worldofpadman.com/

09.08.2008

Renderpass

Filed under: My Time Portal — Thomas @ 10:08

Das erste Testprogramm ist nach nichtmal einen Tag Arbeit fertig. Erst jetzt merke ich, dass ich von opengl noch absolut keine Ahnung habe.
Zu Anfang habe ich erstmal zwei Tutorials[1][2] zusammengewürfelt um ein Grundlagenprogramm zu bekommen. Es wird ein sich drehender Würfel erzeugt, der auf 3 weiteren Bildschirmen sichtbar wird. Die selbe Technik werde ich wohl benutzen um die Scene zu rendern, die einem gezeigt wird, wenn man durch ein Portal in die Vergangenheit schaut.

MyTimePortal1

mytimeportal_01tar.gz

[1] http://wiki.delphigl.com/index.php/Tutorial_Renderpass
[2] http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=06

07.08.2008

My Time Portal

Filed under: Allgemein,My Time Portal — Thomas @ 11:08

Vielleicht kennen einige das Spiel Portal[1]. Ich versuche so ein ähnliches Programm zu schreiben, das auch Portale erzeugt, mit denen man aber nicht nur durch den Raum, sondern auch rückwärts durch die Zeit reisen kann.
Um das zu ermöglichen, speicher das Spiel zu jeden Zeitpunkt alle Daten zu allen relevaten Objekte wie Spieler, oder Kugeln ab. Gelangt ein Object in die Vergangenheit des Spieles, wird das Spiel alle Geschehnisse nachrechnen müssen, die dadurch in Bewegung gesetzt worden sind.
Weiterhin plane ich, dass die Spieler unabhänig vom Spiel in die Vergangenheit schauen kann, um festzustellen, wie sie sich durch seine aktionen in der relativen Zukunft verändert.

Dabei lege ich keinen Wert auf Grafik oder Spielgeschehen. Das können andere machen :)

[1] http://de.wikipedia.org/wiki/Portal_(Valve)

Powered by WordPress