# Applications > Dveloppement 2D, 3D et Jeux > Moteurs de jeux vido >  Stocker des terrains et modles graphiques dans un SGBD

## akrogames

Bonjour,

J'ai besoin de votre aide et de votre expertise. Je souhaite me lancer dans l'criture en JAVA d'un MMORPG en 3D. Je souhaiterais pour cela que mes "niveaux" soient stock dans ma base de donnes. (Je stocke que tel ou tel lment et comme cela et comme ceci). Pensez-vous que cela sot possible si oui comment ?

Ma seconde question est la suivante : 
Je pense choisir un moteur graphique en JAVA de type JOGL. Pensez-vous que cela soit judicieux ? Je demande juste a avoir 150Fps maximum je n'ai pas besoin de plus.
Avez-vous des suggestions sur le moteur graphiques  adopter ? Sachant que je souhaite pouvoir importer des modles venus de divers logiciels de cration 3D dont blender.

J'ai donc besoin d'une expertise de votre part pour pouvoir m'orienter sur mon choix. J'en suis qu' l'tape de la rdaction du cahier des charges de mon projet et je pense avanc par itration tranquillement. Je ne veux pas me lancer dans un projet trop ambitieux. L'innovation dans mon projet, c'est que j'aimerais que les joueurs puisse modliser le monde qui les entoure selon leurs envie. D'o l'ide de stocker des modles, le sols, et leurs emplacements dans une base. Mais je ne sais pas si cela est possible. Why not.

D'avance merci.

NB: Je travaille depuis 6 ans dj avec JAVA, mais je ne me suis jamais lanc dans la 3D.

----------


## MoDDiB

> MMORPG en 3D





> Je ne veux pas me lancer dans un projet trop ambitieux.





> mais je ne me suis jamais lanc dans la 3D.


Tu sembles tre quelqu'un de cens je te conseille d'abord ces lectures :
http://conquerirlemonde.com/blog/201...mo-3d-amateur/
http://conquerirlemonde.com/blog/200...ement-foireux/

Commence par un projet simple en 3D.
Puis essayes d'y ajouter du multijoueurs  2-3 joueurs.
Quand tu auras russis tu auras l'expertise ncessaire pour abandonner ton ide initiale. ( je caricature  peine )

Bon courage !

( sinon les lments du terrain directement dans la BDD oui, pourquoi pas ; il faut juste rflchir  l'intrt d'une base de donnes dans ce cas par rapport  un ficher  rcuprer directement par le client )

----------


## NevilClavain

Pour ce qui est du terrain, tu pourrais t'orienter vers des solutions de type "procdural" : ton moteur est capable de rgnrer un terrain  partir d'un 'seed' (typiquement un int32) qui lui est associ : le seed alimente un formule mathmatique (le plus souvent une fractale) qui, au moment de la reconstruction, te pond la hauteur de chaque sommet de la grille de ton terrain. A chaque seed, un terrain diffrent; du coup pour stocker ton terrain, il te suffit de stocker dans ta base le seed qui a servit a construire celui-ci, soit 4 octets en tout et pour tout (hors mta-donnes associes bien sur)  ::mouarf:: 
Bon  voir si a tient vraiment la route par rapport  ce que tu souhaites, j'ai pas pouss la rflexion plus loin que a

Quelques liens en rapport:

http://vterrain.org

http://www.gamasutra.com/view/featur..._universe_.php

----------


## Anything

> Je souhaite me lancer dans l'criture en JAVA d'un MMORPG en 3D.





> c'est que j'aimerais que les joueurs puisse modliser le monde qui les entoure selon leurs envie.





> mais je ne me suis jamais lanc dans la 3D.


 ::calim2:: 





> Je ne veux pas me lancer dans un projet trop ambitieux.


Rat  ::aie:: 
MMO + 3D + contenu dynamique ajout par les joueurs, je pense que tu es pas loin du combo ultime niveau complexit pour un premier projet.

Je ne suis pas sur que le stockage de donnes soit ton seul problme. La facon dont tu va grer les transfert des ressources entre ton serveur et les clients risque d'tre assez groovie aussi.

----------


## akrogames

Vous avez tous raison, c'tait ma conclusion aussi. Je ne savais qu'avec un simple Int on arrivais  gnrer des fractales. C'est sympa la technique.

Anything en ralit j'ai dj ralis un jeu en 2D en JAVA du mme type et je stocke mon terrain, la position de tous les objets et des joueurs dans une base de donnes. D'o l'ide de faire ainsi pour la 3D.

Je pense plutt m'orient vers de la 3D isomtrique du coup car cela se rapproche de ce que j'ai dj raliser vous en pensez quoi?

J'ai vraiment peur que les moteurs 3D de Java soit trop lent dans le jeu... Mme si ce n'est plus aussi flagrant qu'avant.

Et comme le dis MoDDiB, il faut que je procde en itration. Pas de multi au dbut juste un petit test en 3D.

Merci de votre expertise en tout cas.

----------


## Anything

> Anything en ralit j'ai dj ralis un jeu en 2D en JAVA du mme type et je stocke mon terrain, la position de tous les objets et des joueurs dans une base de donnes.


Ca fonctionne en multi?





> J'ai vraiment peur que les moteurs 3D de Java soit trop lent dans le jeu... Mme si ce n'est plus aussi flagrant qu'avant.


Tout dpent ce que tu veux afficher et comment tu organise ton monde(cloison/ouvert). Juste un truc 150 FPS c'est sans grand interet  viser, normalement  60 tu as deja un jeu assez fluide pour 99% des mortels  :;): 
Je ne suis gure fan du java mais si tu te sens  l'aise avec, continue avec.


Qu'est ce que tu appele 3D iso?
Une vue  la Fallout?

----------


## akrogames

Pour mon jeu en 2D, je suis parti d'un projet que j'ai fait il y a 5 ans que j'ai petit  petit amlior. Le jeu fonctionne correctement en multi mais les graphismes ne sont vraiment pas terrible. Bon si il y a 50 personnes, mon serveur commence  galrer mais avec moins cela fonctionne.

Pour moi la 3D iso, c'est de la 3D mais avec la camra plongeante  60 environ.
Exemple :


Mon objectif c'est 150FPS car sous CSS, un bon FPS, c'est 150-200 car sinon cela lag et c'est pas terrible. (J'ai dj jou  CSS sous linux avec 50FPS je perd tous le temps ^^)

Mon monde sera cloisonn afin de ne pas trop surcharg le serveur... Sinon c'est dur dur.

Tu utilises du C++ toi pour dveloppez tes jeux ?

----------


## NevilClavain

> Mon objectif c'est 150FPS car sous CSS, un bon FPS, c'est 150-200 car sinon cela lag et c'est pas terrible. (J'ai dj jou  CSS sous linux avec 50FPS je perd tous le temps ^^)


Heu...

Je suis pas expert mais un soft qui rame cot rseau parce que l'affichage descend en dessous des 150 FPS, c'est qu'y a un truc VRAIMENT bancal quelque part dans l'architecture  ::aie::

----------


## Kannagi

> Heu...
> 
> Je suis pas expert mais un soft qui rame cot rseau parce que l'affichage descend en dessous des 150 FPS, c'est qu'y a un truc VRAIMENT bancal quelque part dans l'architecture


+1  ::ccool:: 
Je suis d'accord voit pas le rapport entre affichage et le rseau,sauf si y a un gros souci dans architecture.

@akrogames
150 fps c'est trop aprs a dpend des jeux le 30 fps est largement suffisant pour pas mal de jeu, mme si certain type de Jeux demande plus (jeux de fight par exemple 50/60 fps).

Pour ton screen a ressemble a du 2D iso ><

Pour moi 3D en vu iso c'est plus comme FF tactics sur psone 
http://ouarpzone.free.fr/images/fft/4.jpg

----------


## Djakisback

En fait, il parle de Counter Strike (un FPS) et je confirme que plus le framerate est haut (avec des min-max diffrents selon la perception des personnes), plus tu es avantag car plus la scne est dcompose (donc fluide  ::aie:: ) mais rien  voir avec le rseau. Personnellement, en dessous de 100 pour un FPS, a commence  me dranger. (Enfin, disons que quand tu passes de 100  60, tu vois vite la diffrence en multi)

----------


## akrogames

Merci Djakisback ! C'est la rponse que j'allais donner.

C'est quoi la diffrence entre 3D iso et 2D iso ?

----------


## Kannagi

Oh ok ma culpa ,j'ignorai pour Conter strike.
Moi j'aurais jamais dit 3D iso , pour moi quand on parle de iso c'est obligatoirement du 2D iso.
Apres  peut tre qu'en parle de 3D iso pour les jeux qui ressemble a du 2D iso ,mais ton screen c'est du 2D je vois aucun 3d dedans donc bon ><

----------


## pyros

Je croyait que dans tous les cas l'cran bridait le frameRate perus  60fps (selon l'cran)... On m'aurait mentis ?

----------


## LittleWhite

La PS3 fait du 30 FPS.
Les applications sous Windows ont la synchronisation verticale d'active par dfaut, soit, sont limits  la vitesse de rafraichissement de l'cran.
Mais lorsqu'il est dsactiv, les application ne sont plus limite.
Aprs, un cran peut tre rafraichit  plus de 60 FPS (120 pour les jeux en 3D avec lunettes). Mais, bon, srieusement, pour un cran plat (LCD ou autre), plus besoin de la synchronisation verticale depuis, qu'il n'y a plus de balayage de faisceaux.

----------


## Djakisback

Le taux de rafraichissement des crans monte plus haut maintenant et il me semble que la limite maximum des FPS est bien celle du rafraichissement vertical. J'ai un doute tout  coup  ::): 

Mais  la base, je parlais effectivement plutt des Cycles Per Second, avec dsynchro verticale en me basant sur mon exprience du vieux Counter Strike 1.1-1.6. J'avoue n'avoir pas trs bien compris ce qui se passe quand on tourne  100 cycles mais qu'on ne peut afficher que 60 images/seconde maximum. Je crois que plusieurs rendus sont affichs partiellement en mme temps, en tout cas la diffrence tait flagrante pour moi en terme de jouabilit entre 100 et 60.

(La PS3 peut monter plus haut que 30 je crois, Rage, par exemple tourne  60 il me semble. Anecdotiquement, quand j'ai test le jeu Skate 1, qui tournait  30 fps il me semble, j'ai trouv a injouable et limite bugg en fait)

----------


## akrogames

Merci  tous pour les rponses sur le FPS.

Vous me conseillez d'enregistrer mes mondes en 3D dans des fichiers et d'changer des fichiers entre mes clients et mon serveur ? Au lieu d'enregistrer tous les objets avec leurs coordonnes dans une base de donnes ?

Encore merci pour tout

----------


## Djakisback

En fait, il est assez difficile de rpondre  cette question. Il faudrait plus de prcisions (puissance machine serveur, types de donnes, frquence des insert/select dans la BDD, nombre de connects max, etc.). Et mme avec a, je dirais que la seule solution serait de faire des tests. Ou bien, il faudrait au moins que tu values le volume et la frquence des transactions puis tu dois pouvoir trouver des tableaux indicatifs pour diffrents SGBD sur le net.

Personnellement, la solution me semble viable uniquement si tu stockes toutes les modifications de map en mmoire de l'appli serveur et que tu fasses des inserts seulement de temps en temps mais modifier la BDD  chaque modification du terrain par un user me semble lourd. Se pose galement le problme des modifications multiples par diffrents users.
Et par scurit, au final, je verrais deux applis serveur avec mmoire partage, dont l'une puisse sauver en BDD les infos de la premire en cas de crash de celle-ci.

Pour info, un MMO en Java pose galement le problme de la scurit tant donn que Java est parfaitement dcompilable.

----------


## MoDDiB

> Pour info, un MMO en Java pose galement le problme de la scurit tant donn que Java est parfaitement dcompilable.


Pour faire une scurit efficace il faut toujours partir du principe que le hacker dispose des sources compltes, donc C++ ou Java, mme combat !

----------


## akrogames

Djakisback je pense que tu as raison pour la charge serveur, cela me semble lourd aussi... J'ai plus qu' faire des tests. Je souhaiterais qu'il y ai 2000 personnes maximum sur le serveur en mme temps. Donc oui cela va laguer c'est certain.

Aprs ils peuvent toujours dcompiler, les formules de jeux sont dans la documentation du jeux. Je n'ai rien a cach.

----------


## Djakisback

> Pour faire une scurit efficace il faut toujours partir du principe que le hacker dispose des sources compltes, donc C++ ou Java, mme combat !


Je dirais que c'est pas faux mais plus en Java, si tu vois ce que je veux dire  :;):

----------


## akrogames

Je pense que ma question est rsolu. Merci  tous.

----------

