Raydium est un moteur de jeu: il se présente comme un ensemble de fonctions simples qui permettent de rendre l'écriture d'un jeu 3D plus souple et rapide.
Ces fonctions couvrent donc des domaines comme les entrées du joueur (clavier, souris, joystick, joypad, retour de force), l'affichage (objets 3D, OSD (On Screen Display)), le temps (un jeu doit se jouer à la même vitesse sur toutes les machines, quelles que soient les performances de ces machines), le son, etc... (il y'a beaucoup d'autres choses à gérer, en réalité ;)
Initié en début 2001, Raydium se destinait à devenir une petite librairie 3D, dont le développement ne serait utile que pour se faire les dents sur
OpenGL.
Mais l'évolution de Raydium s'est poursuivie, touchant à des domaines de plus en plus vastes (moteur de temps, scripting
PHP, moteur physique, ...), jusqu'a devenir le "moteur de jeu" qu'il est sur le point de devenir.
En guise de démonstration, voilà quelques fonctionnalités techniques de Raydium:
- Portabilité (ANSI C) : Linux / Win32 (et probablement d'autres)
- Rendu OpenGL (80 000 vertices par frame à un framerate correct), support du brouillard, des lumières dynamiques, des transparences, des skyboxes, du MultiTexturing, du MipMapping, ...
- API totalement simplifiée: apprentissage très court (ex: raydium_object_draw_name("objet.tri"), raydium_sound_load_music("musique.ogg"), ...)
- Intégration d'ODE (Open Dynamics Engine) au coeur même de Raydium: l'accès à un moteur physique est aussi simple que le reste de l'API de Raydium ! (cf RayODE)
- Console intégrée: possibilité d'avoir en permanence pendant l'execution des informations liées à Raydium ou à l'application, et de lancer des commandes depuis cette console.
- Support de PHP: interface PHP/Raydium qui permet un accès total à Raydium et à l'application depuis des scripts PHP. Possibilité d'écrire la quasi totalité de l'application avec PHP. (cf RayPHP et RegAPI)
- API réseau intégrée: Des jeux multijoueurs en toute simplicité ;)
- Intégration d'OpenAL: possibilité de sonoriser un jeu (sons, musique (streaming OGG), positionnement des sources dans un espace 3D) très rapidemement.
- Scripts de compilation simplifiés, support des compilation statiques (déploiement des applications aisé).
- Solutions d'import/export vers d'autres formats 3D: 3DStudio, Blender et DirectX (voir ImportExportTri).
- Support des joysticks / volants à retour de force (Linux seul, pour l'instant).
- Gestion de repositories de données: Les applications Raydium peuvent aller chercher les données "manquantes" (ou à mettre à jour) sur des sites internet. Raydium gère aussi l'upload de ces données vers les repositories. (cf R3S)
- Support des LightMaps calculées par radiositié avec FsRadRay (exemple : http://ftp.cqfd-corp.org/radiosity_tex.png)
- GLSL Shaders
Raydium est un logiciel
libre, sous license
GPL.
Raydium est donc une des bases du projet
MeMak, mais un certain nombre de tests complexes ont déjà été créés avec ce moteur, ainsi que quelques jeux complets :
ManiaDrive,
NewSkyDiver et Isaac.
Dans le monde libre, il existe bien sur d'autres moteurs 3D/de jeu, dont certaines grosses pointures (
Ogre,
Crystal Space, ...). Raydium ne cherche pas à atteindre le degré de complexité que l'on retrouve dans ces moteurs, mais bien au contraire de permettre un développement rapide et simple. Un bon exemple de cette simplicité est
NewSkyDiver, qui tient sur moins de 750 lignes de code.
Les tutoriels (
RaydiumTutoriels) démontrent bien cette simplicité.
Raydium possède son propre site web :
http://raydium.org