AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  

 

 RayEngine

Aller en bas 
+7
[TheDarkTiger]
SPLN
zebdal
onilink_
Chulien
morgan
Termite
11 participants
Aller à la page : Précédent  1, 2, 3
AuteurMessage
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 EmptyVen 23 Sep 2011 - 21:24

Yep, et surtout c'est multiplateforme quoi :p

_________________
RayEngine - Page 3 Runningpotato1RayEngine - Page 3 TvF6GED RayEngine - Page 3 MdetltS
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 EmptyVen 23 Sep 2011 - 21:25

la SDL aussi, non ?

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 EmptyVen 23 Sep 2011 - 21:55

Je parlais pour les sockets :p

Mais oui la SDL aussi, même beaucoup plus que la SFML.

_________________
RayEngine - Page 3 Runningpotato1RayEngine - Page 3 TvF6GED RayEngine - Page 3 MdetltS
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 EmptySam 24 Sep 2011 - 17:47

Hop hop, la base du logiciel d'anim est finite gnii

Il me reste à ajouter deux-trois trucs au niveau des clefs (enlever des clefs d'anim / les déplacer dans la timeline), aussi pouvoir resizer la timeline.

Aussi, la gestion du stack d'action est fait (ctrl+Z, ctrl+Y plus tard Very Happy)

Voilà la tronche du machin :

RayEngine - Page 3 Rayedalpha

(les petits carrés noir seront plus tard, les morceaux)

L'axe permet de déplacer les morceaux avec la souris, on peut locker en x ou en y dépendant de quel axe est survolé, comme dans 3ds (ma grande source de pomp-- inspiration)

C'est tout pour l'instant clinoeuil

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 EmptyJeu 14 Juin 2012 - 10:46

Ah ben dis donc, la dernière MAJ de ce topic date Very Happy

Bon, histoire d'annoncer ça, j'ai commencé (Il y a quelques mois) une refonte générale du moteur.

Le lua a été modifié, j'ai pu ajouter les opérateurs suivant :

i+=n (incrémente i de n)
i-=n (décrémente i de n)
i*=n (multiplie i par n)
i/=n (divide i par n)
i%=n (calcule le reste de la division euclidienne i/n, renvoi le résultat sur i)
i..=n (concatène i et n, renvoi sur i)
i ^=n (calcule i puissance n, stocke le résultat dans n)
i >> n (Right-Shift i de n)
i << n (Left-Shift i de n)
i := n (copie n dans i, la différence se fait avec les classes)

Les opérateurs +=,-=,/=,*=,%=,..=,^= proviennent d'un patch que j'ai trouvé, j'ai plus la source je poste dès que je retrouve Very Happy

La grosse avancée, c'est la gestion orienté objet.
Le moteur bosse plus qu'avec un état lua globale, avant j'en avais un par objet Very Happy
Le système marche avec des classes, il y a la gestion des dérivés, par exemple :

Code:

a = class();

function a:init()
 self.x = 17;
end

b = class(a);

function b:init()
 self.y = 20;
end
Ce bout de code créé deux classes, une nommé 'a', le constructeur (init) initialise la variable 'x' de l'instance à 17. La deuxième class 'b' est une classe dérivée de a, son constructeur initialise sa variable y à 20.

Donc si je fais

Code:
c = b();

c est une instance de la classe 'b', et a deux variables : x=17,y=20, youpi. beh

Le soucis avec lua, c'est qu'on ne peut pas copier simplement de tables, ce sont des pointeurs, en gros :

Code:

 d = c;
 d.x = 0;

En écrivant ça, je modifie la variable 'x' de c, tandis que si j'écris d := c, je copie c dans d, chaque valeurs des tables deviennent indépendantes.

Pour les positions/vitesses/tailles, il y a les vecteurs, les opérateurs sont surchargés (addition, soustraction, concaténation,etc). Aussi une petite idée piquée de l'UnrealEngine :

V = vector(10,0);

V = V << 90;

Les opérateurs << et >> permettent de faire des rotations sur ces vecteurs, donc V aura pour valeur (0,-10). Le << correspond à une rotation vers la gauche, et le >> correspond à une rotation vers la droite. (Noté ma flème d'ajouter les opérateurs '<<=' et '>>=' mort2 )

Le moteur gère aussi les aliases, ça permet d'éditer les touches en modifiant un fichier ini (UserDefined.ini):

[Input]
Clef = Touche1|Touche2|..

La 'Clef' est le nom de la variable dans le moteur, les touches correspondent à quelle touche correspond cette clef (Le moteur gère le joystick, donc on peut jouer avec une manette de play)

Par exemple :

Left = Y|Left|Joy1.13

La fonction "CheckAlias(Key.Left)" renverra vrai si la flèche gauche est appuyé, ou la touche 'Y' ou le bouton 13 du joystick n°1.

Le système d'objet marche par package, c'est un ensemble de fichier lua "bytecodés".

On créé un dossier, on y créé nos fichier lua, et on execute le Raymake, qui génère le package tout prêt pour le moteur Smile

Pour ce qui est des éditeurs, j'ai recommencé l'éditeur de niveaux :

http://data.imagup.com/11/1154327995.jpg (j'le met en lien, l'image est assez grande)

Les morceaux afficher en haut sont les "types", c'est ce qui permet de définir les collisions sur la carte, ou des blocs spéciaux (comme des blocs rebondissant, des blocs qui tue, etc)

Ces types peuvent être modifié, leur propriété sont dans un fichier ini. On choisit leur type de collision (pas de collision ou solide, ça veut dire pas passe-bas) et des flags spéciaux, qui peuvent ensuite être retrouvé en Lua.

Le système de mapping est simple, on a une fenêtre "template", qui est une source de laquelle on copie-colle des blocs de cartes. Si un tileset n'a pas de template associé, il est afficher tel quel et on peut créé le template directement.

La liste d'objets est affiché par classe mère/fille, par exemple Rayman est une classe étendue de player, qui est étendue d'event qui est étendue d'objet.
On pourra aussi afficher par package, pour ceux qui préfère. (j'me suis tellement embêté à générer les items en fonctions de la hiérarchie que vous devrez l'utiliser ! horror )

L'éditeur permet de paramétrer certaines variables, le système de propriété par défaut de l'unreal engine (honte à moi, je fais rien qu'à copiter mon voisin beh)
Ça permet de créer des variations d'objet (par exemple des AI qui n'auront que des couleurs qui changent) sans avoir à recréer une nouvelle classe :p

Enfin, histoire de clore le tout, le système online a été revu.
Il y a une gestion de liste des serveurs (stockés sur une base de donnée MySQL), et la gestion de la réplication. La réplication permet de prévenir les autres clients qu'une fonction a été appelée, elle sera alors appelée côté client avec les même paramètres, chouette hein ? beh

Sur ce, j'ai encore pas mal de boulot, faut que je finisse l'éditeur de cartes (placer les objets/gestion des paramétrages, et d'autre trucs moins important) pour m'attaquer au nouveau logiciel d'animation Oups!

A dans 90 ans ! bneige




_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 EmptyJeu 14 Juin 2012 - 12:08

Eh ben, ça promet du lourd tout ça !
J’espère que ça aboutiras x) Bonne chance pour la suite en tout cas :b


_________________
RayEngine - Page 3 Runningpotato1RayEngine - Page 3 TvF6GED RayEngine - Page 3 MdetltS
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 EmptyJeu 14 Juin 2012 - 12:20

C'est la 4ème fois que je le recommence, y'a intérêt à ce que ça aboutisse mort2

Merci oni gnii

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 EmptyJeu 14 Juin 2012 - 12:58

Héhé, t'imagine pas combien de fois j'ai recommencé la onilib et onidev moi =D
Et ça a toujours pas abouti x)

Enfin bon avec de la patience et de la persévérance on arrive a tout :b
Puis bon j'imagine qu'en faisant ces refonte t'as du apprendre masse de trucs Surprised

_________________
RayEngine - Page 3 Runningpotato1RayEngine - Page 3 TvF6GED RayEngine - Page 3 MdetltS
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 EmptyJeu 14 Juin 2012 - 13:20

Oui, rien n'est inatteignable Very Happy

Bien sûr, le soucis c'est que quand on débute on apprend sur le tas, on ajoute des trucs nouveaux et on fini par avoir un code crasseux dans la base, potable au milieu, propre en haut, un peu comme les vaches sweat

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
Contenu sponsorisé





RayEngine - Page 3 Empty
MessageSujet: Re: RayEngine   RayEngine - Page 3 Empty

Revenir en haut Aller en bas
 
RayEngine
Revenir en haut 
Page 3 sur 3Aller à la page : Précédent  1, 2, 3

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Informations :: Projets-
Sauter vers: