# Applications > Dveloppement 2D, 3D et Jeux > Moteurs de jeux vido >  Prsentation d'un moteur 2D maison ralis en VB6 - DX8

## Vetea

Bonjour  tous !

Dans le cadre de la refonte de l'un de mes projets ( Rol'An'Go pour ne pas le citer ... ^^ ), j'ai longuement planch sur les APIs DirectX.

Mes anciens moteurs taient bass sur du 100% "Software" et dpendant principalement du processeur ... C'est pour cela que je me suis pench sur ces fameuses APIs DX non sans difficults ...

Je prcise que j'utilise VB6, langage mort, enterr, ( ... ), mais avec lequel je me sens le plus  l'aise ... Et l'on peut raliser encore pas mal d'applications avec, en tout cas, dans mon cas !!  :;): 

Voici donc les possibilits de ce moteur en cours de dveloppement :
- Zoom
- Scrolling sur 2 axes
- Animations de sprites
- Dplacement de sprites
- Gestion des ombres des sprites
- Gestion "partielle" de l'arrire plan - premier plan.
- Gestion Hardware de la souris ( j'y suis arriv enfin ! )
- Gestion amlior de l'animation des sprites ( une fonction ddie ... )

De plus, j'ai ajout un cran d'accueil permettant de choisir quelques options :
- Full Screen
- Mode fentr
- Scrolling alatoire ou normal
- Choix du Dtail de la dmo scne

Une petite capture en mode fentr 800 x 600 :


Le Lien pour la dmo : Lien dmo 2D

Une petite vido ( l'avant dernire version du moteur ) :



La rsolution est fixe en 800 x 600.
Sur ma machine ( Core 2 Duo 6600 et GTX 460, elle tourne  60 fps ), j'ai fix le fps ainsi.
Dans la dmo, vous dplacez un aventurier avec la souris. Il suffit de cliquez sur une destination pour qu'il s'y rende !
Le pathfinding est trs basique pour le moment, pas d'obstacle de gr et la gestion des arrires plans n'est pas encore au point ...

Vos retours et avis me sont importants pour la refonte de mon projet majeur.

Merci de votre attention !  ::): 

V.

----------


## Vetea

Bonjour  tous !!

Je vous propose quelques avances de mon moteur DirectX aujourd'hui :

*/ La gestion des avants plan et arrire plans : Grace  un algorithme "maison" qui rcupre toutes les coordonnes Y des lments de la carte ( hormis les lments en hauteur maxi genre oiseau, papillon .. ), on traite par ordre croissant ces coordonnes, on stocke leur ID respective et on affiche l'ID qui  la plus grande coordonne Y  l'cran jusqu' la plus petite !
L'effet est, certes classique pour ce genre de jeu, mais raliste ... et le challenge l'tait tout autant ! ^^

*/ Gestion amliore des ombrages des lments

*/ Optimisation de la vitesse du moteur ( tourne sur mon misrable NetBook Asus 1000H ... ), optimisation des routines de traitement.

*/ Ajout de quelques lments de dcor et personnage ( Juste pour prouv le moteur ... Vu la rapidit, on peut mettre le paquet !! ), je prcise que ces lments ont t ajout " la main" dans le code, cela ne vient pas, pour le moment, de l'diteur ...

*/ Optimisation de l'affichage en calculant juste ce qu'il y a affich sur la fentre et non sur la totalit de la carte ... Un gain apprciable en performance !

Vous trouverez la dmo  la mme adresse : Dmo Moteur 2D DX

Je prcise qu'il s'agit d'une "fausse" 3D vue de dessus ... Je gre la hauteur dans ce moteur dans le cadre de mon projet Rol'An'Go ... Ceci explique mon travail sur l'avant plan et l'arrire plan ...

Voici une petite capture d'cran :


Comme toujours, merci de vos retours !!  :;): 

Cordialement.

V.

----------


## PANORAMIC

J'ai tlcharg ta dmo.
Tout d'abord, il faut "l'installer". Ensuite, lors qu'on lance "Exemple Moteur DX.exe" (tu ne dis pas que c'est ce fichier qu'il faut lancer !), il y a une vue de dessus, des chants d'oiseaux, des personnages qui se dplacent, mais que peut-on bien faire avec tout cela?
En cliquant par-ci par-l, j'ai remarqu qu'une croix se crait. Et, c'est mon principal "reproche": l'utilisateur doit se dbrouiller seul, sans aucune indication. Pas de documentation utilisateur: Lisez-moi.txt ou de Help.

Il y a bien sr beaucoup de travail et de recherche dans ce que tu montres, mais je m'attendais  un moteur utilisable en VB ou dans un autre langage. Or, il n'y a aucune documentation "technique" (design document ou autre): comment charger un dcor, un sprite, comment l'animer, comment le positionner, comment faire un scroll du dcor, bref, je suis un peu du: toute une installation pour si peu.

Je m'attendais aussi  me plonger dans le source pour voir comment tu procdais avec les API DirectX, voire les adapter  mes besoins, mais le source n'est pas livr.

En tout cas joli travail, bravo et bonne continuation.

----------


## Vetea

> J'ai tlcharg ta dmo.
> Tout d'abord, il faut "l'installer". Ensuite, lors qu'on lance "Exemple Moteur DX.exe" (tu ne dis pas que c'est ce fichier qu'il faut lancer !), il y a une vue de dessus, des chants d'oiseaux, des personnages qui se dplacent, mais que peut-on bien faire avec tout cela?
> En cliquant par-ci par-l, j'ai remarqu qu'une croix se crait. Et, c'est mon principal "reproche": l'utilisateur doit se dbrouiller seul, sans aucune indication. Pas de documentation utilisateur: Lisez-moi.txt ou de Help.
> 
> Il y a bien sr beaucoup de travail et de recherche dans ce que tu montres, mais je m'attendais  un moteur utilisable en VB ou dans un autre langage. Or, il n'y a aucune documentation "technique" (design document ou autre): comment charger un dcor, un sprite, comment l'animer, comment le positionner, comment faire un scroll du dcor, bref, je suis un peu du: toute une installation pour si peu.
> 
> Je m'attendais aussi  me plonger dans le source pour voir comment tu procdais avec les API DirectX, voire les adapter  mes besoins, mais le source n'est pas livr.
> 
> En tout cas joli travail, bravo et bonne continuation.


Bonjour  toi !!

Merci d'avoir pris le temps de tester cette petite "Dmo - scne" !!

Comme tu l'as constat, il n'y a pas grand chose  faire, je met juste en vidence l'affichage, la gestion du dcor, scrolling, dplacement, gestion souris, Clavier, etc ... Bref, tout ce qui peut et doit tre gr par DX.

Je reconnais qu'il n'y a pas de Doc pour renseigner sur la dmo, je corrigerai cela dans les prochaines versions et je diffuserai volontiers le code source sous peu !  ::): 

En ce qui concerne le setup, en fait je suis oblig de passer par la pour enregistrer dans le registre la DLL VB-DX8.1 spcifique  VB6 ... C'est lourd pour si peu, je le reconnais ...

La dmo tait elle fluide sur ta machine ?! J'essais d'optimiser le code et les algorithmes de traitement  chaque version.
Sur mon Core2duo 6600 je tourne  65 fps ( fps fix par le code ) et entre 15 et 25% en charge ( encore un peu lourd pour moi .. Mais avant c'tait 30 - 45%  en mode dtail amlior ^^ )

Si la dmo t'a plus globalement, j'en suis ravi dans tous les cas, et cela me conforte dans la poursuite de mes travaux pour la refonte de mon projet ( Consultable et Tlchargeable ici : http://www.rolango.fr/ )

Cordialement.

V.

----------


## Vetea

Bonjour  tous !!

Je vous propose au travers du dveloppement ce moteur qui occupe mon temps devant l'cran, quelques nouveauts :

*/ Vous pourrez dplacer le personnage principal de deux manires : Soit au clavier avec les touches flches, ou soit avec la souris en slectionnant la destination avec le clic gauche. On ne peut utiliser les priphriques en mme temps pour se dplacer ! La gestion s'effectue avec un timer, lorsque le clavier n'est plus utilis pendant 500ms, on passe en mode souris.

*/ Gestion des dcors : Dsormais, les obstacles sont grs mais uniquement en mode clavier puisque le moteur de pathfinding n'a pas t implant. Les collisions avec le dcor sont effectus au pixel prs grce  un tableau boolen  deux dimension avec lequel on dfinit un intervalle x,y de collision :



```

```

*/ Optimisation du moteur.

*/ Prsentation du Moteur au travers d'un fichier LisezMoi.txt

J'espre avoir vos retour sur le comportement du moteur ainsi que vos impressions ...

On ne peut pas faire grand chose encore, si ce n'est se balader sur la petite carte, mais bientt j'implanterai quelques nouveauts ... 
Il ne faut pas oublier qu'ici, je gre du temps rel !! Le Projet Rol'An'Go lui est en mode Tour par Tour ... Mais le moteur me donnera des tas d'options visuelles en matire de tutoriel, dvnement en cours de partie, etc ...

J'avoue que j'ai grand plaisir  dvelopper ce moteur mais je me rend compte aussi de la quasi obligation de refondre mon diteur de map totalement inadapt pour ce genre de moteur DX ... Je pencherai pour l'utilisation d'un fichier de type *ini pour plus de commodit et aussi un diteur utilisant les APis Dx ... ^^

Le lien est toujours le mme : http://dl.dropbox.com/u/108143465/Demo2DX.exe

Merci d'avance pour vos retours !!  ::): 

Cordialement.

V.

----------


## Vetea

Bonjour  tous !!

Remontez moi vos impressions sur le comportement du moteur,  de mme que d'autres utilisateurs ou testeur(ses) fantmes ... 

Donnez moi, si possible, la charge CPU ... Je sais, j'en demande des choses !

Cela m'est trs important dans la poursuite de mes travaux et dans le travail de refonte de mon projet phare Rol'An'Go !! 

Et voici comme promis, le code source VB du moteur et de la dmo en l'tat actuel de dveloppement, avec en bonus les Tiles de sprites : https://dl.dropbox.com/u/108143465/T...VB6%20Code.rar

Merci encore  tous !!


V.

----------


## Vetea

Bonjour  tous !

Je profite de ce post pour vous informer qu'une petite mise  jour a t dploy pour corriger quelques petits bugs ( Merci  vous pour ces retours de bugs !!! ) :

_*/ Correction de la vitesse d'animation des units ( ils n'auront plus cette impression de "patiner" ... )
*/ Les bosquets sont considrs comme obstacle ( en mode clavier )
*/ Correction d'un bug sur les coordonnes en mode souris, sur certaine machines ( bug ou le personnage n'arrivait pas  rsoudre la direction verticale ... )_

Voici le lien ( toujours le mme ! ) : https://dl.dropbox.com/u/108143465/Demo2DX.exe

Merci de vos retours et  bientt !! 

V.

----------


## PANORAMIC

C'est agrable de pouvoir balader un petit personnage anim sur un dcor avec les flches du clavier.
De plus, il y a collision avec des objets comme les arbres. Pas mal.
Mon framerate est de 61 fps.

J'ai essay de compiler ton source, mais je tombe sur l'erreur:
"File not found: EX_Time.dll"
et je ne suis pas all plus loin...
J'ai essay de compiler sous Windows XP et sous Windows 7, avec toujours la mme erreur. La DLL ne fait sans doute pas partie de Windows ou de DirectX.

----------


## Vetea

> C'est agrable de pouvoir balader un petit personnage anim sur un dcor avec les flches du clavier.
> De plus, il y a collision avec des objets comme les arbres. Pas mal.
> Mon framerate est de 61 fps.
> 
> J'ai essay de compiler ton source, mais je tombe sur l'erreur:
> "File not found: EX_Time.dll"
> et je ne suis pas all plus loin...
> J'ai essay de compiler sous Windows XP et sous Windows 7, avec toujours la mme erreur. La DLL ne fait sans doute pas partie de Windows ou de DirectX.


Bonjour  toi et merci de suivre l'volution de mon moteur depuis le commencement !! 

La DLL EX_Time.DLL ne fait pas partie en effet de DX ou Windows, c'est une DLL qui me permet de rcuprer la vitesse d'un Processeur pour que je puisse ensuite, adapter cette vitesse sur d'autres PC plus ou moins puissant ( en prenant comme talon, mon PC sur lequel je travail : E6600 @ 3206 Mhz )

Donc, il faut l'enregistrer dans le registre et la copier dans le system32 du rpertoire Windows.

( Je viens de m'apercevoir que je ne l'ai pas mis dans le rpertoire de ma source ... MEA CULPA !! Je corrige de suite cette erreur !!  :;):  )

Je suis ravi nanmoins, que cette petite dmo te plaise dans l'tat actuel de dveloppement !! Il n'y a pas grand chose  faire si ce n'est dplacer le personnage, constater les gestions codes ( obstacles, scrolling, camra ... ) et se demander : << A quand la suite ???!! >> ^^

La suite, au prochain pisode bien sur !!!  :;): 

D'ailleurs, je me demande si je ne vais pas radicalement laisser tomber le contrle de dplacement de la souris, pour ne garder que celui du clavier ... La souris servirait au ciblage, et  l'interaction de l'interface ... 

Cordialement.

V.

EDIT : Code source mise  jour avec toutes les DLL ncessaire !! 
Lien identique : https://dl.dropbox.com/u/108143465/T...VB6%20Code.rar

----------


## Vetea

Bonjour  tous !!!

Je poursuis toujours en dilettante, les travaux sur mon moteur. L'arrive des ftes et lavnement de la fin des temps ne me pousse gure  avancer plus vite ... 

Actuellement, je potasse la gestion des obstacles en mouvement ( les units donc ... ) ! Un travail indispensable pour une future conversion du projet !

Par contre, j'ai quelques questions  vous poser :
En ce qui concerne le dplacement de VOS units, prfreriez vous :
a/ Le dplacement avec la souris ?
b/ Le dplacement avec le clavier ( touches flches ) ?

En ce qui concerne le moteur du gameplay :
a/ Une gestion TOTALEMENT en tour par tour ?
b/ Une gestion Semi tour par tour ( exemple : dplacement des units en temps rel, et choix de passer en mode tour / Tour ds lapparition d'une unit ennemi ... ) ?
c/ UNIQUEMENT en temps rel ?

Merci par avance de vos rponses ... Et bien sr, n'hsitez pas  tlcharger la dmo pour vous "amuser" et juger des caractristiques du moteur en dveloppement ! Vos retours, remarques et encouragements seront les bienvenues !!! 

Cordialement.

V.

----------


## Vetea

Bonjour  tous !!

Voici une avance majeure de mon moteur : la gestion des collisions avec des units mobiles !!

Dans le cadre de la dmo,  la rencontre des units prvues  cet effet ( Chvre et les 2 personnages, l'oiseau et le papillon ne sont pas grs mais peuvent l'tre bien sur ... ^^ ) ils vous parleront !

Voici le condens des scripts ds que votre personnage est  leur porte :

_1/ La cible s'arrte
2/ Son animation s'arrte
3/ Il vous parle
4/ Tant que vous restez  sa porte, on recommence 1/ jusqu' 4/
5/ Si vous n'tes plus  sa porte, il continuera son chemin._

Tout cela se fait en temps rel ... la gestion des collisions se fait au pixel prs et consomme que trs peu de ressources ... 

Voici une petite capture d'cran :


Le lien de la dmo : https://dl.dropbox.com/u/108143465/Demo2DX.exe

La prochaine tape, le personnage pourra attaquer les units ( attaque corps  corps, sort ou attaque  distance ... )

Relatez moi vos remarques, avis et comportements de cette nouvelle amlioration !

Merci  tous !

V.

----------


## Vetea

... une dernire petite mise  jour de ma dmo et pas des moindres !!

*Gestion des actions offensives :*

_*/ Pour le moment, la seule action que votre personnage puisse faire, c'est de lancer une boule de feu.
*/ Pour lancer la boule de feu, appuyer sur la touche CTRL de gauche.
*/ Un son sera mit lors du lancer de la boule.
*/ Si la boule atteint un obstacle, son de collision.
*/ Tant que la boule ne sort pas de la carte OU la boule ne touche pas un obstacle, le personnage ne peut lancer une 2me boule.
*/ Seuls les lments du dcors sont grs en tant qu'obstacle.
*/ Animation du projectile en cours de dplacement.
*/ Animation lors d'une collision avec un obstacle.
*/ Le personnage ne peut lancer son sort qu' l'arrt.
*/ Aprs le lancer du sort, le personnage peut continuer  se dplacer._

Une petite capture :


Et voici en bonus, une petite vido de dmonstration :
http://www.youtube.com/watch?v=84KEW...ature=youtu.be

Cette gestion ne consomme aucun cout CPU et la gestion des collisions se fait au pixel prs.
Pour le moment, le personnage ne peut tirer quhorizontalement et verticalement.

Le lien pour la dmo est toujours le mme : https://dl.dropbox.com/u/108143465/Demo2DX.exe

Mon moteur commence  avoir un peu plus de gueule avec les possibilits qui s'ajoutent ... Il reste encore bon nombre de chose  intgrer, mais les bases sont l !  ::): 

Merci pour vos retours et bon dbut de semaine ! ^^

V.

----------


## Vetea

Bonjour  tous !!

Le moteur sera utilis officiellement dans le cadre de mon nouveau projet de jeu : Rol'An'Go ARENA dont la prsentation est disponible ici : http://www.developpez.net/forums/d12...eel-tour-tour/

Mais je continuerai  poursuivre les avances de mon moteur sur ce post bien entendu !!

D'ailleurs, je profite de ce post pour vous proposer la nouvelle version du code source avec les toutes dernires avances prcdemment cites : https://dl.dropbox.com/u/108143465/T...VB6%20Code.rar

Merci par avance de vos retours bien sr !!  :;): 

Cordialement.

V.

----------


## Vetea

Bonjour  tous !

Je profite des dernires avances de mon projet pour vous proposez le nouveau code source !

Disponible ici : https://dl.dropbox.com/u/108143465/T...VB6%20Code.rar

Version Jouable : https://dl.dropbox.com/u/108143465/R...0D%C3%A9mo.exe

Il y a normment de nouveaut depuis la dernire diffusion du code ...

Je vous propose de les consulter sur le post de mon projet : http://www.developpez.net/forums/d12...eel-tour-tour/

En rsum, vous trouverez :

*/ Gestion Ecriture - Lecture dans un fichier .Ini ( Module de classe )

*/ Algorithme de gnration de carte ( 2 mthodes proposes en cours de dveloppement )

*/ Algorithme de Pathfinding :
  1/ Un premier qui permet  une unit contrle par l'IA de se promener dans une carte en tenant compte des obstacles.
  2/ Un deuxime qui permet  une unit d'aller  la rencontre de sa cible en temps rel.

*/ Gestion d'effet de BarreGraph

*/ Algorithme de collision :
  1/ Avec le dcor.
  2/ Entre un projectile et sa cible.
  3/ Entre 2 units en mouvement.

*/ Gestion de la camra.

*/ APis DirectX ( module de classe )

Mon code est comment et suffisamment clair pour tre comprhensible ( enfin je l'espre !  ::mrgreen:: )

Voici quelques screen du projet :
Gnrateur carte en mode tout alatoire :


Gnrateur carte en mode Bloc de forts :


Menu principal :


Vue de l'cran de jeu :

( Avec les units et le fameux Boss ! ^^ )

Merci de votre attention !  ::): 

V.

----------


## ShadowTzu

Bonsoir,
J'ai regard rapidement le code source de ton projet et quelle bonne surprise pour moi de voir que mon vieux code de 2004  t utile sur un projet de 2012  ::): 

Bonne continuation!

----------


## Vetea

> Bonsoir,
> J'ai regard rapidement le code source de ton projet et quelle bonne surprise pour moi de voir que mon vieux code de 2004  t utile sur un projet de 2012 
> 
> Bonne continuation!


Oui en effet, bien que j'ai chang dernirement de technologie et dlaiss DirectX & VB, cela m'a normment servit surtout sur mon dernier projet DX - VB *Danny the Boss* ( ralis il y a quelques mois Lien : https://dl.dropboxusercontent.com/u/...The%20Boss.exe ) ou j'ai sensiblement amlior le moteur et mes routines  :;):  !

Je suis toujours rest dans mon bon vieux Basic ador, mais j'ai migr vers QB64-GL dvelopp par Galleon.
C'est un langage multi plateforme ( Linux Mac Windows et mme Android ), rapide, simple et puissant !
J'ai attaqu mon nouveau projet Papi Commando ( http://www.developpez.net/forums/d13...mostrad-perdu/), c'est une vraie rvlation !

Bon courage pour l'laboration de ton moteur DX9 sous VB.net, c'est un sacr et courageux travail  ::ccool::  ::ccool::  !!

Cordialement.

----------

