[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gulliver] J'ai compile et teste pour vous : TORCS


From David MENTRE <david dot mentre at wanadoo dot fr>
Subject [gulliver] J'ai compile et teste pour vous : TORCS
Date 25 May 2003 18:19:39 +0200

[ Pour Eric, Gulliver est le LIG de Rennes. ]

Bonsoir aux gulliveriens,

Aujourd'hui, je me suis amusé à compiler et à jouer avec TORCS
(http://torcs.sourceforge.net/).

Je l'ai compilé sur les configurations suivantes :

 - Celeron 500 MHz et carte ATI Rage 128
 
 - PowerPC G3 800 MHz et carte ATI Radeon M7 LW (équivalent ATI 9700 je
   crois).

J'ai utilisé la toute dernier version en béta, la 1.3.0 :
  http://torcs.sourceforge.net/tmp/

Sur mon Celeron, c'est pas utilisable, par contre ça marche très bien
sur l'iBook.

Toutes les dépendances de TORCS sont dans la debian woody, sauf
plib-1.6.0 dispo dans la testing. Mais de toute façon, j'ai du patcher
la plib-1.6.0 avec le patch ci-joint, sinon le jeu se bloquait sur mon
iBook.

Mais avec tout ça, ça marche nickel. C'est un jeu de course de voiture,
où on joue contre l'ordinateur. On peut choisir sa voiture (206,
mercedes, mitsubishi, ...), son circuit (course F1, rally, ...). On peut
même programmer des autres voitures (en C++), mais ça j'ai pas encore
regardé.

Les scènes de jeu sont pas mal : les maisons du bord de route, les
arbres, etc. Les marques de frein restent sur la route (au 3e tour,
c'est noir, surtout sur le gazon :).

On peut avoir un mode avec 2 joueurs (ou plus) sur la même machine. Sur
ma machine, ça rame un peu mais j'ai pas essayé de baisser la résolution
(sur mon iBook, 1024x768, 24bits, full-screen).


Bon, évidemment, il y a quelques bugs (la barrière qui masque la voiture
quand on vient de se prendre la sus-dite barrière) mais à la marge et
rien de bloquant.


En bref, un très bon candidat pour remplacer Tuxracer dans nos
prochaines install-party.


Et un grand merci à Eric (en copie de cet email), l'auteur de TORCS,
pour m'avoir aidé à résoudre le bug de la PLIB.


Bonne semaine à tous,
d.


---- Liste gulliver ----
Se désinscrire, mailto:gulliver-unsubscribe at listes dot gulliver dot eu dot org
GULLIVER,       http://gulliver.eu.org/
 Index: sl.h
 ===================================================================
 RCS file: /cvsroot/plib/plib/src/sl/sl.h,v
 retrieving revision 1.22
 diff -u -p -r1.22 sl.h
 --- sl.h	4 Jan 2003 02:55:55 -0000	1.22
 +++ sl.h	16 May 2003 09:04:21 -0000
 @@ -645,6 +645,7 @@ class slScheduler : public slDSP
    float safety_margin ;
  
    int mixer_buffer_size, mixer_gain ;
 +  float seconds_per_buffer;
  
    Uchar *mixer_buffer  ;
    Uchar *mixer_inputs [ SL_MAX_MIXERINPUTS + 1 ] ;
 Index: slScheduler.cxx
 ===================================================================
 RCS file: /cvsroot/plib/plib/src/sl/slScheduler.cxx,v
 retrieving revision 1.9
 diff -u -p -r1.9 slScheduler.cxx
 --- slScheduler.cxx	2 Sep 2002 06:05:47 -0000	1.9
 +++ slScheduler.cxx	16 May 2003 09:04:21 -0000
 @@ -84,6 +84,10 @@ void slScheduler::initBuffers ()
    setMaxConcurrent ( 0 );
  
    mixer_buffer_size = getDriverBufferSize () ;
 +  int div = 1;
 +  if ( getStereo() )     div *= 2 ;
 +  if ( getBps() == 16 )  div *= 2 ;
 +  seconds_per_buffer = (float)mixer_buffer_size / ( div * getRate() ) ;
  
    mixer_buffer = new Uchar [ mixer_buffer_size ] ;
    memset ( mixer_buffer, 0x80, mixer_buffer_size ) ;
 @@ -132,7 +136,7 @@ void slScheduler::realUpdate ( int dump_
    
    int i ;
  
 -  while ( secondsUsed() <= safety_margin )
 +  while ( secondsUsed() <= safety_margin && secondsRemaining() >= seconds_per_buffer )
    {
      slPlayer *psp [ SL_MAX_MIXERINPUTS ] ;
      int       pri [ SL_MAX_MIXERINPUTS ] ;
 @@ -174,7 +178,9 @@ void slScheduler::realUpdate ( int dump_
             ( mypri > pri[lowest] )
           )
        { /* Not enough room; get rid of someone */
 -        player[lowest] -> preempt ( mixer_buffer_size ) ;
 +        if ( player[lowest] != NULL )
 +          player[lowest] -> preempt ( mixer_buffer_size ) ;
 +
  	psp[lowest] = player[i] ;
  	pri[lowest] = mypri ;
          int j;
 
-- 
David Mentré <david dot mentre at wanadoo dot fr> -- http://gulliver.eu.org/