Raydium 3D Game Engine

Official forum for everything about Raydium, ManiaDrive, MeMak, ...
It is currently Tue Apr 16, 2024 4:18 pm

All times are UTC




Post new topic Reply to topic  [ 16 posts ]  Go to page 1, 2  Next
Author Message
 Post subject: First Step !
PostPosted: Sun Mar 16, 2003 2:44 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Je me lance donc dans l'écriture des premieres lignes de JAMM pour developper la premiere grosse brique du truc: le module de création d'objets, en particulier pour l'instant ce lui qui va nous permettre de construire des trucs à 4 roues.. plus d'infos à suivre.

Nous allons vite devoir séparer le code du jeu et le code des regles du jeu, ce qui veux dire que la partie "logique de jeu" va passer par un autre langage, intégré lui même à Raydium/JAMM: Langage dédié, JavaScript, Python, PHP, ... je n'y ai pas encore pensé en détail, mais un maximum de choses va devoir être écrit avec ce langage, de facon à rendre le plus modifiable possible.. le premier exemple qui me vient en tête, c'est le Quake C, qui a rendu la série des Quake/Half Life si modifiables et si populaires... C'est à partir de ce moment là que le developpement (du coté de la prog) va s'ouvrir de manière plus accessible...

a+ ;)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 17, 2003 8:48 am 
Offline

Joined: Sun Mar 16, 2003 10:27 am
Posts: 404
en vu du module de construction dans lequel tu te lances. Tu vas peut-être avoir besoin d'objet genre roue, chassis, caisse ?? Dis le nous, et les gens qui sont dans le graphismes seront pret à démarrer je pense :wink: .


A ++


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 17, 2003 9:18 am 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
J'ai en effet eu un échange avec Blue Prawn qui à créé une voiture en bois du plus bel effet, mais nous n'avons pas encore de moyen fiable d'échanger des fichiers entre Blender et Raydium.
Pour l'instant je vais donc me contenter de créer des objets tout minables avec le truc de modélisation interne de Raydium, comme ça lorsque nous aurrons bien avançé sur le module de construction, on mettra des vrai trucs faits par des vrais graphistes avec de vrai logiciels, ça donnera tout de suite mieux ;)
Je vais tenter de donner assez rapidement aux graphistes qq infos pour les interconnexions des éléments de constructions (forme de la base d'un siege, d'un chassis, etc...)

Autre chose, il va falloir prévoir un format de données interne pour stocker les regles de constructions des objets.. j'ai qq idées mais si qq1 souhaite se lancer là dedans avec moi, j'écoute ! :)
Voiçi le schema de base:
Chaque pièce est identifiée de manière unique par un numéro, certaines étants des pieces de bases: chassis (véhicules qui roulent), coque (bateaux), ... d'autres sont nécessaires pour que les pièces de bases fonctionnent: roues, moteur, rotor (pour un hélico), ... et une derniere catégorie rassemblant les options (lumières, armes, rétros, ...)
Qu'en pensez vous ? :)


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 17, 2003 11:07 am 
Offline

Joined: Sun Mar 16, 2003 10:27 am
Posts: 404
Je veux bien t'aider là-dedans d'ailleur je pense que ton shéma de base est bien. Mais qu'est ce que tu entends par 'format de donnée interneé ??


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 17, 2003 2:29 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
"Mais qu'est ce que tu entends par 'format de donnée interne ??"

Des fichiers dans lesquels stocker tout ça, simplement :)
Mon prb a l'heure actuelle, c'est de gérer les dépendances, style: un chassis à besoin de 4 roues, et 1 roue c'est 1 pneu + 1 jante.. il faut bien réfléchir à ce format et à la manière de le faire, sinon ça va être une galère pas possible après (quand on aurra 300 objets dans la base :) )


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 17, 2003 3:36 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:52 am
Posts: 29
C'est ce que je me disais, je vais me pencher sur la partie théorique (construction de l'arbre de dépendance). Je vais faire des descriptions d'objet pour voir comment partir (et avoir un arbre le plus exhaustif possible).

_________________
--
manproc


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 17, 2003 7:30 pm 
Offline

Joined: Sun Mar 16, 2003 1:17 pm
Posts: 29
Il y a un probleme auquel il faudra faire fasse, c'est comment placé un objet dans le référentiel.
J'entends par là comment savoir ou est le coin superieur droit du pare choc, dans le fichier du pare-choc...
C'est toujours pas clair ?
Hum, par exemple il serait interessant qu'en exportant les fichiers de notre modeleur préféré on puisse ajouter un object factice localisé à l'endroit ou doivent s'emboiter telles et telles choses, pour que raydium le localise facilement... Ou alors il faudrait que l'on puisse définir ca apres importation sous raydium...

En fait ca doit pas etre clair du tout tout ca

_________________
P4 2,4Ghz - 512 DDR - Geforce 4MX - Win XP Home (en attendant que je retrouve le pti @#& qui m'a taxé mon Corp)
Et Raydium tourne nickel


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 17, 2003 7:31 pm 
Offline

Joined: Sun Mar 16, 2003 1:17 pm
Posts: 29
Comment Raydium saura ou mettre le pneu ??!!

Voila

_________________
P4 2,4Ghz - 512 DDR - Geforce 4MX - Win XP Home (en attendant que je retrouve le pti @#& qui m'a taxé mon Corp)
Et Raydium tourne nickel


Top
 Profile  
 
 Post subject:
PostPosted: Mon Mar 17, 2003 7:51 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Dans les informations disponibles dans les fichiers de données, on aurra toute cette description de l'objet, dont je parle plus haut (dépendances, nom, catégorie, ...) mais aussi les informations "3D" (le modele, en clair :) ) et bien sur des informations sur les connexions possibles.
Voici un exemple de ce que je cherche à faire en ce moment:

Quote:
// fichier de définition du chassis de base

named Chassis de base en bois 4 roues et 4 emplacements
categ chassis
meshe chassis24.tri
physics vehicule_4
weight 200
needs categ wheel at (0,10, 10) resizable (0.5, 2)
needs categ wheel at (10,10, 10) resizable (0.5, 2)
needs categ wheel at (10,20, 10) resizable (1, 2.5)
needs categ wheel at (0,20, 10) resizable (1, 2.5)
needs categ engine at (10, 5, 0)
allows categ headlight at (0,0,0)
allows categ headlight at (10,0,0)
allows categ echapement at ....


Truc du genre... c'est un tout premier jet, j'attend que vous analysiez ça pour voir quoi changer, ou ce qui cloche.. passque ça doit pas manquer ;)


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 18, 2003 12:39 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:52 am
Posts: 29
Je cross poste sur deux forums, voilà ce que j'ai commencé a rédiger hier, c'est plus a titre d'exemple, pour voir les besoin (pour les définitions d'objets) que pour etre utilisé.

Exemple : Batte de Base Ball
Catégorie : Arme
Sous-Objet : Batte de Base Ball en bois
Sous-Sous-Objet : Batte de Base Ball en bois classique
Poid : 2kg
Dégat : 10
Necessite : une menuiserie
Sous-Sous-Objet : Batte de Base Ball en bois pointue
Poid : 2kg
Dégat : +5
Necessite : (Batte de Base Ball en bois OU Batte de Base Ball en bois avec un clou) ET (Couteau)
Sous-Sous-Objet : Batte de Base Ball en bois avec un clou
Poid : 2kg
Dégat : +15
Necessite : (Batte de Base Ball en bois OU Batte de Base Ball en bois pointue) ET ((Marteau) ET (Clou)) OU (Atelier)
Sous-Objet : Batte de Base Ball en Aluminium
Sous-Sous-Objet : Batte de Base Ball en Aluminium classique
Poid : 500g
Dégat : 10
Necessite : une forge
Sous-Sous-Objet : Batte de Base Ball en Aluminium avec des pointes
Poid : 500g
Dégat : +20
Necessite : (une forge) ET (Batte de Base Ball en Aluminium)

Objet : Couteau
Catégorie : Arme
Sous-Objet : Couteau X
Dégat : Y
Poid : Leger
Necessite : une forge
(Pour les couteaux, ca se décline énormément)

_________________
--
manproc


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 18, 2003 1:01 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 4:02 pm
Posts: 93
Location: interface siège-clavier
Quote:
Il y a un probleme auquel il faudra faire fasse, c'est comment placé un objet dans le référentiel.
J'entends par là comment savoir ou est le coin superieur droit du pare choc, dans le fichier du pare-choc...


En mettant des dummy objects (non affichés, non calculés) servant de point d'ancrage de référence, genre :
dummy_roue_av_g_axe lié avec dummy_chassis_roue_av_g

Le soucis est de les positionner de façon à ce qu'un resize (du chassis par exemple, si la base est la même pour tous les 4 roues) ne laisse pas le dummy en vrac, il devra suivre un point donné du bord du chassis par exemple en relatif

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


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 18, 2003 2:02 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
maaaaaaanproc,
Le prb de cette méthode, c'est qu'elle est formelle. Autrement dit, le jour ou tu ajoutes une nouvelle batte en bois (Rose), tu doit modifier tt le langage:

Batte avec un clou:
Necessite : (Batte de Base Ball en bois OU Batte de Base Ball en bois pointue OU Batte de Base Ball de Barbie) ET ((Marteau) ET (Clou)) OU (Atelier)

Il faudrait pouvoir dire que "tt les battes en bois sont capable de recevoir un clou si on dispose d'un marteau et du clou en question ou un atelier"..

En reprenant le """"langage"""" que j'utilise plus haut, ça peut donner:

// batte en bois
named Batte de base ball en bois
categ batte
meshe batte.tri
physics objet_frappe
weight 3
degat 10
allows bout_pointu at (..., ..., ...) with couteau
allows clou at (..., ..., ...) with marteau
allows clou at (..., ..., ...) with marteau

Reste a créer un "include", du genre:

// batte de baseball en alu
include batte_bois
named Batte de base balle en alu
meshe battealu.tri
weight +2
degat +5


Un des prb, c'est que les bouts pointus et les clous vont au même endroit que sur la batte en bois..
Mais ce permet de ne pas se répéter et d'avoir à se taper 300 fichiers juste passque tu veux rajouter un clou possible aux battes.. par contre, y'a surement de gros incovénnients que g pas vu...
le mot clef "with" précise ce qui est nécessaire pour rajouter qq chose a l'objet mais qui ne rentre pas dans sa contruction ! (un marteau est utilisé pour construire la batte à clou, mais ca ne le fait pas disparaitre de l'inventaire du joueur [contrairement au clou, qui est sur la batte]) ...
Faudrait être capable d'avoir certaines opérations booléennes, comme le précise maaaaaaanproc, du genre:

allows (clou or clef_plate) at (..., ..., ...) with marteau
ou plutot
allows clou at EMPLACEMENT1 with marteau
allows clef_plate at EMPLACEMENT1 with ficelle
... pour reprendre le principe de Jimbo .
Comme ca, qq1 peut piquer la clef_plate sur la batte pour monter la roue de sa jeep :)

PS: y'a une couille ici ... la ficelle, elle est déclarée en with alors qu'elle rentre bien dans la construction de l'objet ... donc l'utilisateur à de la ficelle a l'infini ... faudrait trouver une bidouille pour avoir un ET pour les allows: allows clef_plate AND ficelle at EMPLACEMENT1 .... Rhhhaaaaa, ça devient chaud à voir dans la globalité ;)

Qu'en pensez vous ?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 18, 2003 6:06 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:52 am
Posts: 29
Dans mon idée, quand tu veux rajouter une batte de base ball en bois avec autre chose dessus, tu te placais dans la catégorie 'Batte de base ball en bois' (elle meme dans la catégorie Batte de Base ball) et tu précisais 'necessite machin ET machin OU machin'.
Un arbre :)
Donc facilité d'ajout d'objet (ajout d'une feuille ou d'un noeud).
Héritage de certaines caractéristiques aussi (genre toutes les batte de base ball en sont des 'Armes').
Mais je pense que les deux solutions se rejoigne :)
(Btw, Dans mon esprit, on pouvait avoir une batte pointu avec un clou dessus, le clou se met en travers, pas au bout :) (tu as jamais eu de planche a clou pour te battre ? :)

_________________
--
manproc


Top
 Profile  
 
 Post subject:
PostPosted: Tue Mar 18, 2003 6:59 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Ok, je suis bien d'accord avec cette représentation, mais sous cette forme, tu vas devoir dupliquer des branches (première forme normale non respectée ;) ) , par exemple lorsque tu vas vouloir rajouter un autre type de batte ... vu le niveau de complexité de ce que l'on cherche à faire, je pense qu'il faut compléter cette représentation par un langage.
Dans mon esprit, une batte avec un clou, c'est comme une batte pointue: un ajout à une batte de "base", complémentaires (si on veut un batte pointue ET clouée) :)
En gros, tu fait un arbre des différents éléments posssibles, alors que j'essaye (je dit bien "j'essaye" :) ) de faire un arbre des différences entres les différents objets.

Je pense qu'il serait intéressant de tester un certain nombre de possibilités et de comparer le résultats avec les deux solutions


Top
 Profile  
 
 Post subject:
PostPosted: Wed Mar 19, 2003 9:54 pm 
Offline
User avatar

Joined: Sun Mar 16, 2003 2:53 am
Posts: 2591
Location: gnniiiii (Scrat)
Personne pour essayer de définir qq objets avec ces langages ou proposer d'autres trucs ? :)


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

All times are UTC


Who is online

Users browsing this forum: No registered users and 17 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