PDA

Voir la version complète : UMAD, le jeu dont je cherche toujours l'anagramme! [Unity]



Cuthalion
16/03/2012, 02h14
Bonjour à tout les canards!

J'espère que vous saurez pardonner mon outrecuidance car je doute grandement que mes créations mérite que quelqu'un y prête une quelconque attention, mais bon, on reconnait les cons au fait qu'ils osent tout!
Je viens donc à vous par le bias de cette discussion, dans le but de vous présenter mes travaux, création, et surtout, mes galères quotidiennes de programmeur 3D, actuellement tourné vers le framework Unity.
Ce sera donc l'occasion d'avoir vos retours et de vous faire partager mes, ou vos, astuces de programmation, n'hésitez donc pas à me poser des questions si à l'avenir quelque chose vous interesse!

Venons-en enfin au coeur du sujet, mon projet : UMAD que vous pouvez tester ici (http://www.landofthebytes.com/UMAD/UMAD.html)

Les controles : zqsd ou les flèches directionnelles pour se déplacer, E pour attraper et reposer les objets, le clic gauche pour lancer un projectile qui finira par "exploser" et qui peut être utiliser pour du rocket jumping!

Vous avez aussi à votre disposition quelques plateformes pour expérimenter le rocket jump, et un bouton poussoir, si vous tirez dessus avec votre projectile, ce dernier inversera la gravité!

Pour le moment, cela ressemble plus à un gros "truc" sans trop de direction, mais je compte à l'avenir rajouter des possibilités au projectile : Celle d'annuler la force de gravité appliqué d'un objet, de modifier sa direction, sa force etc.
En bref, je souhaiterais faire un portal like plus nerveux ou le joueur se déplacerait avec skill en rocket jump pour traverser le niveau tout en devant utiliser les options (annuler la gravité d'un objet) pour activer des mécanismes en plein vol.

Voila, je suis encore loin du résultat final donc stay tuned!

Au plaisir!

ElGato
16/03/2012, 11h08
Sur le principe c'est sympa, ça rappelle InMomentum, c'est très zen !

Par contre y'a deux trucs un peu dérangeant :
- y'a un peu trop d'inertie à mon goût, ça rend tout ça assez peu nerveux
- la physique du projectile est bizarre, on dirait qu'il n'hérite pas de notre vitesse

Cuthalion
16/03/2012, 15h27
Merci pour ce retour!

Et je suis complètement d'accord avec tes réflexions.

Juste pour développer un peu ces problèmes, disons que j'ai souhaité utiliser le moteur physique de Unity pour gérer le déplacement de mon personnage (donc en gros je lui balance une valeur x d'accélération dans la direction pointé par le joueur), mais, même après avoir réglé les forces de frottements des surfaces en contact avec ce dernier au maximum, j'ai toujours cet aspect "patinoire".

Ce ne devrait pas être trop compliqué à corriger en mettant les mains dans le cambouis mais bon, j'espérais malgré tout que la physique tout en un d'Unity puisse régler ce soucis naturellement.

Et concernant la physique du projectile, en théorie elle hérite de la vitesse du personnage et accélère constamment jusqu'à une vitesse maximum, le problème vient peut être de là dite vitesse maximum, je me pencherai sur ces deux soucis, et d'autres, ce week end.

Entre temps, j'ai corrigé le fait que les cubes rentrent totalement dans le sol ou les murs lorsqu'on les saisis, et j'ai rajouté la possibilité de "lier" des objets entre eux.
Les objets liés s'attirent ou se repoussent mutuellement en fonction de leur distance et d'une valeur que le joueur peut faire varier en utilisant la molette.

Ce build n'est pas encore sur mon site, je préfère corriger les bugs pré-cités, et re-organiser la structure de mes scripts un peu!

Black Wolf
16/03/2012, 18h20
La gestion physique d'un perso est vraiment bordélique, et ce n'est pas la faute d'unity (qui utilise PhysX au passage), t'aura le même souci avec tous les moteurs. Le problème est que le mouvement d'un personnage est tout sauf physique, on veut qu'il accélère super brusquement, qu'il s’arrête tout aussi net etc... Unity propose un script "character controller" qui te permet de gérer un personnage de manière "semi physique" mais qui n’interagit pas avec les autres rigidbodies, et il me semble que tu peux trouver dans le wiki (ou en tout cas via google) des scripts pour le gérer de manière physique genre là (http://www.unifycommunity.com/wiki/index.php?title=RigidbodyFPSWalker), là (http://www.unifycommunity.com/wiki/index.php?title=PhysicsFPSWalker) et ici (http://www.unifycommunity.com/wiki/index.php?title=VariableSpeedFPSwalker).

Cuthalion
16/03/2012, 18h42
Juste, je tiens à préciser que je ne blâmais pas Unity, mais seulement ma mauvaise compréhension des facteurs influençant la physique d'un corps(rigidbody) à l'intérieur de ma scène.

Et à la base, j'ai également essayé d'utiliser le script "character controller" de Unity dans sa version FPS, mais l'absence de rigidbodies m'a vraiment gêné, surtout dans l'optique de réaliser un jeu basé sur la physique avec des plateformes mouvantes et toutes sortes d'objet du même genre.

Du coup j'en ai refait un, d'une manière un peu maison tout en m'inspirant du character controler pré-cité, mais qui lui dispose d'un corps physique (rigidbody).

Mais du coup je vais sans doute gérer sa vitesse et son accélération à la main simplement en prenant en compte les touches enfoncés, et si mon personnage touche ou non une surface. Et garder le composant rigidbody simplement pour les collisions.

Et merci pour les liens, je les éplucherai demain!

Black Wolf
16/03/2012, 18h48
T'inquiètes ma remarque était pas agressive, je ne suis pas un fanboy d'unity, même si je l'apprécie il a ses défauts quand même ;)Je me suis sacrément pris la tête aussi là-dessus, mais pour un déplacement "à la worms" dans mon cas. J'en suis revenu à gérer mes déplacements de manière non physique (définir "IsKinematic" à True dans ton rigidbody) puis à n'activer la physique que sous certaines conditions (genre en cas de projectile reçu, ou en cas d'explosion proche etc..). Je redésactive la physique qu'au moment ou mon perso est au sol et immobile depuis un cours laps de temps, après l'avoir remis debout.

keukeu
16/03/2012, 19h04
Je voudrais bien un viseur.

Cuthalion
17/03/2012, 23h22
Et une nouvelle version! ici (http://www.landofthebytes.com/UMAD/UMAD.html)!

J'ai bien pris compte les différentes remarque qui m'ont été adressé, et amélioré mon application en conséquence.

Désormais, lorsque le joueur se trouve au sol, sa vitesse accélère très rapidement avant d'atteindre la vitesse maximale, et décroit tout aussi rapidement lorsque le joueur arrête de se déplacer. Plus d'effet patinoire /o/ B)

Le comportement du projectile a été modifié, plus de vitesse max pour ce dernier et il hérite désormais correctement de la vitesse du joueur. Par conséquent, le projectile atteindra bien la destination visée, même si vous straffez.

Il vous est également possible d'utiliser le clic droit pour modifier le comportement du projectile.
Je n'en ai mis que 3 pour l'instant :
L'explosion, qui désormais en est réellement une puisqu'elle n'applique qu'à une seule frame sa force aux objets se trouvant dans la zone d'effet.
Nullify : Si votre projectile rentre en contact avec un élément, la gravité de ce dernier est désormais annulé. Si vous lui tiré à nouveau dessus, la gravité redevient normal.

Link : Link permet de lier des éléments entre eux. Les éléments lié s'attirent ou se repousse mutuellement. Vous pouvez faire varier la valeur en utilisant la molette. Comme pour Nullify, si vous leur tiré à nouveau dessus, l'élément n'est plus lié.

J'ai également rajouter un viseur, et le bouton, une fois appuyé, reste enfoncé quelques secondes.

Voila, je pense que je vais bientôt voir comment mettre ces choses en place pour réalisé un premier niveau test, et corrigé un peu le rocket jump qui me semble encore un peu bizarre.

Au plaisir!

MorK
19/03/2012, 12h16
Salut Cuthalion.

Tu as bien fait de présenter ton travail malgré ta modestie. J'aime beaucoup ce que tu as fait et pense qu'il y a un bon potentiel dans ton jeu et tes capacités.

Pourrais tu exposer un peu tes compétences? Je suis graphiste sous Unity et cherche des programmeurs avec qui travailler. J'aimerais bien me faire un peu d'expérience dans le jeu vidéo et suis partant pour bosser sur ton jeu.

Je te laisse aller voir mes travaux sur mon topic (http://forum.canardpc.com/threads/65154-Mes-cr%C3%A9ations-sous-Unity).


Sinon mon avis sur ton jeu: très sympa mais il faut améliorer l'ergonomie. Je n'ai pas trop compris pourquoi les caisses deviennent rouges ou bleues et on ne sait pas trop si on est en mode explosion ou changement de couleur. En tout cas, le potentiel est là, à savoir une idée de gameplay qui se suffit à elle même.

PS: si ça t'intéresse, je crois avoir vu un système de "portals" pour Unity.

Cuthalion
20/03/2012, 17h40
Salut!

Et bien pour faire simple, je suis développeur en dernière année de mon cycle de Master d'informatique, option Imagerie/3D.
Je code mes trucs dans ma cave le soir et ce projet à pour simple but de me faire justement toucher un peu à tout, et n'a aucune vocation commerciale, et aucun autre de mes projets ne devrait en avoir sauf si je me met à faire ça à temps plein, et encore.

C'est pour cela que, bien que je trouve tes travaux très classes, je préfère pour l'instant me débrouiller comme je peux, chercher à droite à gauche des solutions, apprendre à utiliser blender etc. Déjà que je suis même pas sûr moi même de continuer à utiliser Unity à l'avenir ( à la base je suis un peu un "expert", je met entre guillemet car on trouve toujours mieux que soit, C++ alors ça me fait quand même un peu mal de renier mes origines :sad: )

Bon, sinon ce soir (j'ai un peu tout cassé mon site web), j'uploaderai la vrai dernière version (là j'ai lancé une restauration sur mon site de plus d'une semaine xd) ce soir avec l'ajout de plateformes mobiles ainsi que de "champs de force" qui font office de portail. Le joueur devra désactiver ces portails en appuyant sur un bouton pour pouvoir continuer.

MorK
21/03/2012, 16h02
Justement, si tu es en dernière année, tu as tout intérêt à avoir un travail sortant de l'ordinaire sur ton book et à utiliser cette opportunité pour te faire connaitre.

C'est pour ça que je te propose de faire les graphismes de ton jeu: ça me fait de la pub et ça te permet d'avoir un jeu finalisé à présenter.

Concrètement, ce que je te propose c'est d'améliorer les graphismes de ton jeu. Par exemple, je peux te passer le flingue qu'il y a dans mon Opera Garnier, flingue dont les tirs auront différentes couleurs. Je peux aussi faire un décors et des accessoires plus travaillés avec un beau lighting car j'ai la licence Unity Pro (qui permet aussi de profiter des effets spéciaux comme l'anti aliasing). En échange, j'ai le droit de montrer la démo sur mon site, sur lequel tu seras bien entendu crédité avec un lien vers ton propre site si tu en as un.

Je comprends tout à fait que tu aies envie de te débrouiller seul, mais je trouve dommage que le potentiel de ton jeu ne serve pas à autre chose qu'un projet d'entrainement.

Cuthalion
25/03/2012, 16h30
Je me permet de dépoussiérer mon sujet et ce malgré le manque de nouveauté que j'ai à y apporter.

En effet, j'ai un peu mis la partie "codage" et "gameplay" de coté ces derniers temps, le gros étant fait, pour me concentrer sur la création et l'édition de niveau, l'utilisation de texture, me familiariser un peu avec blender, l'uv wrapping et ce genre de truc.

Et, j'ai récemment découvert un truc formidable avec Unity : la possibilité de créer ses propres fenêtre/boutons etc dans l'éditeur :wub:

Du coup, je suis en train de réaliser un éditeur de niveau grid based, dans lequel on peut rajouter des "tuiles" (tiles en anglais, ça rend déjà mieux), et des éléments à l'intérieur de ces tuiles.

Un petit screenshot pour illustrer mes propos :
http://uppix.net/6/e/8/3275255fac9deb412a822cf1a0ddf.png

Vous pouvez voir ici la grille en question, un début d'interface un peu brouillon qui sera améliorée sur le coté droit.
La grille est transparente, pour faciliter l'insertion d’éléments disposant d'une hauteur différente, il est possible de la déplacer avec les touches du clavier (en hauteur, x et z) , on peut sélectionner l'objet que l'on souhaite rajouter dans la scène, et, lorsque l'utilisateur (bon ok, moi), clique dans la scène, je repère la "tile" visé et je rajoute l'élément à cette position.

Sinon pour répondre au dessus, pour ce projet je ne recherche vraiment pas de graphiste, comme tout sera extrêmement simple.
Je mettrai sans doute juste un carrelage noir et blanc, un peu de bump-mapping, de lumières et ça devrait faire l'affaire.

Aussi, je compte faire une série de tutorials qui seront disponible sur mon site sur mes pérégrination avec Unity, si certains ici sont intéressés, faites le moi savoir, je me mettrai au boulot plus vite si c'est le cas.

D'autant plus que la partie permettant d'éditer l'éditeur de Unity est assez peu référencé et je bidouille un peu des trucs.

Au plaisir!

Cuthalion
18/05/2012, 19h11
Bon, juste pour préciser que je ne suis pas mort, et que je continue de suivre le forum!

Il se trouve juste que mes priorités ont quelque peu changé et je ne suis plus vraiment sûr de vouloir faire du Unity sur mon temps perso ( je travaille aussi dessus à mon boulot).
Cet éditeur de niveau m'ayant pas mal épuisé et rendu fou (il est fini à 90% mais j'arrive pas à me motiver à coder le dernier bout qui reste ...).
J'hésite à me tourner vers Ogre, ou continuer mon petit moteur perso que j'ai déjà pas mal avancé dans ma relative jeunesse.

Quoi qu'il en soit, je suis aussi en train de me faire quelques tutos sur le fonctionnement de Unity, si cela peut intéresser quelques personnes, je laisse les lien ici :

http://www.landofthebytes.com/?page_id=109
http://www.landofthebytes.com/?page_id=116
http://www.landofthebytes.com/?page_id=229

Tout commentaire sur le contenu de mes articles étant la bienvenue (que ce soit au niveau du style, la disposition, la compréhension, suite logique etc).

Le plus gros, le scripting, étant à venir!