Tester für MegaGlest gesucht

Hallo,

einige kennen vielleicht das RTS Spiel Glest.

http://glest.org

Es gibt einen Fork Namens MegaGlest.
MegaGlest Forum

MegaGlest beinhaltet u.a. mehr Teams/Rassen/Fraktionen und verbesserten Netzwerk-Code. Und es wird aktiv weiter entwickelt.

Seit kurzem ist es möglich MegaGlest erfolgreich unter PC-BSD/FreeBSD zu bauen und zu spielen :-)

Da ich bisher wohl der einzige bin der MegaGlest unter PC-BSD zockt, wäre es toll von anderen zu erfahren ob MegaGlest auch auf anderen Maschinen läuft ;-)

Wer also eine Grafikkarte mit OpenGL Hardware Beschleunigung sein eigen nennt, ist herzlichst dazu eingeladen MegaGlest zu testen.

Es gibt ein Tarball mit Binaries für PC-BSD/FreeBSD 8.1 AMD64:
http://sourceforge.net/projects/megaglest/files/in_development/megaglest-3.3.7_beta3_FreeBSD8.1-AMD64.tar.bz2/download

Hier findet man eine Anleitung wie man MegaGlest aus den Sourcen baut:

http://glest.wikia.com/wiki/MG/FreeBSD_compile

Ich freue mich auf Euer Feedback :-)

Falls das Feedback positiv ausfallen sollte, werde ich versuchen MegaGlest 3.3.7 (sobald dies als Stable veröffentlicht wurde) in die FreeBSD Ports mit aufnehmen zu lassen.
 
cool, ich wollte sowieso Mega Glest eimal antesten. Leider gibt es ja noch keinen FreeBSD Port und das normale Glest ist halt ziemlich "mager" .
Ich werd mal versuchen auf FreeBSD 8.1 Megaglest (mit hilfe der Anleitung) zu bauen.
 
Hallo Welkin,

das ist super! Bitte schreibe ein Feedback. Mich interessiert vor allem, wie ich die Anleitung verbessern kann. Sobald 3.3.7 Stabel Released wurde, werde ich die Anleitung so ändern, das auch das Bauen aus dem Tarball berücksichtigt wird.
 
Hallo MOellenmeister.

Ich habs mal mit Megaglest 3.3.6 versucht, und bekome bei ./configure etc..... eine Meldung wegen fehlender LibJpeg
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking whether byte ordering is bigendian... no
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for target host... assume posix
checking for X... libraries /usr/local/lib, headers /usr/local/include
checking glob.h usability... yes
checking glob.h presence... yes
checking for glob.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/filio.h usability... yes
checking sys/filio.h presence... yes
checking for sys/filio.h... yes
checking for socklen_t... yes
checking for sdl-config... /usr/local/bin/sdl-config
checking for SDL - version >= 1.2.5... yes
checking for xerces... found
checking for OpenAL... found
checking for LibJPEG... not found
configure: error: Please install libjpeg
 
Hallo Welkin,

in Version 3.3.6 sind die Patches für FreeBSD noch nicht mit drin. Wenn Du Version 3.3.6 aus dem Source-Tarball bauen möchtest muss Du wie folgt vor gehen:

Folgende diffs musst Du mittels patch einfügen:

im Verzeichnis megaglest-source-3.3.6 von dem Tarball:

patch -p0 < platform_common.cpp.diff

cat platform_common.cpp.diff

Code:
*** shared_lib/sources/platform/common/platform_common.cpp	2010-09-15 13:22:59.000000000 +0200
--- ../../trunk/source/shared_lib/sources/platform/common/platform_common.cpp	2010-09-15 09:51:25.000000000 +0200
***************
*** 29 ****
!  #define S_ISDIR(mode) ((mode) & _S_IFDIR)
--- 29 ----
!  #define S_ISDIR(mode) (((mode) & _S_IFDIR) == _S_IFDIR)
*************** bool isdir(const char *path)
*** 275 ****
!   struct stat stats;
--- 275,282 ----
!   string friendly_path = path;
! 
! #ifdef WIN32
!   replaceAll(friendly_path, "/", "\\");
!   if(EndsWith(friendly_path, "\\") == true) {
! 	  friendly_path.erase(friendly_path.begin() + friendly_path.length() -1);
!   }
! #endif
*************** bool isdir(const char *path)
*** 277 ****
!   bool ret = stat (path, &stats) == 0 && S_ISDIR(stats.st_mode);
--- 284,296 ----
!   struct stat stats;
!   int result = stat(friendly_path.c_str(), &stats);
!   bool ret = (result == 0);
!   if(ret == true) {
! 	  ret = S_ISDIR(stats.st_mode); // #define S_ISDIR(mode) ((mode) & _S_IFDIR)
! 	
! 	  if(ret == false) {
! 		//SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] path [%s] ret = %d\n",__FILE__,__FUNCTION__,__LINE__,friendly_path.c_str(),ret);
! 	  }
!   }
!   else { 
! 	  //SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] path [%s] ret = %d, result = %d, errno = %d\n",__FILE__,__FUNCTION__,__LINE__,friendly_path.c_str(),ret,result,errno);
!   }
*************** int32 getFolderTreeContentsCheckSumRecur
*** 402 ****
--- 422,429 ----
+ #ifdef __APPLE__ //APPLE does'nt have the GLOB_ONLYDIR definition..
+ 	res = glob(mypath.c_str(), 0, 0, &globbuf);
+ //#else 
+ //	res = glob(mypath.c_str(), GLOB_ONLYDIR, 0, &globbuf);
+ #endif
+ #ifdef __FreeBSD__ //FreeBSD does'nt have the GLOB_ONLYDIR definition..
+ 	res = glob(mypath.c_str(), 0, 0, &globbuf);
+ #else 
*************** int32 getFolderTreeContentsCheckSumRecur
*** 403 ****
--- 431 ----
+ #endif
*************** int32 getFolderTreeContentsCheckSumRecur
*** 410 ****
--- 439,453 ----
+ #ifdef __APPLE__ 
+ 		struct stat statStruct;
+ 		// only process if dir..
+ 		int actStat = lstat( globbuf.gl_pathv[i], &statStruct);
+ 		if( S_ISDIR(statStruct.st_mode) == 0)
+ 			continue;
+ #endif
+ 
+ #ifdef __FreeBSD___
+ 		struct stat statStruct;
+ 		// only process if dir..
+ 		int actStat = lstat( globbuf.gl_pathv[i], &statStruct);
+ 		if( S_ISDIR(statStruct.st_mode) == 0)
+ 			continue;
+ #endif
*************** vector<std::pair<string,int32> > getFold
*** 454 ****
--- 498,502 ----
+ 	else {
+ 		SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] scanning folders, NO CACHE found result for cacheKey [%s]\n",__FILE__,__FUNCTION__,cacheKey.c_str());
+ 	}
+ 
+ 	bool topLevelCaller = (recursiveMap == NULL);
*************** vector<std::pair<string,int32> > getFold
*** 459 ****
! 		getFolderTreeContentsCheckSumListRecursively(path, filterFileExt, &checksumFiles);
--- 507 ----
! 		checksumFiles = getFolderTreeContentsCheckSumListRecursively(path, filterFileExt, &checksumFiles);
*************** vector<std::pair<string,int32> > getFold
*** 462 ****
! 	//SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__);
--- 510,514 ----
! 	SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] checksumFiles.size() = %d\n",__FILE__,__FUNCTION__,__LINE__,checksumFiles.size());
! 
! 	if(topLevelCaller == true) {
! 		SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] EXITING TOP LEVEL RECURSION, checksumFiles.size() = %d\n",__FILE__,__FUNCTION__,__LINE__,checksumFiles.size());
! 	}
*************** vector<std::pair<string,int32> > getFold
*** 481 ****
--- 534 ----
+ 	bool topLevelCaller = (recursiveMap == NULL);
*************** vector<std::pair<string,int32> > getFold
*** 529 ****
--- 583,590 ----
+ #ifdef __APPLE__
+ 	res = glob(mypath.c_str(), 0, 0, &globbuf);
+ //#else //APPLE doesn't have the GLOB_ONLYDIR definition..
+ //	res = glob(mypath.c_str(), GLOB_ONLYDIR, 0, &globbuf);
+ #endif
+ #ifdef __FreeBSD__
+ 	res = glob(mypath.c_str(), 0, 0, &globbuf);
+ #else //FreeBSD doesn't have the GLOB_ONLYDIR definition..
*************** vector<std::pair<string,int32> > getFold
*** 530 ****
--- 592 ----
+ #endif
*************** vector<std::pair<string,int32> > getFold
*** 537 ****
--- 600,613 ----
+ #ifdef __APPLE__ 		
+ 		struct stat statStruct;
+ 		// only get if dir..
+ 		int actStat = lstat( globbuf.gl_pathv[ i], &statStruct);
+ 		if( S_ISDIR(statStruct.st_mode) == 0)
+ 			continue;
+ #endif
+ #ifdef __FreeBSD__ 		
+ 		struct stat statStruct;
+ 		// only get if dir..
+ 		int actStat = lstat( globbuf.gl_pathv[ i], &statStruct);
+ 		if( S_ISDIR(statStruct.st_mode) == 0)
+ 			continue;
+ #endif
*************** vector<std::pair<string,int32> > getFold
*** 546 ****
! 	SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] scanning [%s] cacheKey [%s]\n",__FILE__,__FUNCTION__,path.c_str(),cacheKey.c_str());
--- 622,626 ----
! 	SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s] scanning [%s] cacheKey [%s] checksumFiles.size() = %d\n",__FILE__,__FUNCTION__,path.c_str(),cacheKey.c_str(),checksumFiles.size());
! 
! 	if(topLevelCaller == true) {
! 		SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] EXITING TOP LEVEL RECURSION, checksumFiles.size() = %d\n",__FILE__,__FUNCTION__,__LINE__,checksumFiles.size());
! 	}
*************** void createDirectoryPaths(string Path)
*** 598 ****
!     	_mkdir(DirName);
--- 678 ----
!     	int result = _mkdir(DirName);
*************** void createDirectoryPaths(string Path)
*** 600 ****
!         mkdir(DirName, S_IRWXU | S_IRWXO | S_IRWXG);
--- 680 ----
!         int result = mkdir(DirName, S_IRWXU | S_IRWXO | S_IRWXG);
*************** void createDirectoryPaths(string Path)
*** 603 ****
--- 684 ----
+ 		 SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d] DirName [%s] result = %d, errno = %d\n",__FILE__,__FUNCTION__,__LINE__,DirName,result,errno);
*************** void restoreVideoMode(bool exitingApp) {
*** 771 ****
!     SDL_Quit();
--- 852 ----
!     //SDL_Quit();
*************** void showCursor(bool b) {
*** 787,788 ****
! 	int x,y;
! 	if(b) {
--- 868,869 ----
! 	//int x,y;
! 	//if(b) {
*************** void showCursor(bool b) {
*** 790 ****
! 	}
--- 871 ----
! 	//}
*************** void showCursor(bool b) {
*** 797 ****
! 	SDL_ShowCursor(b ? SDL_ENABLE : SDL_DISABLE);
--- 878 ----
! 	SDL_ShowCursor(b == true ? SDL_ENABLE : SDL_DISABLE);
*************** void showCursor(bool b) {
*** 799 ****
! 	if(b) {
--- 880 ----
! 	//if(b == true) {
*************** void showCursor(bool b) {
*** 802 ****
! 	}
--- 883 ----
! 	//}

cat check_lua.m4_FreeBSD.diff

Code:
--- mk/autoconf/check_lua.m4    2010-09-21 01:18:47.000000000 +0200
+++ mk/autoconf/check_lua.m4_FreeBSD    2010-09-15 14:18:04.000000000 +0200
@@ -62,6 +62,26 @@
     else
         AC_MSG_RESULT([no])
     fi
+#  another test for finding lua on FreeBSD
+    AC_MSG_CHECKING([for lua.hpp in ${p}/include/lua51])
+    if test -f ${p}/include/lua51/lua.hpp; then
+        AC_MSG_RESULT([yes])
+        save_CFLAGS=$CFLAGS
+        save_LDFLAGS=$LDFLAGS
+        CFLAGS="$CFLAGS" 
+        LDFLAGS="-L${p}/lib/lua51 $LDFLAGS $lib_m"
+        AC_CHECK_LIB(lua, luaL_newstate,
+            [
+            LUA_AVAILABLE=yes
+            LUA_LIBS="-L${p}/lib/lua51 -llua"
+            LUA_CFLAGS="-I${p}/include/lua51"
+            ])
+        CFLAGS=$save_CFLAGS
+        LDFLAGS=$save_LDFLAGS
+        break
+    else
+        AC_MSG_RESULT([no])
+    fi
     AC_MSG_CHECKING([for lua.hpp in ${p}/include])
     if test -f ${p}/include/lua.hpp; then
         AC_MSG_RESULT([yes])

cat ogg.m4_FreeBSD.diff

Code:
--- mk/autoconf/ogg.m4  2010-09-21 01:18:46.000000000 +0200
+++ mk/autoconf/ogg.m4_FreeBSD  2010-09-15 14:22:55.000000000 +0200
@@ -41,6 +41,7 @@
     ac_save_CFLAGS="$CFLAGS"
     ac_save_LIBS="$LIBS"
     CFLAGS="$CFLAGS $OGG_CFLAGS"
+    CPPFLAGS="$CFLAGS $OGG_CFLAGS"
     LIBS="$LIBS $OGG_LIBS"
 dnl
 dnl Now check if the installed Ogg is sufficiently new.

cat vorbis.m4_FreeBSD.diff

Code:
--- mk/autoconf/vorbis.m4       2010-09-21 01:18:45.000000000 +0200
+++ mk/autoconf/vorbis.m4_FreeBSD       2010-09-15 14:19:41.000000000 +0200
@@ -46,6 +46,7 @@
     ac_save_CFLAGS="$CFLAGS"
     ac_save_LIBS="$LIBS"
     CFLAGS="$CFLAGS $VORBIS_CFLAGS $OGG_CFLAGS"
+    CPPFLAGS="$CFLAGS $VORBIS_CFLAGS $OGG_CFLAGS"
     LIBS="$LIBS $VORBIS_LIBS $VORBISENC_LIBS $OGG_LIBS"
 dnl
 dnl Now check if the installed Vorbis is sufficiently new.

Danach musst Du autogen.sh ausführen und erst dann configure mit all den nötigen Optione (siehe link zur Anleitung oben beim ersten Post).

Der Fehler mit libJPEG trat auf, weil ein leerzeichen beim configure Aufruf in der Anleitung zu wenig war. Das habe ich korrigiert.

BTW: ich empfehle allerdings Version 3.3.7_beta3 aus dem svn repo zu bauen.
1. da sind die FreeBSD patches mit drin
2. einige Bugfixes die in 3.3.6 nicht mit drin sind.
 
Also, ich hab folgendes gemacht:

1. Dateien gepacht

2. ./autogen.sh ausgeführt

3. ./configure etc........... ausgeführt

4. Jam (bauen)

Bei Jam bekome ich folgende EndMeldung:
C++ ./build/i386-unknown-freebsd8.1/optimize/glest_map_editor/renderer.o
...skipped glest_editor for lack of <T!glest_map_editor!>main.o...
MkDir1 ./build/i386-unknown-freebsd8.1/optimize/g3d_viewer
C++ ./build/i386-unknown-freebsd8.1/optimize/g3d_viewer/main.o
C++ ./build/i386-unknown-freebsd8.1/optimize/g3d_viewer/renderer.o
MkDir1 ./build/i386-unknown-freebsd8.1/optimize/g3d_viewer/../glest_game/graphics
C++ ./build/i386-unknown-freebsd8.1/optimize/g3d_viewer/../glest_game/graphics/unit_particle_type.o
C++ ./build/i386-unknown-freebsd8.1/optimize/g3d_viewer/../glest_game/graphics/particle_type.o
LinkApplication glest_g3dviewer
MkDir1 ./build/i386-unknown-freebsd8.1/optimize/configurator
C++ ./build/i386-unknown-freebsd8.1/optimize/configurator/main.o
C++ ./build/i386-unknown-freebsd8.1/optimize/configurator/configuration.o
LinkApplication glest_configurator
...failed updating 1 target(s)...
...skipped 1 target(s)...
...updated 250 target(s)...

5. Danach hab ich mich an die Anleitung gehalten.Verzeichnis megaglest/mk/linux/mydata erstellt.

6. Links gesetzt.

ln -s ../scenarios
ln -s ../data
ln -s ../maps
ln -s ../tilesets
ln -s ../techs
ln -s ../tutorials

6. ./glest.bin ausgeführt, welches sich aber in im Hauptverzeichnis megaglest-source-3.3.6 befindet.

Dann bekomm ich folgende Meldung:
[root@ /usr/home/welkin/megaglest-source-3.3.6]# ./glest.bin
v3.3.6 built: Oct 2 2010 17:39:47 Compiler GNUC: 40201, STREFLOP enabled.
Startup settings are: debugSystem [1], debugNetwork [1], debugPerformance [0], debugWorldSynch [0], debugUnitCommands[0], debugPathFinder[0]
Opening logfile [debug.log] type = 0, currentDebugLog.fileStreamOwner = 1
******************************************************
#2 An error ocurred and Glest will close.
Error msg = [Can't open propertyMap file: glestkeys.ini]

Please report this bug to contact_game@glest.org
******************************************************
START Closing logfiles
END Closing logfiles

Anscheinend wurd glestkeys.ini nicht gefunden. Werd mal die Platte danach durchsuchen
 
Das Phänomen hatte ich selbst (glaube ich zumindest) auch noch nicht. Es sieht aber so aus, als ob der MapEditor nicht gebaut werden kann. Hast Du das Paket:
wxgtk2-unicode-2.8.10_4
installiert?

Ausserdem kann es sein, das für die Tarball Source Distribution Version 3.3.6 mydata nicht unterhalb von mk/linux gemacht werden muss, sondern direkt in dem von tar entpacktem Verzeichnis.

Im Moment sitze ich nicht nicht an meiner PC-BSD Kiste. Bei Gelegenheit werde ich das mal gegenprüfen.
 
Das Phänomen hatte ich selbst (glaube ich zumindest) auch noch nicht. Es sieht aber so aus, als ob der MapEditor nicht gebaut werden kann. Hast Du das Paket:
wxgtk2-unicode-2.8.10_4

Ist installiert.

Ausserdem kann es sein, das für die Tarball Source Distribution Version 3.3.6 mydata nicht unterhalb von mk/linux gemacht werden muss, sondern direkt in dem von tar entpacktem Verzeichnis.

Hab mal das Verzeichnis mydata in ~/megaglest-source-3.3.6 angelegt und Links gesetzt, bekomme aber immer die gleiche Meldung wegen der glestkeys.ini.

Jam scheint immer ein Traget zu überspringen. Könnte es wohl daran liegen?
 
Hallo Welkin,

poste bitte wenn möglich den gesamten Output von den configure und jam Aufrufen (inklusive aller configure Optionen die Du angibst).
 
Ach so, mir ist noch etwas eingefallen, was Du versuchen könntest, Welkin:

Du könntest Dir mal folgendes Archiv mit den Spieldaten runterladen und in das gleiche Verzeichnis entpacken wie das source Tarball: http://sourceforge.net/projects/mega....6.7z/download
und dann nochmal versuchen mit jam zu bauen.

Hab ich gemacht. Und jetzt funktioniert es endlich:)


Bei mir scheint es noch einige Probleme mit der Aenderung der Bildschirmauflösung und auch ein paar leichte Darstellungs-Bugs zu geben.
Sonst hat sich das Spiel zienlich gemacht, seit ich es das letzte Mal probiert habe.
 
Cool, Gratulation :)

Wenn Du Lust hast online zu zocken, dann besuche mal die irc channels:
#glest
und
#glest-de
im freenode Netz.

Dort hänge ich auch öfters mal rum. Btw. in den nächsten Tagen wird mit aller Wahrscheinlichkeit Version 3.3.7 released.
 
Alles klar. Muellermeister. Ich werd dich mal im IRC kontaktieren. In letzter Zeit bin ich viel auf dem Wesnoth Server.
 
MegaGlest 3.3.7 ist frei gegeben worden:

Im MG Forum findet man die links zu den Downloads:

http://glest.org/glest_board/index.php?topic=6010

Wenn man für FreeBSD AMD64 Version 3.3.6 oder eine 3.3.7_Beta Version hat, kann man das Tarball mit den FreeBSD AMD64 Binaries runterladen und in das Vorhandene MegaGlest Verzeichnis entpacken. Zusätzlich muss man dann noch das "Upgrade Data package from 3.3.6 or higher" saugen und in das Vorhandene MegaGlest Verzeichnis entpacken.
 
kleines Update:

für MegaGlest 3.4.0 (derzeit aktuelle Stabile Version) gibt es einen PR für die Aufnahme in den Ports Tree: http://www.freebsd.org/cgi/query-pr.cgi?pr=155111

Wer MegaGlest also mal "the FreeBSD way" installieren will, muss nur die beiden shar Files runterladen und nach /usr/ports/games packen. Dort mit root rechten diese files mittels

sh <dateiname>

ausführen. Es werden die die Verzeichnisse megaglest und megaglest-data angelegt. Im nächsten Schritt wechselt man nach /usr/ports/megaglest und installiert den Port wie gewohnt.

Feedback ist herzlichst willkommen.
 
Zurück
Oben