Archive for Programmierung

Game Development Magazine

Ein kostenloses Projekt aus Südafrika ist mir gerade unter die Maus geflogen.

Wirklich viel von gelesen habe ich noch nicht, aber ehe mir der Link wieder abhanden kommst, poste ich den Verweis lieber gleich einmal.

Comments

Frameserver

Kam gestern Abend in die Gelegenheit etwas mehr über Video-Reencoding zu lernen. Es ging darum ein XVid Movie (Auflösung 640×272 Pixel) in ein gängiges MPEG Format (720×304 Pixel) zu konvertieren.

Die frei verfügbare Version von TMPGEnc war dabei der Encoder der Wahl, doch aufgrund der variierenden Seitenverhältnisse musste ich diese zunächst einmal anpassen um nicht ein verzerrtes Endergebnis zu erhalten.

Im Klartext hieß dies, schwarze Balken mussten ober- und unterhalb des Videos hinzugefügt werden. Dabei habe ich die Vorzüge von AVISynth kennengelernt. Dieses ist ein frei beziehbarer Frameserver. Gesteuert wird diese Software weder über eine grafische Benutzeroberfläche noch über die Kommandozeile - man schreibt kleine AVS- Skripte.

Diese AVS Dateien können anschließend mit einem normalen Videoplayer oder wie in meinem Fall mit einem Encoder geladen werden. Sofern diese korrekt geschrieben wurden wird dann in echtzeit die entsprechend geskripteten Änderungen vorgenommen.

In meinem Fall sah das Skript wie folgt aus:

videoa = directshowsource("d:\movie_a.avi")
videob = directshowsource("d:\movie_b.avi")
AlignedSplice(videoa,videob)
spline36resize(720, 304)
addborders(0,136,0,136)
# Video testweise auf die ersten 500 Frames trimmen um Endergebnis zu beurteilen.
# Trim(0,499)

Zunächst einmal werden 2 Videos geladen, bzw. über die Variablen videoa bzw. videob referenziert. Anschließend wird gekannt gemacht das diese 2 Videos aneinandergehangen werden sollen. Die neue Videogröße wird definiert und entsprechend der Rechnung (576-304)/2 = 136 werden 2 Ränder oben und unten hinzugefügt.

Anschließend kann diese AVS Datei wie ein normales AVI in TMPGEnc geladen werden. Fertig :)

Comments (1)

JS, DHTML Helferlein

Ich persönlich bin nicht so stark der Fan von Javascript und DHTML (von der Pieke auf) selbstprogrammieren. Aber manchmal möchte man doch die tollen Benefits dieser Technologien nutzen. Gottseidank gibt es für Faule wie mich andere Leute, die anscheinend damit keine Probleme haben und Ihre Werke anschließend mit jederman sogar teilen.

Eine gute Resource in Hinblick auf DHTML Navigationen und einem WYSIWYG  Editor, besuche ich gerne die Site von Cezary Tomczak.

Dort findet man einfache und funktionierende opensource Implementierungen der eben genannten Dinge.

Comments

Erinnerungen

Vor kurzem kam ich endlich dazu meine alten Iomega ZIP Disketten auszulesen. Mein damals gekauften ZIP-100 Laufwerk hatte inzwischen den Dienst quittiert und so musste ich auf eine andere Gelegenheit warten.

Es war schon recht interessant was man darauf so alles wiederfand. Diversen Stuff wie Wallpaper, Sourcecodes, etc., gezogen mit 28.8er Modem aus dem internen AOL Bereich für viel Geld (insg. ca. 12 DM/Stunde).

Besonders schmunzeln musste ich schließlich über selbstgemachte Dinge. Erste Programmierversuche mit denen man damals noch glaubte die Welt erobern zu können. Darunter auch ein Werkzeug zur Spriteerstellung, entstanden in einem Co-Op zur Anfangszeit meiner Ausbildung (1999?).

Geplant war ursprünglich eine Art Weltraumstrategiespiel, in dem der Spieler eine Planeten zunächst angelegt an Sim City aufbauen und verwalten muss. Anschließend wechselt man bei Bedarf ab einer bestimmten Technologiestufe in eine “gröbere” Ansicht und man sorgt für Kommunikation und Transfers zwischen den verschiedenen eigenen und fremden Planeten, etwa wie in durchschnittlichen Browsergames gleichen Genres.

Internet-, Netzwerk- und echtzeit Mehrspielerunterstützung war damals sowohl vom Knowhow noch von der gesehenen Notwendigkeit her weit entfernt. Stattdessen wollten wir den Spielstand auf mobile Datenträger (Disketten!) abspeichern bzw. herumreichen lassen und demnach - wie Schachspieler, die über Briefe kommunizieren - das Spiel rundenbasiert fortlaufen lassen (bitte spätestens jetzt ein wenig Lachen!).

Ein Binary/Executable oder gar den Source veröffentliche ich aus wohl verständlichen Gründen an dieser Stelle nicht, jedoch vielleicht bald einige andere Fundstücke.

Abschließend zwei kleine Screenshots, für welche ich sogar die DosBox bemühen musste ;-)

Alienhead Spriteeditor

Comments

Grafik-, Physik- und Spielengines

Analog zum letzten Post hier noch eine kleine Auflistung an anderen Engines.

Grafik- und Spielengines:

Physikengines:

Comments

Netzwerk Engines

Grafik-, Physik- und Spielengines zählt man wie Sand am Meer. Eine gute Middleware für Multiplayersupport auf Netzwerkbasis findet man schon seltener. Hier habe ich mal eine kleine Auswahl an mir bekannter Middleware zusammengestellt:

Comments

Murmelspiele

Im Rahmen der Computergrafik 1 Abschlussaufgabe entstanden auch letztes Semester wieder einiges an lustigen Spielen an meiner Fachhochschule.

Ein langjähriger Freund und Komilitone von mir, Sven Reinck, hat nun sein Projekt “CG Madness” zum freien download bereitgestellt.

Es ist eine Art Remake des Klassikers Marble Madness. Ziel ist es bei diesem Spiel eine Kugel, welche üblichen physikalischen Gesetzten gehörcht, über verschiedene Ebenen und Schrägen zu manövrieren. Fällt jedoch die Kugel dabei zu tief, so wird diese zerschellen und man muss von seinem Startpunkt aus das Zielplateau erneut ansteuern.

Neben einer Hand voll fertigen Leveln ist ein Leveleditor in dem Paket mit enthalten.

CG Madness Ingame ScreenshotAus Zeitgründen wurde die private Weiterentwicklung jedoch vorläufig eingestellt. Wer sich jedoch dafür interessiert kann sich gerne bei mir bzw. direkt bei Sven melden und kriegt ggf. einen Zugang zum CVS. Ideen von unserer Seite existieren eine Menge. Darunter zum Beispiel Multiplayersupport mit verschiedenen Spielmodi wie z.B. capture the flag.

Die Binaries für Windows als auch für Linux sind unter folgender URL zu finden:

http://www.reinck.de/cgmadness/

EDIT: Anbei, dieses Spiel verwendet die GLUT (opengl utility toolkit). Windowbenutzer finden die portierte Fassung davon hier.

Comments

Firefox Extensions im Eigenbau

Wer schon immer seine eigene Firefox Extension bauen wollte, sollte sich mal die Seite Extend Firefox: Your Guide to Writing Firefox Extensions genauer anschauen.

Dort findet sich ein durchaus nützliches Tutorial, das neben der Entwicklung einer Extension auch Punkte wie Einrichten der Arbeitsumgebung oder Veröffentlichung der Extension behandelt.

Comments