Autor Thema: SuperTuxKart 0.6.2  (Gelesen 65357 mal)

xeno74

  • Gast
SuperTuxKart 0.6.2
« am: 06. Oktober 2009, 11:34:02 »




Hallo Forum,

hat es jemand schon geschafft, SuperTuxKart unter OpenSolaris zu kompilieren?

Ich habe es versucht, und bin leider gescheitert :(

Was habe ich gemacht:



Leider bricht der Kompiliervorgang mit folgenden Fehler ab:

-DHAVE_GL_GLUT_H=1 -DHAVE_GLUT=1 -DBT_NO_PROFILE= -DHAS_POLL=1 -DHAS_FCNTL=1 -DHAS_MSGHDR_FLAGS=1 -DHAS_SOCKLEN_T=1 -DENABLE_NLS=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -I. -I.  -I./include/ -I/opt/csw/include  -Wall -Wstrict-prototypes -Wmissing-prototypes -DNDEBUG -O2 -MT unix.o -MD -MP -MF ".deps/unix.Tpo" -c -o unix.o unix.c; \
    then mv -f ".deps/unix.Tpo" ".deps/unix.Po"; else rm -f ".deps/unix.Tpo"; exit 1; fi
unix.c: In function `enet_socket_receive':
unix.c:333: error: structure has no member named `msg_flags'
gmake[1]: *** [unix.o] Error 1
gmake[1]: Leaving directory `/export/home/xeno/Desktop/supertuxkart-0.6.2/src/enet'
gmake: *** [all-recursive] Error 1

Danach habe ich ein wenig nach msg_flags gegoogelt. Scheinbar gibt es diesen Member nicht unter Solaris :(

Was kann ich noch ausprobieren?

STK-Webseite:

http://supertuxkart.sourceforge.net

Kompilierungs-FAQ:

http://supertuxkart.sourceforge.net/FAQ#Technical_questions.2C_compiling_etc

Viele Grüße,

Xeno

sonnenblen.de - Das unabhängige Sun User Forum

SuperTuxKart 0.6.2
« am: 06. Oktober 2009, 11:34:02 »

xeno74

  • Gast
Re: SuperTuxKart 0.6.2
« Antwort #1 am: 07. Oktober 2009, 22:07:44 »
Geschafft :)

Screenshot von SuperTuxKart 0.6.2 unter OpenSolaris 2009.06:



Anleitung zum Kompilieren:

01. pkg-get install freeglut

02. pkg-get install libsdl

03. pkg-get install plib

04. pkg-get install openal

05. pkg-get install libvorbis

06. pkg-get install libsdl

07. export LDFLAGS="-L/opt/csw/lib"

08. export CXXFLAGS="-I/opt/csw/include"

09. In der Datei configure folgende Zeile:

ac_cv_member_struct_msghdr_msg_flags=yes
in
ac_cv_member_struct_msghdr_msg_flags=no
ändern.

10. ./configure aufrufen

11. gmake

12. In das src-Verzeichnis wechseln und dann folgendermaßen Linken:

g++  -I/opt/csw/include -Wall -DNDEBUG -O2  -L/opt/csw/lib -o supertuxkart  main.o actionmap.o material.o network_manager.o network_kart.o message.o race_info_message.o connect_message.o kart_update_message.o kart_control_message.o race_state.o race_result_message.o music_information.o music_ogg.o sfx_manager.o sfx_openal.o sound_manager.o random_generator.o ssg_help.o string_utils.o translation.o vec3.o material_manager.o grand_prix_manager.o camera.o nitro.o moving_texture.o particle_system.o scene.o shadow.o skid_marks.o smoke.o attachment.o attachment_manager.o flyable.o powerup.o powerup_manager.o item.o item_manager.o projectile_manager.o bubblegumitem.o plunger.o rubber_band.o cake.o bowling.o kart.o kart_model.o kart_properties.o kart_properties_manager.o moveable.o player_kart.o isect.o explosion.o user_config.o grand_prix_data.o stk_config.o highscores.o highscore_manager.o file_manager.o loader.o race_manager.o callback_manager.o main_loop.o sdldrv.o history.o challenge.o challenge_data.o unlock_manager.o lisp.o lexer.o parser.o writer.o widget_manager.o widget.o menu_manager.o base_gui.o race_gui.o race_results_gui.o grand_prix_ending.o race_menu.o num_players.o track_sel.o player_controls.o config_display.o display_res_confirm.o config_sound.o config_controls.o options.o game_mode.o race_options.o char_sel.o start_race_feedback.o network_gui.o main_menu.o help_page_one.o help_page_two.o help_page_three.o credits_menu.o grand_prix_select.o challenges_menu.o feature_unlocked.o font.o follow_the_leader.o standard_race.o clock.o world.o linear_world.o three_strikes_battle.o btKart.o btUprightConstraint.o moving_physics.o physics.o triangle_mesh.o default_robot.o track_info.o terrain_info.o track.o track_manager.o replay_buffers.o replay_base.o replay_player.o replay_recorder.o libstatic_ssg.a -lplibjs -lplibsl -lplibssg -lplibpu -lplibfnt -lplibsg -lplibul -lplibssgaux -Lbullet/Demos/OpenGL -lbulletopenglsupport -Lbullet/src -lbulletdynamics -lbulletcollision -lbulletmath -Lenet -lenet -lglut  -lGL  -lSDL  -lopenal  -lvorbisfile  /opt/csw/lib/libintl.so -R/opt/csw/lib /opt/csw/lib/libGLU.so /lib/libnsl.so.1 /lib/libsocket.so.1
13. Dann SuperTuxKart mit ./supertuxkart starten.

Viel Spass :)

« Letzte Änderung: 07. Oktober 2009, 22:36:57 von xeno74 »

Offline Ebbi

  • Sobl Administrator
  • Sobl Guru
  • *****
  • Beiträge: 1315
  • Minusgeek
Re: SuperTuxKart 0.6.2
« Antwort #2 am: 07. Oktober 2009, 23:02:24 »
Gratuliere!
Dann mal zügig weitergemacht und ein Paket gebaut. ;D

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: SuperTuxKart 0.6.2
« Antwort #3 am: 08. Oktober 2009, 05:48:32 »
... /opt/csw/lib/libGLU.so /lib/libnsl.so.1 /lib/libsocket.so.1

Nur so als Info fuers naechste mal, das kann man einfach abkuerzen:

-lGLU -lnsl -lsocket

Mfg. Erisch

xeno74

  • Gast
Re: SuperTuxKart 0.6.2
« Antwort #4 am: 08. Oktober 2009, 12:42:37 »


Hallo Forum :)

Ich möchte gerne das erste SuperTuxKart-AppBundle für Solaris veröffentlichen. Dafür brauche ich eure Hilfe.

Bitte testet das folgende Test-AppBundle (Download):

supertuxkart-0.6.2-solaris-i386.tar.gz

Das AppBundle enthält alle benötigten Bibliotheken :)

Ihr könnt STK mit ./run_game.sh starten. Bitte postet mir eure Fehlermeldungen (Fehlende Libs etc.), damit ich dass Paket verbessern kann.

Viel Spass beim Testen,

Xeno

Offline Ebbi

  • Sobl Administrator
  • Sobl Guru
  • *****
  • Beiträge: 1315
  • Minusgeek
Re: SuperTuxKart 0.6.2
« Antwort #5 am: 10. Oktober 2009, 11:09:29 »
Sehr geil, das funktioniert tatsächlich out-of-the-box. ;D

Ist zwar auf dem alten Amilo unspielbar langsam, aber egal. Gute Arbeit!

Offline erisch

  • Sobl Moderator
  • Sobl Guru
  • *****
  • Beiträge: 758
  • TurboSPAAAAAG
    • erisch.homeunix.net
Re: SuperTuxKart 0.6.2
« Antwort #6 am: 10. Oktober 2009, 19:50:31 »
Und wenn du jetzt noch der OpenSolaris Community was Gutes tun willst, stell das Ding bei Source Juicer rein: http://jucr.opensolaris.org

Dann kann das spaeter jeder vom contrib repository auf pkg.opensolaris.org installieren. Dafuer musst du m.M.n allerdings die Blastwave Abhaengigkeiten loskriegen. Das meiste von deinen Abhaengigkeiten sollte eh in den Sun repos vorraetig sein (sdl, vorbis, ...).

Falls es mit den Abhaengigkeiten Schwierigkeiten geben sollte helfe ich gern weiter.

Mfg. Erisch

EDIT:
tuxkart scheint ja schon drin zu sein, aber das ist wohl was anderes.

xeno74

  • Gast
Re: SuperTuxKart 0.6.2
« Antwort #7 am: 10. Oktober 2009, 20:20:25 »
Und wenn du jetzt noch der OpenSolaris Community was Gutes tun willst, stell das Ding bei Source Juicer rein: http://jucr.opensolaris.org

Dann kann das spaeter jeder vom contrib repository auf pkg.opensolaris.org installieren. Dafuer musst du m.M.n allerdings die Blastwave Abhaengigkeiten loskriegen. Das meiste von deinen Abhaengigkeiten sollte eh in den Sun repos vorraetig sein (sdl, vorbis, ...).

Falls es mit den Abhaengigkeiten Schwierigkeiten geben sollte helfe ich gern weiter.

Mfg. Erisch


Wir sind dabei das STK-Paket für Solaris zu optimieren. Dazu habe ich noch ein paar Fragen:

Was bewirkt die Definition CPPFLAGS=-D_XPG4_2 beim configure-Aufruf (CPPFLAGS=-D_XPG4_2, ./configure)?

D_XPG4_2 ist etwas Solaris-Spezifisches - oder?

Könnt Ihr was mit msg_flags anfangen?

Wäre es besser STK mit dem GCC 4.3.2 anstatt mit dem GCC 3.4.3 zu übersetzen?

EDIT:
tuxkart scheint ja schon drin zu sein, aber das ist wohl was anderes.

TuxKart ist der Vorgänger von SuperTuxKart. SuperTuxKart ist damals als Fork aus TuxKart entstanden.

Viele Grüße und Danke für das Testen

Xeno
« Letzte Änderung: 10. Oktober 2009, 20:24:05 von xeno74 »

xeno74

  • Gast
Re: SuperTuxKart 0.6.2
« Antwort #8 am: 11. Oktober 2009, 12:16:25 »
So, ich habe auch Tests durchgeführt :)

1.Test:

System: Pentium 4 3 GHz, 2 GB DDR1 RAM (Dual Channel), GeForce 6200 mit 512 MB AGP 8X unter OpenSolaris 2009.06 im Live-CD-Modus

Ergebnis: Es läuft mit 3D-Beschleunigung sehr flüssig. Nur der Sound stottert manchmal. Das liegt daran, dass mein Rechner zu langsam ist :(. Aber ansonsten ist es gut spielbar über die Live-CD.

2.Test:

System: MacBook 2 GHz Intel Core 2 Duo, 2 GB RAM, GMA X3100 144 MB VRAM mit OpenSolaris 2009.06 im Live-CD-Modus.

Ergebnis: SuperTuxKart läuft mit 3D-Beschleunigung. Manchmal hakt es, was an dem nicht so schnellen GMA X3100-Grafikchip liegt. Ich freue mich aber sehr, dass OpenSolaris überhaupt mit 3D-Beschleunigung und Sound ohne Probleme auf meinem MacBook läuft. Die Version 2009.06 ist echt gut gelungen :) Oh, ich komme vom Thema ab. SuperTuxKart läuft also auch auf einem MacBook mit Intel-Grafik.

Achja, wir haben für alle Solaris-Fans auch einen passenden Fahrer:

Duke das Java-Maskottchen:



Download -> http://www.dateiupload.com/files/L7Yymjdvgu.zip

Einfach entpacken und in das Verzeichnis data/karts vom SuperTuxKart-Paket kopieren ;)

Dann können wir endgültig gegen Tux fahren  ;D

Hier nochmal der Downloadlink zu unserem Paket -> supertuxkart-0.6.2-solaris-i386.tar.gz

Viele Grüße

Xeno

Offline Ten Little Indyans

  • Sobl Bachelor
  • ***
  • Beiträge: 218
Re: SuperTuxKart 0.6.2
« Antwort #9 am: 11. Oktober 2009, 13:31:31 »
Was bewirkt die Definition CPPFLAGS=-D_XPG4_2 beim configure-Aufruf (CPPFLAGS=-D_XPG4_2, ./configure)?

D_XPG4_2 ist etwas Solaris-Spezifisches - oder?

Mit -Dirgendwas wird ein Makro definiert, analog zu #define irgendwas im Quelltext. In diesem konkreten Fall wird also _XPG4_2 definiert (das ist eigentlich C-Basiswissen).

XPG4 ist Teil der X/Open Portability Guide. Grob gesagt ist es eine API-Spezifikation ähnlich POSIX (und in grossen Teilen damit identisch). XPG4v2 geht noch ein bisschen weiter und ist die Grundlage der Single Unix Specification (SUS).

Achtung: Das Makro _XPG4_2 ist alles andere als Solaris-spezifisch. Um sich XPG4v2-konform zu verhalten erwartet Solaris eher -D_XOPEN_SOURCE -D_XOPEN_SOURCE_EXTENDED=1. Siehe XPG4(5) bzw. standards(5) im Manual.

Zitat von: XPG4(5)
The application must define _XOPEN_SOURCE and set _XOPEN_SOURCE_EXTENDED=1. If _XOPEN_SOURCE is defined with a value, the value must
be less than 500.

Die Definition von _XPG4_2 wird wohl innerhalb des Quelltextes benutzt um zu entscheiden ob er z.B. SUS-Funktionen aufrufen kann oder auf Alternativen zurückgreifen soll.


Zitat
Könnt Ihr was mit msg_flags anfangen?

Das ist bei POSIX ein zusätzliches Feld im Messageheader eines Sockets. Bei 4.2 BSD gab es das noch nicht. Solaris bietet beide Varianten - libsocket ist BSD-kompatibel und libxnet ist POSIX- bzw. X/Open-kompatibel. Siehe socket.h(3HEAD) im Manual.

Zitat von: libsocket(3LIB)
Functions in this library provide the socket internetworking interface, primarily used with the TCP/IP protocol suite.
http://docs.sun.com/app/docs/doc/816-5173/libsocket-3lib?a=view

Zitat von: libxnet(3LIB)
Functions in this library provide networking interfaces which comply with the X/Open CAE Specification, Networking Services, Issue 4.
http://docs.sun.com/app/docs/doc/816-5173/libxnet-3lib?a=view

Zitat von: intro(3)
If portability to other XPGV4v2 (see standards(5)) systems is a requirement, the application must use the libxnet interfaces. If portability is not required, the sockets interfaces in libsocket and libnsl are recommended over those in libxnet.
http://docs.sun.com/app/docs/doc/816-5173/6mbb8adq5?a=view
« Letzte Änderung: 11. Oktober 2009, 13:37:14 von Ten Little Indyans »

sonnenblen.de - Das unabhängige Sun User Forum

Re: SuperTuxKart 0.6.2
« Antwort #9 am: 11. Oktober 2009, 13:31:31 »

xeno74

  • Gast
Re: SuperTuxKart 0.6.2
« Antwort #10 am: 11. Oktober 2009, 16:11:57 »
Vielen Dank für die ausführliche Erklärung :) Ich wusste nur, dass die msg_flags zusätzliche Informationen über Fehler (wenn vorhanden) zurückgeben. Das ein Makro definiert wurde, wusste ich auch. Ich dachte zuerst, dass dieses Makro Solaris-Spezifisch ist weil es unter den anderen Ports nie ein Thema war. Und, hast du auch schon STK gezockt? Nutze den Sonntag-Nachmittag und schreibe mal, ob es bei dir funktioniert ;)

Danke nochmal

Xeno
« Letzte Änderung: 11. Oktober 2009, 16:13:50 von xeno74 »

xeno74

  • Gast
Re: SuperTuxKart 0.6.2
« Antwort #11 am: 12. Oktober 2009, 11:08:09 »
SuperTuxKart 0.6.2 für Solaris wurde heute offiziell vom STK Development Team veröffentlicht. Der Download der Solaris-Version liegt jetzt im STK-Bereich auf dem SourceForge-Server:

http://supertuxkart.sourceforge.net/Downloads

Achja, wir haben ein Handbuch auf Deutsch :)

Download: Handbuch_SuperTuxKart.pdf

Testet weiterhin unser Paket, damit wir wissen ob es bei euch allen funktioniert.

Viel Spass

Xeno

xeno74

  • Gast
Re: SuperTuxKart 0.6.2
« Antwort #12 am: 15. Oktober 2009, 12:43:04 »


Addon-Pack

Hi,

ich möchte noch auf unser Addon-Pack hinweisen. Dieses enthält weitere Strecken + Karts.

Downloads:

karts.7z

tracks.7z

Installation:

1. Addon-Packs entpacken

2. Wechselt in das SuperTuxKart-Verzeichnis

3 Dann in das Verzeichnis data wechseln

4. Kopiert alle Verzeichnisse aus dem entpackten karts-Verzeichnis in das Verzeichnis karts der SuperTuxKart-Installation.

5. Kopiert dann alle Verzeichnisse aus dem entpackten tracks-Verzeichnis in das Verzeichnis tracks der SuperTuxKart-Installation.

6. :) Glückwunsch, dass Addon-Pack ist jetzt installiert :)

7. Startet dann SuperTuxKart mit ./run_game.sh

8. Bei der Kart-Auswahl gibt es jetzt einen Menüpunkt addon. Wechselt dort hinein und wählt dann einen neuen Kart-Fahrer aus.

9. Auch bei der folgenden Streckenauswahl gibt es einen Menüpunkt addon. Wechselt dort hinein und wählt dann eine neue Strecke aus.

Und jetzt kann ich euch nur viel Spass wünschen mit dem neuen Addon-Pack ;)

Bitte testet weiterhin unseren neuen Port "SuperTuxKart" und schreibt uns, ob bei euch das Addon-Pack funktioniert.

Viele Grüße,

Xeno


xeno74

  • Gast
Re: SuperTuxKart 0.6.2
« Antwort #13 am: 22. Oktober 2009, 05:44:13 »


Hier noch einige wichtige Links zum Thema SuperTuxKart:

1. Deutsches SuperTuxKart-Forum -> ***Klick***

2. Englisches SuperTuxKart-Forum -> ***Klick***

3. SuperTuxKart-Downloads -> ***Klick***

4. Englischer SuperTuxKart-Blog -> ***Klick***

Weiterhin viel Spass beim Zocken :)

« Letzte Änderung: 22. Oktober 2009, 05:49:05 von xeno74 »

Offline Ten Little Indyans

  • Sobl Bachelor
  • ***
  • Beiträge: 218
Re: SuperTuxKart 0.6.2
« Antwort #14 am: 25. Oktober 2009, 13:12:02 »
Und, hast du auch schon STK gezockt? Nutze den Sonntag-Nachmittag und schreibe mal, ob es bei dir funktioniert ;)

Ich besitze "leider"(?) weder OpenSolaris noch einen vernünftigen x86-Rechner, aber ich habe mir mal den Spass gemacht es auf meiner Ultra 60 mit Solaris 10 3/05 zu übersetzen.

SDL und Ogg Vorbis waren bereits vorhanden weil ich schon mal mit Quake 2 experimentiert hatte. GLUT konnte ich über einen Link bei Sun herunterladen, nur für PLIB und OpenAL habe ich nichts fertiges gefunden. PLIB liess sich problemlos übersetzen, aber OpenAL ist ja ziemlich zickig (und braucht auch noch CMake was auch nicht auf Anhieb wollte).  >:(

Auch ich musste manuell linken um libnsl und libsocket einzubinden. Da sollte mal am Makefile bzw. configure nachgebessert werden um diese Abhängigkeiten korrekt abzubilden.


Fazit: Eine U60 taugt nicht zum zocken. Nach einem anfänglichen Stakato habe ich erstmal die Musik abgeschaltet, sobald das erste Spiel lief dann auch die Soundeffekte. Das packen die CPUs (2x450MHz) einfach nicht.

Durchaus interessant war der "Schwanzvergleich" der verschiedenen Grafikkarten. Primär nutze ich eine Creator3D mit 1600x1200, da krochen die Karts beim ersten Lauf mit ca. 1 Frame pro Sekunde um die Strecke. Dann habe ich STK mal auf dem zweiten Bildschirm gestartet (Elite3D, 1280x1024). Dort lief es schon deutlich besser - könnten etwa 10-15 fps gewesen sein. Angenehm überrascht war ich schliesslich von der Expert3D (auch mit 1280x1024) denn da war die Animation tatsächlich flüssig.

Gibt es denn eine Möglichkeit sich von STK die tatsächlich erzielte Framerate ausgeben zu lassen? Nachdem ich die Desktop-Auflösung der Creator3D auf 1280x1024 runtergedreht habe lief es dort auch besser (etwa auf Elite3D Niveau). Im Spiel selbst liess sich die Auflösung nicht ändern - laut Option-Menü stand sie fest bei 1600x1200 bzw. 1280x1024 obwohl das eigentliche Fenster deutlich kleiner war (etwa 30-40% des Desktops). Die beiden Buttons zum hoch- bzw. runterschalten zeigten keinerlei Wirkung.

Für meinen Mac mini G4 habe ich mir auch mal Euer fertiges MacOS X Paket runtergeladen - das läuft so ganz ordentlich und macht dann auch deutlich mehr Spass.  ;)