SuperTuxKart 0.6.2

Der Port hat doch schon einen Maintainer. Ich werde aber auf jeden Fall ein Update auf die finale 0.7 als Patch submitten, wenn die draußen ist. Ein Paket wäre spätestens dann überflüssig, wenn ein offizielles FreeBSD-Paket aus dem Port gebaut wurde, aber für Testversionen ist ein statisches Paket möglicherweise schon sinnvoll, wenn es jemand nicht selbst kompilieren will.
 
Hallo zusammen,

nach mehr als einem Jahr Arbeit, dutzenden neuen und beseitigten Fehler, mehr als 3000 commits, einer unglaublichen Menge an Arbeit von Künstlern, unerbittlichem Testen von Testern, Übersetzungen von mehr oder weniger jedem Fleck der Erde haben wir es endlich geschafft und können gerade noch rechtzeitig vor Weihnachten Version 0.7 von SuperTuxkart ankündigen!

Download wie üblich von hier.

Vielen Dank an die grosse Hilfe auch hier vom Forum, für Fehlerberichte, Kritiken und Lob. Wir hoffen, ihr werdet alle Spass mit SuperTuxKart 0.7 haben.

Screenshots von STK 0.7 unter Frenzy FreeBSD:



@waki87: Könntest du ein Update in der Ports-Sammlung machen?
 
logo.gif


Ein STK 0.7 PBI ist im Anmarsch :)

Zitat von thnewguy:
I have submitted a PBI for this game to make it easier for PC-BSD users to test drive.

PC-BSD Forum
 
Das Update für den FreeBSD-Port wurde soeben committet.

Für OpenBSD wird das Ganze etwas komplizierter: Irrlicht ist nicht so einfach zu portieren, daß der UTF-8-Support von OpenBSD noch nicht so weit gediehen ist (konkret fehlt swprintf(3)). Ich werde versuchen, es mit libutf8 zu bauen oder notfalls UTF-8 einfach ganz zu knicken. Es gibt bereits einen fast fertigen (jedenfalls funktionstüchtigen) Port von 1.7.1, an dem ich mich auch orientieren kann.
 
Das Update für den FreeBSD-Port wurde soeben committet.

Für OpenBSD wird das Ganze etwas komplizierter: Irrlicht ist nicht so einfach zu portieren, daß der UTF-8-Support von OpenBSD noch nicht so weit gediehen ist (konkret fehlt swprintf(3)). Ich werde versuchen, es mit libutf8 zu bauen oder notfalls UTF-8 einfach ganz zu knicken. Es gibt bereits einen fast fertigen (jedenfalls funktionstüchtigen) Port von 1.7.1, an dem ich mich auch orientieren kann.

Hallo Waki,

danke für die Port-Aktualisierung. Super, dass du schon an dem OpenBSD-Port arbeitest :)

Ich wünsche dir einen guten Rutsch in das neue Jahr :) Und vielen Dank für die viele Arbeit für STK im letzten Jahr!
 
Für OpenBSD wird das Ganze etwas komplizierter: Irrlicht ist nicht so einfach zu portieren, daß der UTF-8-Support von OpenBSD noch nicht so weit gediehen ist (konkret fehlt swprintf(3)). Ich werde versuchen, es mit libutf8 zu bauen oder notfalls UTF-8 einfach ganz zu knicken. Es gibt bereits einen fast fertigen (jedenfalls funktionstüchtigen) Port von 1.7.1, an dem ich mich auch orientieren kann.

Das mit libutf8 ist keine milde Bruehe, das Irrlicht-Zeugs ist dermassen verstrahlt, dass Du da wirklich die Krise bekommst, wenn Du die #includes an den richtigen Stellen reinrammen willst.

Die Waffe der Wahl ist IMHO, die paar swprintf(3) durch snprintf(3) in einen extra zu spendierenden Buffer zu ersetzen und dann mit mbstowcs(3) das Ergebnis zu konvertieren. Wenn Du Dir die Aufrufe von swprintf(3) in Irrlicht mal ansiehst, dann ist da einmal ein `%p' im Formatstring, was ja nun wirklich nicht Locale-abhaengig sein sollte oder irgendwelche Zeichen jenseits von ASCII generiert, dann diverse Formatierungen von Fehlermeldungen in CZipReader.cpp, und dann noch das setValue() in CGUISpinBox.cpp (da muesste man noch mal hinterherhecheln, wo das ueberall aufgerufen wird und was der Formatstring ist).

Beispie fuer CAttributeImpl.h:

Code:
$OpenBSD$
--- source/Irrlicht/CAttributeImpl.h.orig	Sun Oct 24 09:42:50 2010
+++ source/Irrlicht/CAttributeImpl.h	Sat Jan 15 21:08:08 2011
@@ -1938,7 +1938,9 @@ class CUserPointerAttribute : public IAttribute  (publ
 	virtual core::stringw getStringW() 
 	{ 
 		wchar_t buf[32]; 
-		swprintf(buf, 32, L"%p", Value); 
+		char cbuf[32]; 
+		snprintf(cbuf, sizeof(cbuf), "%p", Value); 
+		mbstowcs(buf, cbuf, sizeof(buf)); 
  
 		return core::stringw(buf); 
 	}

Natuerlich ist es recht kuehn, hier fuer cbuf die gleiche Groesse wie fuer buf zu nehmen, sollte aber in diesem speziellen Fall kein Problem sein (famous last words). An den anderen Stellen sollte fuer cbuf schon etwas mehr spendiert werden -- ich bin aber mit dem Multibyte-Dreck auf Kriegsfuss und kann deshalb keine Hausnummer fuer die Groesse nennen.

Was natuerlich auch noch fehlt, ist ein Check der Returnwerte von snprintf(3) und mbstowcs(3). Allerdings ist das Irrlicht-Zeugs wie gesagt so dermassen vergeigt, dass man sich das eigentlich auch sparen kann.

Nachtisch: wenn Du mir Deine Mailadresse verraetst, kann ich dir meine Patches schicken. Aktuell haengt's jedenfalls nicht mehr am swprintf(3) sondern am fehlenden linux/joystick.h.
 
Zuletzt bearbeitet:
Natuerlich ist es recht kuehn, hier fuer cbuf die gleiche Groesse wie fuer buf zu nehmen, sollte aber in diesem speziellen Fall kein Problem sein (famous last words). An den anderen Stellen sollte fuer cbuf schon etwas mehr spendiert werden -- ich bin aber mit dem Multibyte-Dreck auf Kriegsfuss und kann deshalb keine Hausnummer fuer die Groesse nennen
Ich denke da sollte man, so sehr es auch schmerzt, den Worst Case abdecken, das heißt 32Bit pro Character. Andernfalls kann man mit entsprechenden Strings Buffer- oder Stack-Overflows erzeugen.
 
@kili:
Wenn ich das richtig interpretiert hatte unterstützen die BSDs nur 2 Button-Joysticks via joystick.h. SDL kommt mit mehr Joystick-Knöpfen zu recht.

Linux
BSD
 
@kili:
Wenn ich das richtig interpretiert hatte unterstützen die BSDs nur 2 Button-Joysticks via joystick.h. SDL kommt mit mehr Joystick-Knöpfen zu recht.

Das Problem hat sich doch inzwischen erledigt, das Irrlicht-Zeugs und ein Patch fuer STK hat Pascal an ports@ geschickt, und ich hab's (port-maessig) noch ein wenig aufgeraeumt. Ich habe bloss z.Z. keine Zeit, das mal wirklich zu testen (Spieletests arten bei mir immer in komplett verdaddelte Tage aus) ;-)
 
Hmm, mit meinem Joystick geht es auch nicht. Der wird einfach als /dev/uhid0 erkannt. Mit d2x-xl hat das funktioniert (zumindest als d2x-xl noch funktioniert hat).
 
Man könnte über Plib den Kram portabel gestalten.

Die 0.7 setzt auf die Irrlicht Grafik-Engine. PLIB wurde bis zur 0.6.2a verwendet. In der Ports-Sammlung wird bei Irrlicht über make config der Linux-js-Support angeboten. Wenn dieser ausgewählt wurde, dann kann Irrlicht nicht kompiliert werden, weil der linux-js-Port broken ist. Für die Gamepad-Unterstützung benötigen wir den linux-js-Port.
 
Hallo zusammen,

wir haben einen ersten 'release-candidate' fuer 0.7.1 fertiggestellt: https://sourceforge.net/projects/supertuxkart/files/SuperTuxKart/0.7.1/

Neu:

Partikel-Effekte (Staub, Feuer, Wasser) und Wetter (Regen und Schnee)
Fort Magma ueberarbeitet von Samuncle, neue Shiny Suburbs Strecke von Horace (ehemals city-track)
Einige Strecken sind umbenannt worden (weiss nicht, ob die deutsche Uebersetzung schon aktuell ist).
STK Neuigkeiten werden im Menue angezeigt
Neues optionales 'Minimales GUI im Rennen'
Vollbild anti-aliasing
Sprache kann jetzt im Spiel jederzeit geaendert werden.
Verbessertes setup fuer split-screen.
Erste Unterstuetzung fuer 'level of details' (feinere oder groebere Modelle abhaengig von der Entfernung)
Strecken-Entwickler koennen spezielle debugging Ausgaben einschalten.
Nach einem Treffer ist ein Kart fuer eine gewisse Zeit unverwundbar
Einige Geraeusche wurden durch Dateien mit einer besseren Lizenz ersetzt.
Neues 'Beagle' Kart von wolterh
Sprachen die von rechts-nach-links geschrieben werden funktionieren jetzt
Unzaehlige Fehler beseitigt



Viel Spass!
Joerg

Eine FreeBSD-Version gibt es zur Zeit noch nicht.
 
Ein neues Beastie-Kart wird entwickelt:

captureblenderhomefunto.png


captureblenderhomefunto.png


rendera.png


Edit: Möchte jemand einen 0.7.1-Port für die Ports-Sammlung bauen?
 
Zuletzt bearbeitet:
Sieht gut aus!

Ich sehe es schon vor mir. Wenn STK über Netz spielbar wird gibt es ein BSDForen.de-Team mit Beasties,Puffies und vielleicht auch Huxleys. ;)
 
SuperTuxKart 0.7.1 wurde veröffentlicht. Ich habe für euch ein statisches FreeBSD-Paket gebaut:

Download

Mit ./run_game.sh könnt ihr STK starten.
 
Zurück
Oben