Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Fri Mar 29, 2024 1:15 am

All times are UTC




Post new topic Reply to topic  [ 28 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Thu Nov 06, 2003 7:38 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Je viens d'intégrer à l'instant un truc que j'ai codé cet aprem: la possibilité de modifier des valeurs du jeu (par exemple, la position de la caméra, des objets, de la vitesse max, de la suspet' ou n'importe quoi d'autre) n'important quand pendant que le programme est lancé, et ca depuis la console !
L'utilisation est méga simple, (je trouve):
Code:
float camhauteur;
[...]
qq part dans main():
raydium_register_variable(&camhauteur,RAYDIUM_REGISTER_FLOAT,"camh");

Et l'utilisateur à juste à taper "camh 29" dans la console, et la variable est modifiée.
Notez que cela marche aussi depuis les scripts (tout récents aussi dans Raydium), et il est donc, par exemple, tout à fait facile d'écrire par "autoexec.txt" qui aurait pour rôle d'initialiser toutes les variables du jeu et qui serait éxectué au démarrage du programme !
Je sais pas si je me suis bien expliqué, mais ca nous ouvre beaucoup de portes :)

Je vais essayer d'écrire la même chose pour des fonctions (mais j'ai un problème: je suis incapable de savoir comment faire un appel à un pointeur sur fonction avec des arguments dynamiques ! ... et même pas si le C est capable de le faire ;))


Last edited by Xfennec on Sun Nov 09, 2003 1:06 am, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Sat Nov 08, 2003 2:12 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
A priori, le langage C n'offre pas de moyen évident pour gérer des appels "dynamiques" de fonctions (avec une pile d'arguments en parametre). Donc pour me venger, je chercher à intégrer un langage directement dans la console, et là je tente avec... PHP !
Je cherche de la doc sur la SAPI de PHP qui semble permettre ce genre de choses.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Nov 08, 2003 4:20 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Je suis arrivé à qq chose de déjà sympa: j'arrive à executer des scripts PHP depuis un programme en C. Il est possible de créer des variable "dans PHP" depuis le programme en C, puis de les relire ensuite !
Il faut maintenant que j'intègre ça à Raydium, et si ca marche, ca va nous offrir des possiblités assez sympas me semble-t'il (il faudra aussi être capable d'exporter des fonctions C dans PHP).


Top
 Profile  
 
 Post subject:
PostPosted: Sun Nov 09, 2003 1:06 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
C'est intégré, et ça marche à la perfection ! ;)
Il est donc possible de programmer en PHP dans la console de Raydium, de faire appel à des scripts PHP depuis la console, ou depuis le code.
L'échange entre Raydium (et les programmes utilisants Raydium) est pour l'instant limité à des variables int, float et des chaines de caractères.. mais il est déjà possible de faire des trucs très sympas ! :)
La suite, c'est: intercepter les erreurs de PHP (passque les erreurs au format HTML dans la console, c'est moyen) et surtout essayer de trouver un moyen d'appeller des fonctions du programme Raydium depuis PHP !
A suivre ;)


Top
 Profile  
 
 Post subject:
PostPosted: Sun Nov 09, 2003 10:13 am 
Offline

Joined: Sun Mar 16, 2003 2:30 pm
Posts: 114
Location: reuzé
outch :)
je capte pas encore très bien comment ça peut marcher, mais ça a l'air très intéressant :)

_________________
Pentium IV 3c / 1Go / Gf-FX / WinXpSP2
AMD64_3000+ / 1Go / Gf 2mx /Mandriva amd64


Top
 Profile  
 
 Post subject:
PostPosted: Sun Nov 09, 2003 1:27 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 4:02 pm
Posts: 93
Location: interface siège-clavier
Ca permettrait de faire un frontend en PHP pour Raydium ?

_________________
Soyez heureux.
XP2200+ | K7S5A | 512 Mo DDR 2100 | ATI radeon 7000 | Mandrake 9.2 kernel 2.4.22-21mdk


Top
 Profile  
 
 Post subject:
PostPosted: Sun Nov 09, 2003 4:53 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
A terme, si on arrive à ajouter le support des fonctions (j'y travaille), on pourra tout à fait écrire 99% d'une appli Raydium en PHP, par exemple, ou utiliser des trucs du style GTK, MySQL ou que sais-je encore qui est supporté par PHP (et donc par Raydium du coup).
Pour l'heure, tout fonctionne, sauf que le code PHP ne peux faire appel à une fonction qui est écrite en C dans l'appli Raydium.. par contre, les deux "mondes" peuvent s'échanger des variables: Dans mon prog Raydium, j'indique que tel et tel variables doivent être publiées dans PHP, et automatiquement, tout script PHP (commande tappée dans la console, script PHP lancé depuis le programme lui même [raydium_php_execute("xxx.php")], ...) peux lire et modifier ces variables comme d'habitude ($truc=29; ...).


Top
 Profile  
 
 Post subject:
PostPosted: Sun Nov 09, 2003 10:59 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Un premier support pour les fonctions existe.. mais est quasi inutilisable pour l'instant puisqu'il faut encore programmer pour chaque fonction que l'on souhaite exporter vers PHP une autre fonction qui sert d'interface, et c'est pas beau à voir.. donc je cherche une solution élégante à ça, mais je tenais à écrire que ça avance ;)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 10, 2003 7:40 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
YES !
J'avoue que bordel, ça n'a pas été si simple ! ... mais le support des fonctions depuis PHP est maintenant présent dans Raydium !
Cela signifie que nous avons un support déjà plutot complet de PHP dans Raydium lui même, et qu'il est possible de programmer une application Raydium en grande partie depuis un script PHP !
Je vais mettre à jour la doc pour expliquer ces changements importants (la version de Raydium devrait bouger sous peu), mais j'insiste: l'utilisation est simple ! ;)
Voilà un exemple bête d'un script tout à fait faisable:
Code:
<?
if(music_loops>5)
{
// les musiques sont stockées sous forme: "http://site.domaine/musique.ogg"
$r=mysql_query("SELECT filename from music ORDER BY RANDOM() LIMIT 1"); // la requete est pas forcément valide, c un exemple ;)
$music=fetch_machin_trucsql($r);
copy(".",$music[0]); // ou qq chose comme ca.. en gros on download la musique
$filename=extract_filename($music[0]);
raydium_sound_load_music($filename);
echo "^cPlaying $filename";
}
?>

Je tappe ca comme ca, sans vérifier, mais le principe est tout à fait valable et réalisable: On va chercher une musique au pif sur un serveur pendant le jeu (bon ok, ca va bloquer le jeu pendant le téléchargement, m'enfin c un exemple :))
A vous de commencer à réfléchir aux différentes utilisations possibles de tout ca, et elles sont énormes, je vous le dit ;)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Nov 11, 2003 7:54 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
WVS est maintenant à jour, avec le support PHP
Pour compiler cette nouvelle version, il faut ajouter "$(php-config --includes) -lphp_common" aux scripts de compilation (et installer php-devel, comme décrit dans la doc).
C'est là que nous sommes faces à un gros problême... impossible d'utiliser PHP sous Windows avec DevCPP ! .. il faudrait trouver une doc ou une version modifiée de PHP destinée à ca. Si qq1 à entendu parler de ca ;) ...


Top
 Profile  
 
 Post subject:
PostPosted: Tue Nov 11, 2003 8:40 pm 
Offline

Joined: Sun Mar 16, 2003 10:27 am
Posts: 404
Ne serait-il pas possible de récupérer l'executable php de easyphp ? Je dis peut-être une bétise et je m'en excuse si tel est le cas :?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Nov 11, 2003 8:54 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Raydium n'utilise pas php.exe ou équivalent, mais la libphp en elle même.. et donc il doit utiliser les en-têtes de PHP pour ca (qui définissent les différents types, structures, fonctions, ...) .. et ces entêtes ne passent que sous Visual C++... voilà le prb ;)


Top
 Profile  
 
 Post subject:
PostPosted: Sun Nov 16, 2003 7:08 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
C'est tout récent, mais je commence à avoir qq chose qui marche ici !
Y'a encore bcp de boulot pour rendre le tout propre et correct, mais ca semble marcher plutot pas mal pour l'instant.
Le seul probleme qui ressort de tout ca, c'est qu'il devient de plus en plus dur de maintenir la version windows de Raydium (dans le cas de PHP, il a fallu modifier une partie des en-têtes de PHP, et en recompiler une autre partie avec VC++...), faute d'organisation et de personnes pour tester et synchroniser cette version.
Je poste tout ca des que c'est propre ;)
Note: il faut donc maintenant une DLL (php4ts.dll) pour lancer Raydium sous Windows.


Top
 Profile  
 
 Post subject:
PostPosted: Mon Nov 17, 2003 7:19 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Version "propre" (autant que ca puisse l'être en tk) uploadée sur WVS.
Il faudrait tester la version Linux avec d'autres versions de PHP que la mienne ! (4.2.3-4.1mdk)
Il faudrait aussi essayer de tester ce qu'il est possible de faire avec PHP, et l'impact de tout ca (l'exec d'un script PHP à chaque frame) sur les FPS.
Je vais mettre à jour les scripts de compil' pour Linux.
J'aimerais avoir des retours sur cette partie de Raydium, qui est importante, et encore TRES peu testée !


Top
 Profile  
 
 Post subject:
PostPosted: Tue Nov 18, 2003 7:13 am 
Offline

Joined: Sun Mar 16, 2003 10:27 am
Posts: 404
Perso j'ai une version 4.3.3-3.

Quote:
l'impact de tout ca (l'exec d'un script PHP à chaque frame) sur les FPS.


As-tu un script test que l'on pourrait lancer sur nos machine pour pouvoir faire des tests et les comparer ??


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 28 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 33 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group