Page 3 sur 4

Publié : dim. 25/févr./2007 18:16
par Dr. Dri
@Typhoon
Avec la méthode TRES BIEN PENSEE de Cpl.Bator tu peux TOUT A FAIT faire ce que tu cherches à faire!!! C'est même l'approche la plus intelligente proposée jusqu'ici (j'ai pris le temps de mater le code =).

En fait en prenant ma méthode (enfin celle que tu as adaptée de la mienne) à la sienne, je pense (sûr à plus de 50%) qu'avec ta façon d'organiser tes maps et sa façon de calculer la lumière il suffirait d'appliquer cette méthode non seulement aux tiles mais en plus aux objets présents quelle que soit leur taille ou leur inclinaison. Il faut savoir (même si je parle en théorie je suis sûr de moi) que plus tes sprites seront grands moins ce sera précis.

Maintenant pour parler de la limitation des Sprite3D et notamment la limitation des tailles en 128*128 etc, il faut savoir que tu peux mettre plusieurs éléments si tu veux dans un Sprite3D, après tu ne sélectionne que le rectangle qui t'intéresse avec ClipSprite3D que tu pourras trouver sur le forum.

Dri

Publié : dim. 25/févr./2007 18:25
par Thyphoon
Dr. Dri a écrit :@Typhoon
Avec la méthode TRES BIEN PENSEE de Cpl.Bator tu peux TOUT A FAIT faire ce que tu cherches à faire!!! C'est même l'approche la plus intelligente proposée jusqu'ici (j'ai pris le temps de mater le code =).
C'est ce qui me semble aussi ! :)
Dr. Dri a écrit : En fait en prenant ma méthode (enfin celle que tu as adaptée de la mienne) à la sienne, je pense (sûr à plus de 50%) qu'avec ta façon d'organiser tes maps et sa façon de calculer la lumière il suffirait d'appliquer cette méthode non seulement aux tiles mais en plus aux objets présents quelle que soit leur taille ou leur inclinaison. Il faut savoir (même si je parle en théorie je suis sûr de moi) que plus tes sprites seront grands moins ce sera précis.
Tout mes sprites fonts 32x32 . Je viens de jouer une bonne parite de l'apres midi avec le code de comtois et Cpl.Bator mais je n'arrive a rien je suis vraiment perdu dedans... pourtant il est claire mais ça fait appel a des trucs que je maitrise pas... je rame dur
Dr. Dri a écrit : Maintenant pour parler de la limitation des Sprite3D et notamment la limitation des tailles en 128*128 etc, il faut savoir que tu peux mettre plusieurs éléments si tu veux dans un Sprite3D, après tu ne sélectionne que le rectangle qui t'intéresse avec ClipSprite3D que tu pourras trouver sur le forum.
je comprends bien la théorie...je continue a regarder mais j'avoue que ça me fait peur lolllllllllll

En tout cas j'ai oublié de te remercier car ce que j'ai fais jusqu'a maintenant c'est grace a toi quand même :P

Publié : dim. 25/févr./2007 20:05
par comtois
Je viens de jouer une bonne parite de l'apres midi avec le code de comtois et Cpl.Bator mais je n'arrive a rien je suis vraiment perdu dedans...
Te casse pas la tête avec les quadtree, c'est pas nécessaire dans ton cas.

Un quadtree est intéressant quand il y a des centaines voire des milliers d'objets à tester. Dans ton cas tu connais la longueur maxi de ton rayon , c'est quelques tiles ? disons 5 tiles , soit tu fais simple et tu testes -/+ 5 tiles par rapport à la position du perso, ce qui fait 10 tile en x et 10 en y soit 100 tiles en tout ou alors tu réduis la recherche en tenant compte de la direction du rayon pour éliminer des possibilités. Si ton rayon est vers le nord, inutile de tester les tiles qui se trouvent au sud du perso. donc tu pourrais te limiter à 5*5 =25 maxi à tester pour trouver des collisions avec un rayon.
Si tu as besoin d'algo pour calculer l'intersection d'un rayon avec un carré, un cercle , tu peux me demander. J'avais déjà mis un exemple avec le cercle dans ton ancien post sur l'éclairage.

Publié : dim. 25/févr./2007 20:11
par Thyphoon
comtois a écrit :[Te casse pas la tête avec les quadtree, c'est pas nécessaire dans ton cas.

Un quadtree est intéressant quand il y a des centaines voire des milliers d'objets à tester. Dans ton cas tu connais la longueur maxi de ton rayon , c'est quelques tiles ? disons 5 tiles , soit tu fais simple et tu testes -/+ 5 tiles par rapport à la position du perso, ce qui fait 10 tile en x et 10 en y soit 100 tiles en tout ou alors tu réduis la recherche en tenant compte de la direction du rayon pour éliminer des possibilités. Si ton rayon est vers le nord, inutile de tester les tiles qui se trouvent au sud du perso. donc tu pourrais te limiter à 5*5 =25 maxi à tester pour trouver des collisions avec un rayon.
Si tu as besoin d'algo pour calculer l'intersection d'un rayon avec un carré, un cercle , tu peux me demander. J'avais déjà mis un exemple avec le cercle dans ton ancien post sur l'éclairage.
Merci beaucoup pour ces precieux conseilles ... Je rame toujours mais j'ai compris 2 ou 3 trucs quand même ...

Publié : lun. 26/févr./2007 15:35
par Thyphoon
Bon apres un week-end a bosser sur ce moteur d'éclairage, j'ai rien réussi a faire de bien.
Donc histoire de me changer un peu les idées j'ai continué le reste
voilà a quoi ça ressemble maintenant
File:1->Aliens.zip
Image

Publié : jeu. 01/mars/2007 14:34
par Dr. Dri
Pour commencer ca ne fonctionne pas sur mon PC le plus pourri, ensuite j'ai testé au boulot et ca rend plutôt bien mais est-ce qu'on peut faire autre chose que tourner le champ de vision ?

Dri

Publié : jeu. 01/mars/2007 14:43
par Thyphoon
Dr. Dri a écrit :Pour commencer ca ne fonctionne pas sur mon PC le plus pourri, ensuite j'ai testé au boulot et ca rend plutôt bien mais est-ce qu'on peut faire autre chose que tourner le champ de vision ?

Dri
Oui ça demande un pc et une carte graphique correcte :(
File:1->Aliens.zip
Image
Une nouvelle version a été mis en ligne ce matin

Avec les fleches du clavier tu peux te diriger
[TAB] change de personnage
[F1] FPS
[F2] Mode Normal/Sans éclairage/Masque Eclairage
[F3] test 2 mode de calcule pour mon moteur d'affichage

clic gauche tire (essaye sur un autre personnage) ou sur un mur , clic droit sur un autre personnage donne quelques ordres...

Voilà dit moi ce que tu en penses !

Publié : jeu. 01/mars/2007 16:31
par Dr. Dri
Thyphoon a écrit :Oui ça demande un pc et une carte graphique correcte :(
Le problème c'est que sur ce PC j'ai fait tourner sans souci tous mes tests de début de moteur 3D et plein d'autres trucs de Sprite3D... Donc je comprend pas pourquoi ca ne passe pas.

Sinon les controles ne fonctionnent pas (j'avais déjà testé toutes ces touches) donc si t'as une version debug à proposer je t'aiderai pour le diagnostique.

Dri

Publié : jeu. 01/mars/2007 16:37
par Thyphoon
Dr. Dri a écrit :
Thyphoon a écrit :Oui ça demande un pc et une carte graphique correcte :(
Le problème c'est que sur ce PC j'ai fait tourner sans souci tous mes tests de début de moteur 3D et plein d'autres trucs de Sprite3D... Donc je comprend pas pourquoi ca ne passe pas.

Sinon les controles ne fonctionnent pas (j'avais déjà testé toutes ces touches) donc si t'as une version debug à proposer je t'aiderai pour le diagnostique.

Dri
J'ai pas les sources avec moi j'ai oublié ma clef usb chez moi. Mais demain je poste avec les sources.
C'est gentil !

Publié : jeu. 01/mars/2007 17:31
par tmyke
Comme quoi, d'une machine a l'autre...
En tous les cas chez moi cela tourne bien, les touches sont fonctionnelles, et je
dirais comme cela que c'est plutot très cool. 150 fps en moyenne avec les
trois faisceaux d'eclairage (cela monte bien sur quand il ne sont plus la )
et meme si la manipulation des touche pour diriger les perso ne sont très
intuitives, j'ai sous les yeux un resultat plutot pas mal, meme si je n'ai pas
suivi plus que cela le post depuis le début...

Pas mal, cela ne peux que t'encourager a continuer...

(config -> PIV 640 + 6800GT)
:wink:

Publié : jeu. 01/mars/2007 17:39
par Thyphoon
tmyke a écrit :Comme quoi, d'une machine a l'autre...
En tous les cas chez moi cela tourne bien, les touches sont fonctionnelles, et je
dirais comme cela que c'est plutot très cool. 150 fps en moyenne avec les
trois faisceaux d'eclairage (cela monte bien sur quand il ne sont plus la )
et meme si la manipulation des touche pour diriger les perso ne sont très
intuitives, j'ai sous les yeux un resultat plutot pas mal, meme si je n'ai pas
suivi plus que cela le post depuis le début...

Pas mal, cela ne peux que t'encourager a continuer...

(config -> PIV 640 + 6800GT)
:wink:
Merci c'est sympa :) Je suis sur qu'en utilisant les methodes proposé part CPL BATOR on pourrait exploser le FPS mais helas c'est trop compliqué pour moi j'ai pas réussi a faire quoi que ce soit. (pour l'instant ! car j'y reviendrais surement )

Publié : jeu. 01/mars/2007 18:17
par tmyke
Je sais que tu as une idée très précise de ce que tu veux faire, mais parfois
la clé d'un projet qui avance loin c'est le compromis (technique dans ce cas)

Pourquoi, pour l'instant ne pas rester sur une lumière circulaire comme dans
un des exemples donné par Cpl.Bator. C'est déjà excelent, et rien ne t'empechera
par la suite quand tes connaissances et ton baggage technique seront meilleurs
de revenir dessus pour eméliorer.

Publié : jeu. 01/mars/2007 18:37
par comtois
d'ailleurs tu tiens absolument à réaliser ton jeu en 2D ? peut-être que tu pourrais envisager la 3D avec Dreamotion3D ça devrait être beaucoup plus simple :) Enfin je ne sais pas comment sont gérées les lumières , on peut avoir des spots ?

Si tu tiens à le faire en 2D, je suis de l'avis de tmyke, il te faudra faire des compromis technique. Quitte à reprendre l'ensemble plus tard quand ta connaissance ou les fonctions de PB auront évoluées.

Publié : ven. 02/mars/2007 7:45
par Thyphoon
@Dr Dri
Voici les sources complètes.
File:1->Aliens_Invasion.zip
Image
Il est possible que ça ne marche pas chez toi si ta cartegraphique ne supporte par les textures de 256x256

A la ligne 140 de Main.pb tu as InitMapEngine(200,100,8,8)
il s'agit de InitMapEngine(x,y,Nb de bloc Horizontal,Nb de bloc Vertical)
un bloc fait 32 pixel donc 8x32=256 ça sera un sprite3D de 256x256

C'est le problème de mon moteur :(
mais tu peux déjà jouer sur cette fonction pour voir si ça marche un un sprite plus petit


tmyke a écrit :Je sais que tu as une idée très précise de ce que tu veux faire, mais parfois
la clé d'un projet qui avance loin c'est le compromis (technique dans ce cas)

Oui je sais bien. Depuis plus d'un an je suis dessus et les choses on pas mal evolué et beaucoup de chose on été vu a la baisse.Au tout debut mais faisceau lumineux était précis au Pixel prêt et gérait 4 hauteurs différents. mais ça tournait a 13FPS. Aujourd'hui ça ne gère plus que 2 Hauteurs et je suis précis a 10 pixel prêt et je tourne a 180 FPS.
tmyke a écrit : Pourquoi, pour l'instant ne pas rester sur une lumière circulaire comme dans un des exemples donné par Cpl.Bator. C'est déjà excelent, et rien ne t'empechera par la suite quand tes connaissances et ton baggage technique seront meilleurs de revenir dessus pour eméliorer.

C'est prévu. Je n'ai pas dit mon dernier mot. Mais pour l'instant je préfère avancé le reste du jeu. Car si je reste coincé trop longtemps ça risque de me démotivé..:P Mais tout les jours j'y rejette un oeil !
comtois a écrit :D'ailleurs tu tiens absolument à réaliser ton jeu en 2D ? peut-être que tu pourrais envisager la 3D avec Dreamotion3D ça devrait être beaucoup plus simple Smile Enfin je ne sais pas comment sont gérées les lumières , on peut avoir des spots ?
J'y ai bien pensé. le problème de la 3D c'est que déjà c'est quelques choses que je ne maitrise pas du tout. Et qu'il faut que je réaprenne tout depuis le debut. Sans compter qu'il faut maitriser aussi un outil pour modeliser en 3D etc...donc c'est un long aprentissage. Et le temps que j'ai pour programmé tout les jours se réduit de plus en plus...
Mais une chose est certaine tmyke est ce qui me manquait pour m'y mettre je compte bien me lancer dedans. La seul chose qui est dommage c'est que son moteur ne fonctionne que sous windows :P C'est le seul reproche que je ferais.
comtois a écrit : Si tu tiens à le faire en 2D, je suis de l'avis de tmyke, il te faudra faire des compromis technique. Quitte à reprendre l'ensemble plus tard quand ta connaissance ou les fonctions de PB auront évoluées. :wink:
C'est déjà ce que je fais...mais je vais suivre vos conseilles

Encore une fois merci a tous de vous interesser a mon projet, et merci de repondre a mes questions avec autant de patience.

Publié : ven. 02/mars/2007 11:33
par Dr. Dri
Thyphoon a écrit :@Dr Dri
A la ligne 140 de Main.pb tu as InitMapEngine(200,100,8, 8 )
il s'agit de InitMapEngine(x,y,Nb de bloc Horizontal,Nb de bloc Vertical)
un bloc fait 32 pixel donc 8x32=256 ça sera un sprite3D de 256x256

C'est le problème de mon moteur :(
mais tu peux déjà jouer sur cette fonction pour voir si ça marche un un sprite plus petit
Le problème doit venir de là... je vais regarder tes sources quand j'aurrais du temps et je te ferais un petit exemple pour gérer ta map autrement (genre qu'avec du 32*32) et éventuellement un petit quelquechose sur l'utilisation du ClipSprite3D. Et après tout ça quand j'aurais du temps j'essairai de te faire un exemple avec la technique de Cpl.Bator telle que tu veux l'utiliser.

Dri