Pages: 1 2
Salutations !
Voici un petit screenshot de mon projet en cours. Ne regardez pas les FPS, l'image a été capturée sur une machine dont la carte est plus DirectX que OpenGl (Un Compaq du lycée). Chez moi j'obtiens 60Fps (Nvidia FX 5200).
Les soleils sont des billboards, j'ai généré les texture avec The GIMP.
Les cubes carrés sont des CubeSceneNode dont j'ai activé la transparence. J'ai dessiné les traits et rempli le reste en noir. le noir deviens transparent. J'avais essayé avec des textures ayant un canal alpha, mais marche pas. C'est vraiment tout bête a créer, une scene comme ça. Il y a 3*3*3 Secteurs avec 50 soleils(systèmes) par secteurs.
Il y a également des cercles qui indiquent l'état du système visé.
Je mettrais de meilleurs screens plus tard. Celui la est plutot moche, finalement...
Il y a eu un blème chez mon provider, donc l'image ne s'affiche plus.
Je vais rétablir dès que possible.
Dernière modification par diOxy (04-06-2007 12:18:05)
Hors ligne
Sympa ! le fait que le fond noir soit "tacheté" est dû à la compression de la capture d 'écran ?
Hors ligne
kedu :
Sympa ! le fait que le fond noir soit "tacheté" est dû à la compression de la capture d 'écran ?
ce serai pas des soleils ? :p
en tout cas super class, +1 !
Dernière modification par Jerry Kan (06-02-2007 19:07:23)
Hors ligne
Excellent, des projets qui fleurrissent !! Et des projets sympa en plus ! Bon courage pour la suite .
Hors ligne
J'ai créé un skybox avec Paint.Net ( Fond rempli de noir, Effet ajouter du bruit ) C'est ce qui donne une impression de poussière (d'étoiles).
Voila un morceau de screenshoot pris depuis l'intérieur avec des morceaux de soleil dedans :
Il y a eu un blème chez mon provider, donc l'image ne s'affiche plus.
Je vais rétablir dès que possible.
Dernière modification par diOxy (04-06-2007 12:18:24)
Hors ligne
Ca a l'air de bien démarrer
Petites remarques il faut bien que mon commentaire serve à quelque chose :
- Il n'y a pas un peu beaucoup d'étoiles?
- Le lens flare me parait un peu radin (hexagonal....)
Hors ligne
Pour le nombre d'étoiles, c'est le SkyBox qui fait illusion. Les "vraies" étoiles, celles qui représentent un système explorable, sont les colorées. Il y en a 50 par cube. Concernant le lens flare, c'est inclu dans le PNG, ce n'est pas un effet mais un dessin. Ajouter des effets de ce genre risque de pénaliser les petites configurations (Au cameroun le prix d'une carte graphique dernière génération est égal a plusieurs mois de salaire... et c'est pas le pays le plus pauvre...)
Actuellement je teste différentes configurations : nombre d'étage, nombre d'étoiles par cube, etc. Je dois trouver un équilibre. Ne pas oubliez que les cubes sont peuplés a partir de données qui proviennent d'une base mysql avec éventuellement une couche en php. Je veux offrir un moyen de contrôle au joueur par l'intermédiaire du web (messagerie, état et positionnement des flottes, gestion d'alliances, etc).
Mais avant de lancer vraiment le truc, je VEUX en connaitre la faisabilité.
Dernière modification par diOxy (08-02-2007 13:56:08)
Hors ligne
Je serais curieux de me balader dans les airs sur ton bout de programme pour voir l'impression que ça donne, tu prévois une petite démo pour bientôt ?
En tout cas le dernier screen est beaucoup plus parlant que les précédents !!!
Hors ligne
Je vous enverrais une ptite démo prochainement.
La je viens de tester le lien avec MySql et je génère les secteurs (les cubes) à partir d'une base de données. Et j'ai egalement testé l'ajout de soleils (billboards). Actuellement j'obtient 10 fps (visuellement, c'est pas flagrant) avec 31 x 41 x 50 systèmes, ce qui me fait 2542 CubeSceneNode (Je ne met plus des cubes, mais des carrés : un dessus, un dessous) et 63550 Billboards. La quantité de mémoire utilisée reste minime. Il faut dire que je n'utilise que 5 textures de soleil et 5 textures de cube (Il y a 5 catégories de secteurs).
Après ce test, je peux enfin me pencher sur un système de chargement progressif des systèmes selon la position de la vision du joueur.
Concernant la forme finale de la galaxie, j'hésite encore. Un disque, une lentille, un cube, un rectangle ? Pour l'instant je penche sur la génération d'une galaxie en forme de lentille (épaisse au centre, fine au bord) et je la subdivise en cubes après. L'idée des cubes (secteurs), c'est pour que le joueur ne soit pas trop perdu. Il lui faut un moyen simple pour se repérer.
Hors ligne
Je suis en train de préparer une chtite démo qui n'utilise pas la base mysql. En fait, je pense que le client 3d se servira d'un fichier local pour afficher les systèmes, les appels a la base mysql se feront uniquement lors de l'exploration de l'intérieur du système. J'ai réalisé plusieurs modèles de galaxies, une ressemblant a un gros éparpillement de systèmes avec plusieurs centres actifs, l'autre ressemblant a une galaxie lenticulaire où plus l'on s'approche du centre, plus ce sera chaud... J'ai abandonné l'idée des bras car un nouveau joueur placé au bord d'un bras pourrait être trop désaventagé par rapport a un autre dans l'axe du bras. (Moins de ressources proches).
Hors ligne
On attend la démo avec impatience :-)
Hors ligne
diOxy :
En fait, je pense que le client 3d se servira d'un fichier local pour afficher les systèmes, les appels a la base mysql se feront uniquement lors de l'exploration de l'intérieur du système.
pourquoi ne pas tout faire sur du mysql ? tu trouvera jamais plus rapide
Hors ligne
Tiens j'étais en train de me dire... Le plus simple ne serait pas d'utiliser SQLite ? Enfin j'ai peut-être mal compris mais s'il faut que le client embarque une base MySQL ça fera vraiment lourd (et si il doit se connecter à un serveur distant, ça nécessitera internet)... L'avantage de SQLite c'est qu'il permet d'avoir une vitesse proche de celle de MySQL (bon ok proche proche, va pas manier 4GO /s de données non plus) tout en évitant d'embarquer un serveur MySQL et en permettant de rendre le contenu disponible hors-connexion.
Sinon, j'aime bien les screens
PS : Tu peux nous dire l'ensemble des technos que tu utilise (langage, plateformes visées) ?
Hors ligne
DeusXL :
Tiens j'étais en train de me dire... Le plus simple ne serait pas d'utiliser SQLite ? Enfin j'ai peut-être mal compris mais s'il faut que le client embarque une base MySQL ça fera vraiment lourd
a quel point de vue ? en taille ? en vitesse d'execution, ca fera surtout gagner du temps, surtout par rapport a un acces fichier,
si le client du jeu est le seul a utiliser la base, yaura aucune surcharge, au contraire, et le serveur sera "endormi" entre deux requetes
DeusXL :
tout en évitant d'embarquer un serveur MySQL et en permettant de rendre le contenu disponible hors-connexion.
ah ? ca marche comment SQLite ?
Hors ligne
Bah s'il faut embarquer MySQL sur la machine du client, c'est lourd... Moi j'aimerais pas quand j'installe un logiciel avoir à installer MySQL -avec tout le bazar en plus, le lancer...
SQLite est une alternative à MySQL dans le sens qu'il fournit un serveur SQL sans connexion, c'est juste une librairie qui manipule toute seule ses fichiers... L'avantage c'est qu'on a rien à installer sur la machine client (et s'il programme en .NET, l'interface SQLite pour ADO.NET est exactement la même que celle de MySQL ou MSSQL... puisque c'est ADO.NET)
Bon il faut nuancer en disant que le langage SQL interprété par SQLite est vraiment assez réduit, il n'y a bien sûr pas de procédures stockées et autres (faut dire, elles ne sont que dans MySQL 5) mais en plus certaines fonctions ne fonctionnent pas (je sais plus si c'est avec les UNIQUE que j'avais eu des problèmes)... Mais franchement si c'est pour faire du INSERT INTO, UPDATE, SELECT... Il le fait à merveille (tant que tu ne veux pas faire des milliers de requêtes par secondes).
Dernière modification par DeusXL (10-03-2007 14:29:01)
Hors ligne
J'ai du mal expliquer le truc. Ma faute.
Vous connaissez les jeux de style ogame ? (je devrais dire exile qui est vraiment mieux mais moins connu...) Vous jouez a partir d'une interface web en php. Et je me disais : Et si j'offrais aux joueurs la possibilité de jouer avec un client 3D à un nouveau jeu ? Mais que lorsqu'ils sont en déplacement il puissent jouer également avec une interface web ? Et pourquoi pas...etc...
Donc il y aura une base de donnée mysql qui contiendra toutes les données du jeu et surtout celles qui seront amenées a changer (Nom de planète, les flottes, etc...) et pour les clients 3d, une base locale qui contiendra les données qui ne changerons jamais a moins d'un patch.
Je vous prépare une démo avec des données locales pour que vous ayez une idée de ce que ça donne. Va me falloir un graphiste pour le gui en tout cas. Je suis vraiment nul en dessin !
Merci pour vos appréciations ! ca aide !
Hors ligne
Vraiment intéressant comme démarche. Vu le concept, n'hésite pas aussi à faire un tour sur technologies de rendus 3d via navigateur internet. Ici, l'exemple d'un poisson qui nage
Hors ligne
DeusXL :
PS : Tu peux nous dire l'ensemble des technos que tu utilise (langage, plateformes visées) ?
Oups ! Scuze.
Langage : C#
Pourquoi utiliser le C# ? Parce que j'aime bien ce langage, tout simplement. Mais aussi parce que l'on peux faire un truc plutôt dingue avec. Lorsque vous créez un programme, les sources sont compilés et le résultat se présente sous la forme d'un exécutable qui se distribue avec les dll et les médias nécessaires. Avec le .Net il est possible de laisser des sources a l'extérieur de l'exécutable. Ces sources sont compilés au vol lors du démarrage de l'exe. Imaginez que vous créez une classe Monstre héritable. vous avez le dossier media et le dossier source. Création d'un nouveau monstre ? Vous placez les .md2 et .png dans le dossier media et le .cs dans le dossier script. Vous avez programmé votre jeu pour qu'il scanne les modifications du dossier script et crée une dll avec son contenu en cas de mofification. Et Hop, votre nouveau monstre est dispo dans votre programme. Utilité ? Il n'y a que le contenu du répertoire script qui est compilé, et la dll générée est ajoutée au vol au programme principal. Si vous créez un mmorpg, vous envoyez les nouveaux medias aux clients et ajoutez juste le .cs au dossier script du serveur. Un petit stop/marche du serveur et voila. Utile si votre programme est hébergé.
Plateforme ? :
Client 3D sur Windows/Linux pour l'instant. Concernant les pages web en php, pas de limitations. Wap ? Pourquoi pas ? J'ai vu un emulateur de Nitendo DS et je vais regarder de ce côté. Mais bon. Ca c'est pour l'avenir. Je dois bosser brique par brique sinon rien ne sera fait !
Pourquoi je fais ce jeu alors qu'il y en as déjà des masses ? :
Parce que j'aime programmer.
Hors ligne
Bon, voila des nouvelles sur mon ptit truc.
Pour ne pas encombrer l'affichage, je vous met les liens.
Pour que les soleils soient un peu mieux visibles, histoire de voir quelque chose, j'ai augmenté la taille des billboards affichés.
http://fusteliens.webou.net/images/galaxiecomplete.png
http://fusteliens.webou.net/images/gala … ranche.png
http://fusteliens.webou.net/images/la-g … ntaine.png
http://fusteliens.webou.net/images/espa … centre.png
Ainsi qu'un petit exemple vite fait affichant 10.000 soleils.
Il nécessite le .Net Framework pour fonctionner.
Les dlls sont inclues. Taille : 1.19Mo
http://fusteliens.webou.net/programmes/ … pirale.zip
Hors ligne
Je tenais à te congratuler pour la génération de ta galaxie, c'est "crédible". Aurais-tu à l'occasion le temps et le courage de présenter ton algorithme de génération (le principe et les difficultés rencontrées, les paramètres de génération, etc.) ?
Quoi qu'il en soit j'applaudis ton travail (je n'ai pas pu lancer la démo, je n'ai pas d'environnement .Net sur mon linux, la flemme avant tout et un peu de mauvaise foi, étant un javaien dans l'âme) !
Continue comme ca
fred
Dernière modification par ptitfred (02-04-2007 23:26:09)
Hors ligne
kedu :
J'aime beaucoup le concept ! J'ai un souci de FPS car apparemment je stagne à 3 FPS. Je dispose pourtant d'une GeForce 7300 sur un dual core de base. A ta disposition pour plus d'infos ;-)
Merci !
c'est étonnant pour les FPS 8(
Perso j'ai une FX 5200 sur un Intel P4 3Ghz et j'arrive a 20 FPS, ce qui est normal quand on sais que j'affiche 10.000 soleils. Mais d'un autre côté, j'ai 768Mo de ram.
Je n'ai pas activé l'antialiasing, mais par contre la distance de vue de la camera est de 10 000.
Par défaut j'ai mis en OpenGl, parce qu'il doit fonctionner sous linux mais aussi parce que ma carte est plus rapide en OpenGl qu'en DirectX. Je vais ajouter le choix entre les deux solutions et mettre a jour l'archive.
Précision : Les 10 000 soleils ne seront pas affichés dans la version finale. Je les ai mis et augmenté la FarValue pour voir jusqu'où je pouvais aller avec ma vieille carte.
ptitfred :
Je tenais à te congratuler pour la génération de ta galaxie, c'est "crédible". Aurais-tu à l'occasion le temps et le courage de présenter ton algorithme de génération (le principe et les difficultés rencontrées, les paramètres de génération, etc.) ?
Merci aussi !
Concernant l'algorithme, il est vraiment simple. Et comme d'habitude c'est après avoir trouvé le truc que je suis tombé sur un algo semblable dans les démos de l'OpenSceneGraph. J'ai finalement mélangé ma sauce a celle de l'Osg qui est au passage excellent !
Hors ligne
Perso j'ai 13 FPS avec une 8800GTS, 1024Ram et AMD 3000+
De toute façon, un bon rendue doit avoir 60FPS... même si théoriquement 30 devrait suffire, on voit bien la différence
Ensuite, je sais pas ce qui doit être affiché, mais moi sa correspond a une banal skybox
Pas de planete (3D, billboard, ...) juste une skybox avec plein de point et un sale FPS.
a+
w
Hors ligne
Willikus :
Perso j'ai 13 FPS avec une 8800GTS, 1024Ram et AMD 3000+
De toute façon, un bon rendue doit avoir 60FPS... même si théoriquement 30 devrait suffire, on voit bien la différence
Ensuite, je sais pas ce qui doit être affiché, mais moi sa correspond a une banal skybox
Pas de planete (3D, billboard, ...) juste une skybox avec plein de point et un sale FPS.
a+
w
Ben, ça doit théoriquement ressembler aux screenshots mis en lien. Je n'ai mis que les images nécessaires. C'est uniquement une vue de la galaxie générée. Le gui est en cours de dessin, l'affichage des systèmes solaires avec leurs trains de planètes est créé mais je ne vais certainement pas afficher les planètes des 10000 systèmes, sinon on risque d'avoir un fps de -60...
Pour l'instant ce sont les algos qui m'intéresse. Le beau avec plein d'effets spéciaux, ce sera l'habillage. Sa ne sert a rien d'avoir une magnifique ferrari si son moteur viens d'une 2 chevaux.
Les shaders me seront très utiles pour l'habillage.
Le petit programme fournis ne fait qu'afficher 10000 billboards pour que l'on puisse visualiser la galaxie. C'est tout. Il prend 100 lignes en tout et pour tout et n'as pas d'autres objectifs. Ce sont tout ces petits bouts qui, une fois assemblés, donnerons le programme définitif.
Un bout de code pour la génération d'une galaxie spirale cohérente.
Un bout de code pour l'exploration d'un système solaire
Un bout de code pour l'affichage du terrain d'une planète
etc, etc....
Tout ça dans des classes qui respectent un cahier des charges pour être facilement inter-connectables.
Essayer de travailler sur le programme complet, en compilant tout a chaque fois, et en risquant de foutre la ...heuu... vous m'avez compris.... Non merci.
Dernière modification par diOxy (03-04-2007 14:48:00)
Hors ligne
comme Kedu je suis a 3 fps ac une 3400+ 1Go et une 800XT , je ne sais pas comment tu fait pour avoir 20Fps sur ta machine ...
J'aimes bien le concepte , mais pas le skybox .
Affaire a suivre .
Hors ligne
Pages: 1 2
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 23 invités en ligne Aucun membre connecté RSS Feed |